{ "version": 3, "sources": ["../../../../node_modules/base-x/src/index.js", "../../../../node_modules/base64-js/index.js", "../../../../node_modules/ieee754/index.js", "../../../../node_modules/buffer/index.js", "../../../lib.shared.utils/to_string.ts", "../../../lib.shared.utils/index.ts"], "sourcesContent": ["'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (source instanceof Uint8Array) {\n } else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength)\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source)\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = new Uint8Array(zeroes + (size - it4))\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n", "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", "exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n ? Symbol.for('nodejs.util.inspect.custom')\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n 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 (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n 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 (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && 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 return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n 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\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n 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 (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n 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 var strLen = string.length\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 (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction 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 } 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 += hexSliceLookupTable[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 = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = 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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n 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 offset = offset >>> 0\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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = 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 this[offset] = (value & 0xff)\n return offset + 1\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\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 this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\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 (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n", "declare const window: any\n\nexport function class_name(obj: any): string {\n let result: string = typeof obj\n if (result === \"function\") {\n return obj.name\n }\n if (result === \"object\") {\n if (obj === null) {\n result = \"null\"\n } else {\n const c = obj.constructor as any\n if (c) {\n result = c.displayName || c.name\n if (!result) {\n // Special handling for protobuf messages ...\n if (obj.$type) {\n result = obj.$type.name\n }\n }\n if (!result) {\n try {\n // Workaround for IE -- see https://goo.gl/IUuSNO ...\n const a = /function\\s+([^\\s(]+)/.exec(c.toString())\n result = a![1]\n } catch {\n result = \"???\"\n }\n }\n } else {\n result = \"???\"\n }\n }\n }\n return result\n}\n\n/**\n * Converts `obj` to JSON just like ``JSON.stringify` does,\n * but handles circular values and errors.\n *\n * Adapted from https://github.com/moll/json-stringify-safe/blob/master/stringify.js\n */\nexport function safe_JSON_stringify(obj: any, replacer?: any, spaces?: number): string {\n function to_JSON(x: any) {\n const stack: any = []\n const keys: any = []\n\n function cycle_replacer(key: string, value: any) {\n if (stack[0] === value) {\n return \"<circular ref: ~>\"\n }\n return \"<circular ref: ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \">\"\n }\n\n function serializer(this: any, key: string, value: any) {\n if (process.env.RUNNING_IN_BROWSER) {\n if (value === window) {\n return \"<window>\"\n }\n }\n if (stack.length > 0) {\n const pos = stack.indexOf(this)\n if (pos !== -1) {\n stack.splice(pos + 1)\n keys.splice(pos, Infinity, key)\n } else {\n stack.push(this)\n keys.push(key)\n }\n // Handle circular references.\n if (stack.indexOf(value) !== -1) {\n value = cycle_replacer.call(this, key, value)\n }\n } else {\n stack.push(value)\n }\n return replacer ? replacer.call(this, key, value) : value\n }\n return JSON.stringify(x, serializer, spaces)\n }\n\n try {\n return to_JSON(obj)\n } catch {\n try {\n if (typeof obj === \"object\") {\n const o: any = {}\n for (const [k, v] of Object.entries(obj)) {\n if (typeof v !== \"function\") {\n try {\n to_JSON(v)\n } catch {\n o[k] = \"<Could not be converted to JSON>\"\n continue\n }\n o[k] = v\n }\n }\n return to_JSON(o)\n }\n } catch {\n /* Ignored. */\n }\n return \"<Could not be converted to JSON>\"\n }\n}\n\nfunction element_to_string(elm: {tagName: string; className: string; id: string}) {\n const tag_name = elm.tagName.toLowerCase()\n let s = \"<\" + tag_name\n if (elm.id) {\n s += ' id=\"' + elm.id + '\"'\n }\n if (elm.className) {\n s += ' class=\"' + elm.className + '\"'\n }\n if ((elm as any).src) {\n s += ' src=\"' + (elm as any).src + '\"'\n }\n if ((elm as any).href) {\n s += ' href=\"' + (elm as any).href + '\"'\n }\n s += \">\"\n return s\n}\n\nexport function safe_to_string(x: any) {\n try {\n if (x.tagName) {\n return element_to_string(x)\n } else if (typeof x === \"number\") {\n return x.toString()\n } else if (x instanceof Error) {\n return error_to_string(x)\n } else {\n return safe_JSON_stringify(x)\n }\n } catch {\n try {\n return \"\" + x\n } catch (error2) {\n try {\n return \"??? -- \" + error2\n } catch {\n return \"???\"\n }\n }\n }\n}\n\nexport function error_to_string(error: any) {\n let s = \"\" + error\n try {\n let stack: string = (error as any).stacktrace || error.stack\n if (stack) {\n stack = \"\" + stack\n if (error.message && stack.indexOf(error.message) >= 0) {\n s = stack\n } else {\n s = s + \"\\n\" + stack\n }\n }\n } catch {\n // Ignored\n }\n if (s.startsWith(\"[object\")) {\n // No error? What do we have here? Assemble a string with all properties ...\n const a = []\n for (const k in error) {\n // Note: We want *all* properties of the error (except functions),\n // therefore we don't filter with hasOwnProperty ...\n const v: any = (error as any)[k]\n if (typeof v === \"function\") {\n continue\n }\n a.push(`${k}: ${safe_to_string(v)}`)\n }\n s = a.join(\"\\n\\t\")\n }\n return s\n}\n", "import BaseX from \"base-x\"\nimport {Buffer} from \"buffer\"\nimport {class_name, error_to_string, safe_JSON_stringify, safe_to_string} from \"./to_string\"\n\nexport {class_name, error_to_string, safe_JSON_stringify, safe_to_string}\n\n/**\n * Because we are in a `shared` module, we cannot use neither of the types `node` nor `dom`.\n * That's why we use this minimal declaration here.\n */\ndeclare type URL = {\n hostname: string\n protocol: string\n}\n\n/**\n * Because we are in a `shared` module, we cannot use neither of the types `node` nor `dom`.\n * That's why we use this minimal declaration here.\n */\ndeclare const URL: {\n prototype: URL\n new (url: string, base?: string | URL): URL\n}\n\nexport type CancelablePromise<T> = Promise<T> & {cancel: () => void}\n\nexport function is_UID(uid: any, prefix?: string): boolean {\n return !!(\n uid &&\n typeof uid === \"string\" &&\n uid.length >= 17 &&\n (!prefix || uid.startsWith(prefix))\n )\n}\n\nexport const as_UID = (x: any) => {\n if (is_UID(x)) {\n return x\n }\n throw new Error(\"Not an UID: \" + safe_to_string(x))\n}\n\nexport function CancelablePromise_resolve<T>(value: T): CancelablePromise<T> {\n const p = Promise.resolve(value) as CancelablePromise<T>\n p.cancel = nop\n return p\n}\n\nexport function CancelablePromise_reject<T extends Error>(value: T): CancelablePromise<T> {\n const p = Promise.reject(value) as CancelablePromise<T>\n p.cancel = nop\n return p\n}\n\nexport function full_name(account: {given_name?: string; family_name?: string} | undefined) {\n if (!account) {\n return \"...\"\n }\n const {given_name, family_name} = account\n let s = given_name || \"\"\n if (family_name) {\n if (s) {\n s += \" \"\n }\n s += family_name\n }\n return s.trim()\n}\n\nconst base62 = BaseX(\"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\")\n\n/**\n * See https://www.wikidata.org/wiki/Q809817\n */\nexport function encode_b62(buf: Buffer | Uint8Array): string {\n assert(\n buf.byteLength < 256,\n \"Buffer too large - only up to 255 bytes allowed for performance reasons\",\n )\n return base62.encode(buf)\n}\n\n/**\n * See https://www.wikidata.org/wiki/Q809817\n */\nexport function decode_b62(s: string): Buffer {\n assert(\n s.length < 344, // 343 == len(encode_b64(255 * [0xff]))\n \"String too large - only up to 343 characters allowed for performance reasons\",\n )\n return Buffer.from(base62.decode(s))\n}\n\n/**\n * See https://en.wikipedia.org/wiki/Base64#RFC_4648\n */\nexport function encode_b64url(buf: Buffer) {\n return buf.toString(\"base64\").replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\")\n}\n\n/**\n * See https://en.wikipedia.org/wiki/Base64#RFC_4648\n */\nexport function decode_b64url(s: string) {\n if (s.length % 4 !== 0) {\n s += \"===\".slice(0, 4 - (s.length % 4))\n }\n s = s.replace(/-/g, \"+\").replace(/_/g, \"/\")\n return Buffer.from(s, \"base64\")\n}\n\nexport function assert_never(x: never): any {\n const class_name_ = class_name(x)\n if (x && typeof x === \"object\" && class_name_ !== \"Object\") {\n throw new Error(\n `assert_never(...) called with ${class_name_} instance: ${safe_to_string(x)}`,\n )\n } else {\n throw new Error(`assert_never(${safe_to_string(x)})`)\n }\n}\n\nexport function is_never_compile_time_check(arg: never) {\n return arg\n}\n\n/**\n * Throws an ``Error`` if the first parameter is falsy.\n * See https://developer.mozilla.org/de/docs/Glossary/Falsy\n */\nexport function assert<T>(\n should_be_true: T,\n msg_or_function?: string | (() => string),\n): asserts should_be_true {\n if (!should_be_true) {\n if (typeof msg_or_function === \"string\") {\n throw new Error(msg_or_function)\n } else {\n let msg: string\n try {\n msg = msg_or_function ? msg_or_function() : \"assertion error\"\n } catch (error) {\n msg = \"Failed to produce error message: \" + error.message\n }\n throw new Error(msg)\n }\n }\n}\n\n/**\n * Make sure the given value is never null.\n */\nexport function not_null<T>(o: T, error_msg?: string): NonNullable<T> {\n if (o === null) {\n throw new Error(`Unexpected call: not_null(null)${error_msg ? \": \" + error_msg : \"\"}`)\n } else if (typeof o === \"undefined\") {\n throw new Error(`Unexpected call: not_null(undefined)${error_msg ? \": \" + error_msg : \"\"}`)\n }\n return o!\n}\n\n/**\n * Helper function to be used in ``Array.sort`` for sorting in ascending order.\n */\nexport function compare(a: any, b: any): number {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\n/**\n * Convert `MyCamelCase` to `my_camel_case`.\n */\nexport function camel_case_to_underscore(s: string): string {\n // First replace MyURLResponse with MyURL_Response.\n s = s.replace(/([A-Z]+)([A-Z])/g, (_, m1, m2) => `_${m1}_${m2}`.toLowerCase())\n return s.replace(/(?!^)([A-Z]+)/g, \"_$1\").toLowerCase()\n}\n\n/**\n * Convert `my_camel_case` to `MyCamelCase`.\n */\nexport function underscore_to_camelcase(s: string): string {\n s = s[0].toUpperCase() + s.slice(1)\n return s.replace(/_[a-z]/g, function (g) {\n return g[1].toUpperCase()\n })\n}\n\nexport function truncate(s: string, max_length: number, filler = \"...\") {\n if (s.length <= max_length) {\n return s\n }\n return s.substring(0, max_length - filler.length) + \"...\"\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function nop(..._: any[]): any {\n // Nothing to do.\n}\n\nexport async function ignore_errors<T>(f: () => (T | undefined) | Promise<T | undefined>) {\n try {\n return await f()\n } catch {\n // Ignored\n }\n}\n\nexport async function sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\n/**\n * Returns a new Set containing all items of `set1` and `set2`.\n */\nexport function Set_union<T>(set1: Set<T>, set2: Set<T>): Set<T> {\n return new Set([...set1, ...set2])\n}\n\n/**\n * Returns a new Set containing all items which are both in `set1` and in `set2`.\n */\nexport function Set_intersection<T>(set1: Set<T>, set2: Set<T>): Set<T> {\n return new Set(Array.from(set1).filter((item) => set2.has(item)))\n}\n\n/**\n * Returns a new Set containing all items of `set1`, which are not in `set2`.\n */\nexport function Set_difference<T>(set1: Set<T>, set2: Set<T>): Set<T> {\n return new Set(Array.from(set1).filter((item) => !set2.has(item)))\n}\n\n/**\n * Returns a new Set containing all items of `set1`, which are not in `set2` and vice versa.\n */\nexport function Set_symmetric_difference<T>(set1: Set<T>, set2: Set<T>): Set<T> {\n return new Set(\n Array.from(set1)\n .filter((x) => !set2.has(x))\n .concat(Array.from(set2).filter((x) => !set1.has(x))),\n )\n}\n\nexport function Set_equal<T>(set1: Set<T>, set2: Set<T>): boolean {\n if (set1.size !== set2.size) {\n return false\n }\n for (const x of set1) {\n if (!set2.has(x)) {\n return false\n }\n }\n return true\n}\n\nexport class TimeoutError extends Error {\n constructor(message: string) {\n super(message)\n // This is needed according to https://goo.gl/N2zvkR\n Object.setPrototypeOf(this, TimeoutError.prototype)\n }\n}\n\n/**\n * Decorate the given `promise` so that it automatically rejects after the given\n * timeout if it was not resolved or rejected before. (Will not decorate the given\n * `promise` if the given `timeout` is less than or equals 0.)\n */\nexport function with_timeout<T, P extends Promise<T>>(\n millis: number,\n promise: P,\n opts: {description?: string} = {},\n): P {\n if (millis <= 0) {\n return promise\n }\n // Note: We construct the `Error` here, so that it has a meaningful stack trace.\n const timeout_error = new TimeoutError(\n `Timeout after ${millis} ms${opts.description ? \" - \" + opts.description : \"\"}`,\n )\n let promise_pending = true\n let cancel_timeout: any\n const result: any = Promise.race([\n promise.then(\n (value: T) => {\n promise_pending = false\n clearTimeout(cancel_timeout)\n return value\n },\n (error: Error) => {\n promise_pending = false\n clearTimeout(cancel_timeout)\n throw error\n },\n ),\n new Promise(\n (_, reject) =>\n (cancel_timeout = setTimeout(() => {\n reject(timeout_error)\n if (promise_pending && (promise as any).cancel) {\n ;(promise as any).cancel()\n }\n }, millis)),\n ),\n ])\n if ((promise as any).cancel) {\n result.cancel = (promise as any).cancel.bind(promise)\n }\n return result\n}\n\nexport type ControllablePromise<T> = Promise<T> & {\n resolve: (value: T) => void\n reject: (error: Error) => void\n}\n\nexport function new_ControllablePromise<T>(): ControllablePromise<T> {\n let resolve_: (value: T) => void\n let reject_: (error: Error) => void\n const promise = new Promise((resolve, reject) => {\n resolve_ = resolve\n reject_ = reject\n })\n promise.catch(nop) // Make sure a promise rejection is never unhandled.\n return Object.assign(promise, {\n resolve: resolve_!,\n reject: reject_!,\n }) as any\n}\n\ntype ControllableCancelablePromise<T> = ControllablePromise<T> & CancelablePromise<T>\n\nexport function new_ControllableCancelablePromise<T>(): ControllableCancelablePromise<T> {\n const p = new_ControllablePromise<T>() as ControllablePromise<T> & CancelablePromise<T>\n p.cancel = () => p.reject(new Error(\"Canceled\"))\n return p\n}\n\nexport function flatten<T>(a: Array<Array<T>>): Array<T> {\n return Array.prototype.concat.apply(\n [],\n a.map((x: any) => (x.toJS ? x.toJS() : x)),\n )\n}\n\n/**\n * Apply batches asynchronously.\n */\nexport class AsyncBatch<Key, Value extends ControllablePromise<any>> {\n private pending = new Map<Key, Value>()\n private schedule_timeout_id: any\n private closed = false\n\n constructor(\n private apply_batch: (batch: Map<Key, Value>) => void | Promise<void>,\n private opts: {\n schedule_interval_ms: number\n batch_size: number\n },\n ) {}\n\n get(key: Key): Value | undefined {\n return this.pending.get(key)\n }\n\n schedule(key: Key, promise: Value) {\n this.pending.set(key, promise)\n this.schedule_next_run()\n }\n\n async close() {\n clearTimeout(this.schedule_timeout_id)\n this.closed = true\n for (const promise of this.pending.values()) {\n promise.catch(nop)\n promise.reject(new Error(\"AsyncBatch is closed\"))\n }\n }\n\n private schedule_next_run() {\n if (this.closed) {\n throw new Error(\"AsyncBatch is closed\")\n }\n // Wrapping the actual scheduling in an `async` block makes sure we do not miss a scheduled\n // entry and do not run `this.apply_batch` twice on entries.\n ;(async () => {\n if (!this.schedule_timeout_id && this.pending.size) {\n this.schedule_timeout_id = setTimeout(this.run, this.opts.schedule_interval_ms)\n }\n })().catch(nop)\n }\n\n private run = async () => {\n const batch = [...this.pending.entries()].slice(0, this.opts.batch_size)\n if (!batch.length) {\n return\n }\n batch.forEach((x) => this.pending.delete(x[0]))\n try {\n await this.apply_batch(new Map(batch))\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to apply patch, batch will not be retried again\", error)\n } finally {\n this.schedule_timeout_id = 0\n if (this.pending.size && !this.closed) {\n this.schedule_next_run()\n }\n }\n }\n}\n\n/**\n * Extract the domain part of an URL.\n */\nexport function extract_domain(url: string, remove_prefixes = [\"www\", \"ftp\"]): string | undefined {\n try {\n const domain = new URL(url.includes(\"://\") ? url : `https://${url}`).hostname\n const parts = domain.split(\".\")\n if (remove_prefixes.includes(parts[0])) {\n return parts.slice(1).join(\".\")\n }\n return domain.toLowerCase() || undefined\n } catch {\n return undefined\n }\n}\n\n/**\n * Extract the pathname part of an URL.\n */\nexport function extract_path(url?: string) {\n if (!url) {\n return \"\"\n }\n let i = url.indexOf(\"//\")\n if (i >= 0) {\n const j = url.indexOf(\"/\", i + 2)\n if (j < 0) {\n return \"\"\n }\n url = url.substr(j)\n } else {\n i = url.indexOf(\"/\")\n if (i > 0) {\n const s = url.substr(0, i)\n // We don't know if `s` is a hostname or a dirname, therefore we use a heuristic.\n if (s.indexOf(\".\") > 0) {\n url = url.substr(i)\n }\n }\n }\n i = url.indexOf(\"?\")\n if (i >= 0) {\n url = url.substr(0, i)\n }\n i = url.indexOf(\"#\")\n if (i >= 0) {\n url = url.substr(0, i)\n }\n return url\n}\n\n/**\n * Test whether the given string is a valid URL with protocols http or https and not longer than\n * `max_len`.\n */\nexport function is_valid_HTTP_URL(s: string, max_len: number): boolean {\n if (s.includes(\" \")) {\n return false\n }\n try {\n const url = new URL(s)\n const {protocol, hostname} = url\n if (\n !is_valid_IP_format(hostname, {remove_enclosing_IPv6_URL_brackets: true}) &&\n ((hostname.indexOf(\".\") < 0 && hostname !== \"localhost\") ||\n hostname.lastIndexOf(\".\") > hostname.length - 3)\n ) {\n return false\n }\n return [\"http:\", \"https:\"].includes(protocol) && s.length <= max_len\n } catch {\n return false\n }\n}\n\n/**\n * This is by no means a valid IP check. We just want to make sure that the basic\n * syntax seems correct.\n */\nexport function is_valid_IP_format(\n s: string,\n opts: {remove_enclosing_IPv6_URL_brackets?: boolean} = {},\n) {\n if (s.includes(\".\")) {\n const parts = s.split(\".\")\n return parts.length === 4 && parts.map((x) => parseInt(x)).every((x) => x >= 0 && x <= 255)\n }\n if (!s.includes(\":\")) {\n return false\n }\n if (opts.remove_enclosing_IPv6_URL_brackets) {\n if (s.startsWith(\"[\")) {\n s = s.substr(1)\n }\n if (s.endsWith(\"]\")) {\n s = s.substr(0, s.length - 1)\n }\n }\n const parts = s.split(\":\")\n return (\n parts.length > 2 &&\n parts.map((x) => (!x ? 0 : parseInt(x, 16))).every((x) => x >= 0 && x <= 65535)\n )\n}\n\nexport function is_IP_URL(s: string) {\n try {\n return is_valid_IP_format(new URL(s).hostname, {remove_enclosing_IPv6_URL_brackets: true})\n } catch {\n return false\n }\n}\n\nconst UNDEFINED = {\n toString: () => \"undefined\",\n}\n\nexport function memoize<T>(fn: () => T): () => T {\n const memoize_wrapper = () => {\n let v = (memoize_wrapper as any).__memoized_value__\n if (v === undefined) {\n v = fn()\n if (v === undefined) {\n v = UNDEFINED\n }\n ;(memoize_wrapper as any).__memoized_value__ = v\n }\n if (v === UNDEFINED) {\n return undefined\n }\n return v\n }\n return memoize_wrapper\n}\n\n/**\n * Note: This function consumes the given array.\n */\nexport function split_into_batches<T>(\n a: Array<T>,\n {max_batch_size: m}: {max_batch_size: number},\n): Array<Array<T>> {\n const batches: Array<Array<T>> = []\n const m2 = 2 * m\n while (a.length >= m2) {\n batches.push(a.splice(0, m))\n }\n if (a.length) {\n if (a.length <= m) {\n batches.push(a)\n } else {\n // Make the last two batches about the same size.\n const n = Math.ceil(a.length / 2)\n batches.push(a.splice(0, n))\n if (a.length) {\n batches.push(a)\n }\n }\n }\n return batches\n}\n\n/**\n * Returns `min` if `x < min`,\n * returns `max` if `x > max`,\n * returns x otherwise.\n */\nexport function clamp(x: number, [min, max]: [number, number]) {\n if (x < min) {\n return min\n }\n if (x > max) {\n return max\n }\n return x\n}\n\nexport function common_prefix(s1: string, s2: string): string {\n const n = Math.min(s1.length, s2.length)\n let i = 0\n while (i < n && s1.charAt(i) === s2.charAt(i)) {\n ++i\n }\n return s1.slice(0, i)\n}\n\n/**\n * We just lowercase the email, that's all. But still, use this function!\n */\nexport function normalize_email(email: string) {\n return email ? email.toLowerCase() : email\n}\n\n/**\n * Return all values of an enum of type `string -> number`.\n */\nexport function enum_values<T extends Record<keyof T, number>>(e: T): number[] {\n return Object.keys(e)\n .map((x) => parseInt(x))\n .filter((x) => !isNaN(x)) as any as number[]\n}\n\n/**\n * Return all entries of an enum of type `string -> number`.\n */\nexport function enum_entries<T extends Record<keyof T, number>>(e: T): [string, number][] {\n return Object.keys(e)\n .map((x) => parseInt(x))\n .filter((x) => !isNaN(x))\n .map((x) => [(e as any)[x], x]) as [string, number][]\n}\n\nexport function escape_html(s: string): string {\n return s.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\")\n}\n\n/**\n * Copied from https://github.com/darkskyapp/string-hash/blob/v1.1.3/index.js\n */\nexport function fast_string_hash(s: string) {\n let hash = 5381,\n i = s.length\n while (i) {\n hash = (hash * 33) ^ s.charCodeAt(--i)\n }\n /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n * integers. Since we want the results to be always positive, convert the\n * signed int to an unsigned by doing an unsigned bitshift. */\n return hash >>> 0\n}\n\nexport function are_arrays_equal<T>(a1: ArrayLike<T>, a2: ArrayLike<T>): boolean {\n if (a1 === a2) {\n return true\n }\n if (a1.length != a2.length) {\n return false\n }\n for (let i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) {\n return false\n }\n }\n return true\n}\n\n/**\n * Only call `f` once when the number of calls reaches `threshold` and then every `every` calls\n * if given.\n */\nexport function run_on_threshold(threshold: number, every?: number) {\n let n = 0\n return function (f: (num_calls: number) => void) {\n n += 1\n if (\n n === threshold ||\n (n > threshold && typeof every === \"number\" && (n - threshold) % every === 0)\n ) {\n f(n)\n }\n }\n}\n\nexport function anonymize_ip(ip: string) {\n // Anonymize the IP according to https://support.google.com/analytics/answer/2763052\n // IPv4: Only use the first 3 groups\n // IPv6: Ignore the last 80 bits (5 groups) - so basically keep the first 3 groups\n return (\n ip\n .replace(/::ffff:(.*)/i, \"$1\") // Mapped IPv4.\n // eslint-disable-next-line sonarjs/existing-groups\n .replace(/(\\d+\\.\\d+\\.\\d+\\.)\\d+/, \"$10\")\n .replace(/(.+?:.+?:.+?:).+/, \"$1:\")\n )\n}\n\nexport function as_array<T>(x: Iterable<T>): Array<T> {\n if (Array.isArray(x)) {\n return x\n }\n return Array.from(x)\n}\n\nexport function as_uint8array(x: Iterable<number> | Buffer | Uint8Array): Uint8Array {\n // Note: We cannot use `x instanceof Uint8Array` here, because that would\n // be true for `Buffer` instances (`Buffer` extends `Uint8Array`).\n return x.constructor.name === \"Uint8Array\" ? (x as Uint8Array) : new Uint8Array(x)\n}\n\n/**\n * This is a mix between `Promise.all()` and `Promise.allSettled()` as it will return all values\n * if all promise resolve or throw an error if at least one promise gets rejected.\n */\nexport async function all_finished<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(\n values: readonly [\n T1 | PromiseLike<T1>,\n T2 | PromiseLike<T2>,\n T3 | PromiseLike<T3>,\n T4 | PromiseLike<T4>,\n T5 | PromiseLike<T5>,\n T6 | PromiseLike<T6>,\n T7 | PromiseLike<T7>,\n T8 | PromiseLike<T8>,\n T9 | PromiseLike<T9>,\n T10 | PromiseLike<T10>,\n ],\n): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>\nexport async function all_finished<T1, T2, T3, T4, T5, T6, T7, T8, T9>(\n values: readonly [\n T1 | PromiseLike<T1>,\n T2 | PromiseLike<T2>,\n T3 | PromiseLike<T3>,\n T4 | PromiseLike<T4>,\n T5 | PromiseLike<T5>,\n T6 | PromiseLike<T6>,\n T7 | PromiseLike<T7>,\n T8 | PromiseLike<T8>,\n T9 | PromiseLike<T9>,\n ],\n): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>\nexport async function all_finished<T1, T2, T3, T4, T5, T6, T7, T8>(\n values: readonly [\n T1 | PromiseLike<T1>,\n T2 | PromiseLike<T2>,\n T3 | PromiseLike<T3>,\n T4 | PromiseLike<T4>,\n T5 | PromiseLike<T5>,\n T6 | PromiseLike<T6>,\n T7 | PromiseLike<T7>,\n T8 | PromiseLike<T8>,\n ],\n): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>\nexport async function all_finished<T1, T2, T3, T4, T5, T6, T7>(\n values: readonly [\n T1 | PromiseLike<T1>,\n T2 | PromiseLike<T2>,\n T3 | PromiseLike<T3>,\n T4 | PromiseLike<T4>,\n T5 | PromiseLike<T5>,\n T6 | PromiseLike<T6>,\n T7 | PromiseLike<T7>,\n ],\n): Promise<[T1, T2, T3, T4, T5, T6, T7]>\nexport async function all_finished<T1, T2, T3, T4, T5, T6>(\n values: readonly [\n T1 | PromiseLike<T1>,\n T2 | PromiseLike<T2>,\n T3 | PromiseLike<T3>,\n T4 | PromiseLike<T4>,\n T5 | PromiseLike<T5>,\n T6 | PromiseLike<T6>,\n ],\n): Promise<[T1, T2, T3, T4, T5, T6]>\nexport async function all_finished<T1, T2, T3, T4, T5>(\n values: readonly [\n T1 | PromiseLike<T1>,\n T2 | PromiseLike<T2>,\n T3 | PromiseLike<T3>,\n T4 | PromiseLike<T4>,\n T5 | PromiseLike<T5>,\n ],\n): Promise<[T1, T2, T3, T4, T5]>\nexport async function all_finished<T1, T2, T3, T4>(\n values: readonly [\n T1 | PromiseLike<T1>,\n T2 | PromiseLike<T2>,\n T3 | PromiseLike<T3>,\n T4 | PromiseLike<T4>,\n ],\n): Promise<[T1, T2, T3, T4]>\nexport async function all_finished<T1, T2, T3>(\n values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>],\n): Promise<[T1, T2, T3]>\nexport async function all_finished<T1, T2>(\n values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>],\n): Promise<[T1, T2]>\nexport async function all_finished<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T[]>\nexport async function all_finished<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T[]> {\n let error: any\n const res: any = await Promise.all(\n values.map((x) =>\n (x as any).catch?.((e: any) => {\n if (!error) {\n error = e\n }\n }),\n ),\n )\n if (error) {\n throw error\n }\n return res\n}\n\nexport function shorten_string(s: string, max_length: number) {\n if (s.length <= max_length) {\n return s\n }\n return s.substring(0, max_length - 3) + \"...\"\n}\n"], "mappings": "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", "names": ["require_src", "__commonJSMin", "exports", "module", "base", "ALPHABET", "BASE_MAP", "j", "i", "x", "xc", "BASE", "LEADER", "FACTOR", "iFACTOR", "encode", "source", "zeroes", "length", "pbegin", "pend", "size", "b58", "carry", "it1", "it2", "str", "__name", "decodeUnsafe", "psz", "b256", "it3", "it4", "vch", "decode", "string", "buffer", "require_base64_js", "__commonJSMin", "exports", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "__name", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "require_ieee754", "__commonJSMin", "exports", "buffer", "offset", "isLE", "mLen", "nBytes", "e", "m", "eLen", "eMax", "eBias", "nBits", "i", "d", "s", "value", "rt", "require_buffer", "__commonJSMin", "exports", "base64", "ieee754", "customInspectSymbol", "Buffer", "SlowBuffer", "K_MAX_LENGTH", "typedArraySupport", "arr", "proto", "__name", "createBuffer", "length", "buf", "arg", "encodingOrOffset", "allocUnsafe", "from", "value", "fromString", "fromArrayLike", "isInstance", "fromArrayBuffer", "valueOf", "b", "fromObject", "assertSize", "size", "alloc", "fill", "encoding", "checked", "string", "byteLength", "actual", "array", "i", "byteOffset", "obj", "len", "numberIsNaN", "a", "x", "y", "list", "buffer", "pos", "mustMatch", "loweredCase", "utf8ToBytes", "base64ToBytes", "slowToString", "start", "end", "hexSlice", "utf8Slice", "asciiSlice", "latin1Slice", "base64Slice", "utf16leSlice", "swap", "n", "m", "str", "max", "target", "thisStart", "thisEnd", "thisCopy", "targetCopy", "bidirectionalIndexOf", "val", "dir", "arrayIndexOf", "indexSize", "arrLength", "valLength", "read", "foundIndex", "found", "j", "hexWrite", "offset", "remaining", "strLen", "parsed", "utf8Write", "blitBuffer", "asciiWrite", "asciiToBytes", "latin1Write", "base64Write", "ucs2Write", "utf16leToBytes", "res", "firstByte", "codePoint", "bytesPerSequence", "secondByte", "thirdByte", "fourthByte", "tempCodePoint", "decodeCodePointsArray", "MAX_ARGUMENTS_LENGTH", "codePoints", "ret", "out", "hexSliceLookupTable", "bytes", "newBuf", "checkOffset", "ext", "noAssert", "mul", "checkInt", "min", "maxBytes", "limit", "sub", "checkIEEE754", "writeFloat", "littleEndian", "writeDouble", "targetStart", "code", "INVALID_BASE64_RE", "base64clean", "units", "leadSurrogate", "byteArray", "c", "hi", "lo", "src", "dst", "type", "alphabet", "table", "i16", "class_name", "obj", "result", "c", "__name", "safe_JSON_stringify", "replacer", "spaces", "to_JSON", "x", "stack", "keys", "cycle_replacer", "key", "value", "serializer", "pos", "o", "k", "v", "element_to_string", "elm", "s", "safe_to_string", "error_to_string", "error2", "error", "a", "import_base_x", "import_buffer", "is_UID", "uid", "prefix", "__name", "full_name", "account", "given_name", "family_name", "s", "__name", "base62", "BaseX", "encode_b62", "buf", "assert", "encode_b64url", "buf", "__name", "decode_b64url", "s", "assert_never", "x", "class_name_", "class_name", "safe_to_string", "assert", "should_be_true", "msg_or_function", "msg", "error", "__name", "not_null", "o", "error_msg", "camel_case_to_underscore", "s", "_", "m1", "m2", "__name", "truncate", "s", "max_length", "filler", "__name", "nop", "_", "sleep", "ms", "resolve", "__name", "Set_equal", "set1", "set2", "x", "__name", "_TimeoutError", "message", "TimeoutError", "with_timeout", "millis", "promise", "opts", "timeout_error", "promise_pending", "cancel_timeout", "result", "value", "error", "_", "reject", "new_ControllablePromise", "resolve_", "reject_", "resolve", "nop", "flatten", "a", "x", "__name", "extract_domain", "url", "remove_prefixes", "domain", "parts", "__name", "extract_path", "i", "j", "is_valid_HTTP_URL", "s", "max_len", "protocol", "hostname", "is_valid_IP_format", "opts", "x", "UNDEFINED", "__name", "memoize", "fn", "memoize_wrapper", "v", "normalize_email", "email", "__name", "enum_values", "e", "x", "escape_html", "s", "__name", "fast_string_hash", "hash", "i", "are_arrays_equal", "a1", "a2", "as_uint8array", "x", "__name", "all_finished", "values", "error", "res", "e"] }