diff --git a/README.md b/README.md
index 08895d6..d43bc3f 100644
--- a/README.md
+++ b/README.md
@@ -14,25 +14,28 @@ These functions include:
## Installation
-Browser
+This library can be installed in several different ways:
-- Download [library](/dist-browser/twtxt-lib.js) (or [minified version](/dist-browser/twtxt-lib.min.js)).
-- Import desired function(s) into your project: `import { hashTwt, loadAndParseTwtxtFile } from "./twtxt-lib.js"`
+### For the Browser
-NPM
+1. Grab the latest copy of the `twtxt-lib.js` file, either by downloading it from the [git repo](https://git.itsericwoodward.com/eric/twtxt-lib/raw/branch/main/dist-browser/twtxt-lib.js), the [website](https://twtxt-lib.itsericwoodward.com/dist-browser/twtxt-lib.js), or doing a `git clone https://git.itsericwoodward.com/eric/twtxt-lib.git` and pulling it out of the `dist-browser` folder.
+ - Alternatively, you can grab the minified version from the [same](https://git.itsericwoodward.com/eric/twtxt-lib/raw/branch/main/dist-browser/twtxt-lib.min.js) [sources](https://twtxt-lib.itsericwoodward.com/dist-browser/twtxt-lib.min.js).
+2. Add the newly acquired file to your static site / progressive web app / over-engineered blog.
+3. Import the desired function(s) via ESM: `import { hashTwt, loadAndParseTwtxtFile } from "./twtxt-lib.js";`
-- Coming soon
+### For Node
-JSR
-
-- Coming soon
+1. Add the package to your project.
+ - Via [NPM](https://www.npmjs.com/package/twtxt-lib): `yarn add twtxt-lib`
+ - Via [JSR](https://jsr.io/@itsericwoodward/twtxt-lib): `yarn add jsr:@itsericwoodward/twtxt-lib`
+2. Import the desired function(s) into your code: `import { hashTwt, loadAndParseTwtxtFile } from "twtxt-lib";`
## Features
- Isomorphic, available as an ([optionally minified](/dist-browser/twtxt-lib.min.js))
[ES6+ library for the browser](/dist-browser/twtxt-lib.js), with NPM and JSR versions coming soon.
- Fully typed and source-mapped.
-- [ESM](https://caniuse.com/es6-module) (and [ESM only](https://antfu.me/posts/move-on-to-esm-only)).
+- [ES6 Module](https://caniuse.com/es6-module) (and [ESM only](https://antfu.me/posts/move-on-to-esm-only)).
- Includes sample files and an [interactive demo page](https://twtxt-lib.itsericwoodward.com/).
## Usage
diff --git a/dist-browser/loadAndParseTwtxt.d.ts b/dist-browser/loadAndParseTwtxt.d.ts
index 02f5208..c681730 100644
--- a/dist-browser/loadAndParseTwtxt.d.ts
+++ b/dist-browser/loadAndParseTwtxt.d.ts
@@ -1,14 +1,2 @@
-export default function loadAndParseTwtxtFile(url?: string): Promise<{
- lastModified: string;
- following: import('./types.ts').Twttr[];
- metadata: import('./types.ts').Metadata;
- twts: {
- content: string;
- created: string;
- createdUTC: string;
- hash: string;
- replyHash: string | undefined;
- replyNick: string | undefined;
- replyUrl: string | undefined;
- }[];
-}>;
+import { Twtxt } from './types.ts';
+export default function loadAndParseTwtxtFile(url?: string): Promise;
diff --git a/dist-browser/parseTwtxt.d.ts b/dist-browser/parseTwtxt.d.ts
index 9b0a8a6..ada4b77 100644
--- a/dist-browser/parseTwtxt.d.ts
+++ b/dist-browser/parseTwtxt.d.ts
@@ -1,18 +1,6 @@
-import { Metadata, Twttr } from './types.ts';
+import { Twtxt } from './types.ts';
/**
* @param twtxt
* @returns object containing: following, metadata, twts
*/
-export default function parseTwtxt(twtxt: string): {
- following: Twttr[];
- metadata: Metadata;
- twts: {
- content: string;
- created: string;
- createdUTC: string;
- hash: string;
- replyHash: string | undefined;
- replyNick: string | undefined;
- replyUrl: string | undefined;
- }[];
-};
+export default function parseTwtxt(twtxt: string): Twtxt;
diff --git a/dist-browser/twtxt-lib.js.map b/dist-browser/twtxt-lib.js.map
index f79af3e..8bdb769 100644
--- a/dist-browser/twtxt-lib.js.map
+++ b/dist-browser/twtxt-lib.js.map
@@ -1 +1 @@
-{"version":3,"file":"twtxt-lib.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (payload: string | Uint8Array) => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\") {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","exports","Buffer","SlowBuffer","byteLength","i","code","util","require$$0","v","require$$1","charmap","blake2b","define","this","t","e","n","r","s","u","a","M","m","f","l","$","y","g","D","o","d","c","h"],"mappings":"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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACD;AAGD,QAAM,IAAI,IAAI,YAAY,EAAE;AAC5B,QAAM,IAAI,IAAI,YAAY,EAAE;AAC5B,WAAS,gBAAiB,KAAK,MAAM;AACnC,QAAI,IAAI;AACR,SAAK,IAAI,GAAG,IAAI,GAAG,KAAK;AAEtB,QAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AACd,QAAE,IAAI,CAAC,IAAI,WAAW,CAAC;AAAA,IAC3B;AAEE,MAAE,EAAE,KAAK,IAAI;AACb,MAAE,EAAE,KAAK,IAAI,IAAI;AACjB,QAAI,MAAM;AAER,QAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AAAA,IACjB;AAEE,SAAK,IAAI,GAAG,IAAI,IAAI,KAAK;AAEvB,QAAE,CAAC,IAAI,UAAU,IAAI,GAAG,IAAI,CAAC;AAAA,IACjC;AAME,SAAK,IAAI,GAAG,IAAI,IAAI,KAAK;AAEvB,YAAM,GAAG,GAAG,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;AAC7D,YAAM,GAAG,GAAG,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;AAC7D,YAAM,GAAG,GAAG,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9D,YAAM,GAAG,GAAG,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9D,YAAM,GAAG,GAAG,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;AAC9D,YAAM,GAAG,GAAG,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;AAChE,YAAM,GAAG,GAAG,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;AAC/D,YAAM,GAAG,GAAG,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;AAAA,IACnE;AAGE,SAAK,IAAI,GAAG,IAAI,GAAG,KAAK;AACtB,UAAI,EAAE,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAAA,IAC9B;AAAA,EAEA;AAKA,WAAS,YAAa,QAAQ,KAAK;AACjC,QAAI,EAAE,SAAS,KAAK,UAAU,KAAK;AACjC,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACnE;AACE,UAAM,SAAS,MAAM,IAAI,SAAS;AAClC,QAAI,OAAO,EAAE,SAAS,KAAK,UAAU,KAAK;AACxC,YAAM,IAAI,MAAM,4CAA4C;AAAA,IAChE;AAEE,UAAM,MAAM;AAAA,MACV,GAAG,IAAI,YAAY,UAAU;AAAA;AAAA,MAC7B,GAAG,IAAI,WAAW,EAAE;AAAA;AAAA,MACpB,GAAG;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,MACH;AAAA;AAAA,IACJ;AACE,QAAI,EAAE,CAAC,KAAK,WAAc,UAAU,IAAK;AAEzC,QAAI,SAAS,GAAG;AACd,oBAAc,KAAK,GAAG;AACtB,UAAI,IAAI;AAAA,IACZ;AAEE,WAAO;AAAA,EACT;AAIA,WAAS,cAAe,KAAK,OAAO;AAClC,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,UAAI,IAAI,MAAM,IAAI;AAEhB,YAAI,KAAK,IAAI;AACb,wBAAgB,KAAK,KAAK;AAC1B,YAAI,IAAI;AAAA,MACd;AACI,UAAI,EAAE,IAAI,GAAG,IAAI,MAAM,CAAC;AAAA,IAC5B;AAAA,EACA;AAIA,WAAS,aAAc,KAAK;AAC1B,QAAI,KAAK,IAAI;AACb,WAAO,IAAI,IAAI,IAAI;AAEjB,UAAI,EAAE,IAAI,GAAG,IAAI;AAAA,IACrB;AACE,oBAAgB,KAAK,IAAI;AAGzB,UAAM,MAAM,IAAI,WAAW,IAAI,MAAM;AACrC,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,UAAI,CAAC,IAAK,IAAI,EAAE,KAAK,CAAC,KAAM,KAAK,IAAI,KAAO;AAAA,IAChD;AACE,WAAO;AAAA,EACT;AAUA,WAAS,QAAS,OAAO,KAAK,QAAQ;AAEpC,aAAS,UAAU;AACnB,YAAQF,MAAK,eAAe,KAAK;AAGjC,UAAM,MAAM,YAAY,QAAQ,GAAG;AACnC,kBAAc,KAAK,KAAK;AACxB,WAAO,aAAa,GAAG;AAAA,EACzB;AAUA,WAAS,WAAY,OAAO,KAAK,QAAQ;AACvC,UAAM,SAAS,QAAQ,OAAO,KAAK,MAAM;AACzC,WAAOA,MAAK,MAAM,MAAM;AAAA,EAC1B;AAEA,cAAiB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;;;;;;;;AChWA,QAAM,MAAMC,eAAA;AACZ,QAAM,MAAME,eAAA;AAEZ,YAAiB;AAAA,IACf,SAAS,IAAI;AAAA,IACb,YAAY,IAAI;AAAA,IAChB,aAAa,IAAI;AAAA,IACjB,eAAe,IAAI;AAAA,IACnB,cAAc,IAAI;AAAA,IAClB,SAAS,IAAI;AAAA,IACb,YAAY,IAAI;AAAA,IAChB,aAAa,IAAI;AAAA,IACjB,eAAe,IAAI;AAAA,IACnB,cAAc,IAAI;AAAA,EACpB;;;;;;;;;;;ACdA;AASA,QAAI,UAAU,SAAU,UAAU,UAAU;AAC1C,mBAAa,WAAW;AACxB,eAAS,MAAM,EAAE,EAAE,QAAQ,SAAU,GAAG,GAAG;AACzC,YAAI,EAAE,KAAK,UAAW,UAAS,CAAC,IAAI;AAAA,MACxC,CAAG;AACD,aAAO;AAAA,IACT;AAOA,QAAI,UAAU;AAAA,MACZ,UAAU;AAAA,MACV,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,MACP;AAAA;AAGA,YAAQ,UAAU,QAAQ,QAAQ,UAAU,QAAQ,OAAO;AAO3D,QAAI,YAAY;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,MACP;AAAA;AAGA,cAAU,UAAU,QAAQ,UAAU,UAAU,UAAU,OAAO;AAOjE,QAAI,YAAY;AAAA,MACd,UAAU;AAAA,MACV,SAAS,CAAA;AAAA;AAGX,cAAU,UAAU,QAAQ,UAAU,UAAU,UAAU,OAAO;AAYjE,aAAS,QAAS,SAAS;AACzB,WAAK,MAAM,CAAA;AACX,WAAK,QAAQ;AACb,WAAK,QAAQ;AAEb,UAAI,SAAS;AAEX,gBAAQ,QAAQ,MAAI;AAAA,UAClB,KAAK;AACH,iBAAK,UAAUT,UAAQ,QAAQ;AAC/B;AAAA,UACF,KAAK;AACH,iBAAK,UAAUA,UAAQ,UAAU;AACjC;AAAA,UACF,KAAK;AACH,iBAAK,UAAUA,UAAQ,UAAU;AACjC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,cAAc;AAAA,QACtC;AAEI,YAAI,QAAQ,QAAS,MAAK,UAAU,QAAQ;AAAA,MAChD;AAAA,IACA;AAMA,YAAQ,UAAU,UAAU,QAAQ;AASpC,YAAQ,UAAU,QAAQ,SAAU,KAAK;AACvC,UAAIU,WAAU,KAAK;AACnB,UAAI,MAAM,KAAK;AACf,UAAI,QAAQ,KAAK;AACjB,UAAI,QAAQ,KAAK;AAGjB,UAAI,YAAW,EAAG,MAAM,EAAE,EAAE,QAAQ,SAAU,MAAM;AAGlD,YAAI,QAAQ,IAAK;AAGjB,YAAI,SAASA,SAAQ,IAAI,IAAI;AAU7B,iBAAS;AACT,YAAI,QAAQ,GAAG;AACb,mBAAS,UAAU;AAAA,QACzB,WAAe,QAAQ,GAAG;AACpB,cAAI,KAAK,QAAS,UAAU,CAAC,KAAM;AACnC,mBAAS;AACT,kBAAS,UAAU,QAAS;AAAA,QAClC,OAAW;AACL,cAAI,KAAK,QAAQ,MAAM;AACvB,kBAAQ;AACR,kBAAQ;AAAA,QACd;AAAA,MACA,CAAG;AAGD,WAAK,QAAQ;AACb,WAAK,QAAQ;AAGb,aAAO;AAAA,IACT;AASA,YAAQ,UAAU,WAAW,SAAU,KAAK;AAC1C,UAAI,KAAK;AACP,aAAK,MAAM,GAAG;AAAA,MAClB;AACE,UAAI,KAAK,UAAU,KAAK,KAAK,UAAU,GAAG;AACxC,aAAK,IAAI,KAAK,KAAK,KAAK;AACxB,aAAK,QAAQ;AACb,aAAK,QAAQ;AAAA,MACjB;AACE,aAAO,KAAK;AAAA,IACd;AAYA,aAAS,QAAS,SAAS;AACzB,WAAK,MAAM;AACX,WAAK,QAAQ;AACb,WAAK,QAAQ;AAEb,UAAI,SAAS;AAEX,gBAAQ,QAAQ,MAAI;AAAA,UAClB,KAAK;AACH,iBAAK,WAAWV,UAAQ,QAAQ;AAChC;AAAA,UACF,KAAK;AACH,iBAAK,WAAWA,UAAQ,UAAU;AAClC;AAAA,UACF,KAAK;AACH,iBAAK,WAAWA,UAAQ,UAAU;AAClC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,cAAc;AAAA,QACtC;AAEI,YAAI,QAAQ,SAAU,MAAK,WAAW,QAAQ;AAAA,iBACrC,QAAQ,GAAI,MAAK,WAAW,KAAK,SAAS,YAAW;AAAA,MAClE;AAAA,IACA;AAMA,YAAQ,UAAU,WAAW,QAAQ;AASrC,YAAQ,UAAU,QAAQ,SAAU,KAAK;AACvC,UAAI,QAAQ,KAAK;AACjB,UAAI,QAAQ,KAAK;AACjB,UAAI;AACJ,UAAI;AACJ,UAAI;AAGJ,WAAK,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AAC/B,eAAO,IAAI,CAAC;AAUZ,iBAAS,QAAS,QAAQ;AAC1B,aAAK,OAAO,KAAK,SAAS,SAAS,EAAI;AAEvC,YAAI,QAAQ,GAAG;AACb,mBAAS;AACT,mBAAS,QAAQ;AACjB,eAAK,OAAO,KAAK,SAAS,SAAS,EAAI;AAAA,QAC7C;AAEI,gBAAQ,IAAI;AACZ,gBAAQ,QAAQ;AAChB,gBAAQ,IAAI;AAAA,MAChB;AAGE,WAAK,QAAQ;AACb,WAAK,QAAQ;AAGb,aAAO;AAAA,IACT;AASA,YAAQ,UAAU,WAAW,SAAU,KAAK;AAC1C,UAAI,KAAK;AACP,aAAK,MAAM,GAAG;AAAA,MAClB;AACE,UAAI,KAAK,UAAU,GAAG;AACpB,aAAK,OAAO,KAAK,SAAS,KAAK,QAAQ,EAAI;AAC3C,aAAK,QAAQ;AACb,aAAK,QAAQ;AAAA,MACjB;AACE,aAAO,KAAK;AAAA,IACd;AAUAA,cAAA,SAAiB,SAAU,KAAK,SAAS;AACvC,aAAO,IAAI,QAAQ,OAAO,EAAE,SAAS,GAAG;AAAA,IAC1C;AAUAA,cAAA,SAAiB,SAAU,KAAK,SAAS;AACvC,aAAO,IAAI,QAAQ,OAAO,EAAE,SAAS,GAAG;AAAA,IAC1C;AAGAA,cAAA,UAAkB;AAClBA,cAAA,UAAkB;AAClBA,cAAA,UAAkB;AAClBA,cAAA,YAAoB;AACpBA,cAAA,UAAkB;AAClBA,cAAA,YAAoB;AAAA;;;;;ACrTb,MAAM,eAAe,CAAC,YAAkD;AAC9E,QAAM,UAAU,IAAI,OAAO,QAAQ,EAAE,MAAM,WAAW;AACtD,SAAO,QAAQ,MAAM,OAAO,EAAE,SAAA;AAC/B;AAEO,MAAM,uBAAuB,CAAC,UACpC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,MAAM,CAAC,IAAI;ACPnD,WAAW,SAASC;AAQpB,MAAM,YACL;AAED,MAAM,gBAAgB,CAAC,SAAiB;AACvC,QAAM,MAAM,CAAC,MAAuB,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,GAAG,CAAC,GAAG;AACtE,QAAM,UAAU,CAAC,MAAuB,MACvC,GAAG,CAAC,MAAM,MAAO,IAAI,EAAE,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,GAC5C,CAAC,MAAM,KAAK,IAAI,EACjB,GAAG,CAAC,GAAG;AAER,MAAI,IAAI,UAAU,KAAK,IAAI;AAG3B,MAAI,MAAK,uBAAI,QAAO,QAAW;AAE9B,MAAE,CAAC,IAAI;AAAA,EACR;AACA,MAAI,MAAK,uBAAI,SAAQ,QAAW;AAC/B,MAAE,EAAE,IAAI;AAAA,EACT;AAEA,QAAM,SAAS,GAAG,uBAAI,EAAE,IAAI,uBAAI,GAAG,GAAG,QAAQ,eAAe,GAAG;AAEhE,SAAO;AAAA,IACN,QAAQ,uBAAI,EAAE;AAAA,IACd;AAAA,IACA,IAAI,uBAAI,EAAE;AAAA,IACV;AAAA,IACA,IAAI,uBAAI,EAAE;AAAA,IACV,uBAAI;AAAA,IACJ,IAAI,uBAAI,EAAE;AAAA,IACV;AAAA,IACA,IAAI,uBAAI,EAAE;AAAA,IACV;AAAA,IACA,IAAI,uBAAI,EAAE;AAAA;AAAA,IAEV;AAAA,EAAA,EACC,KAAK,EAAE;AACV;AAEA,SAAwB,QAAQ,KAAkB;AACjD,QAAM,UAAU,cAAc,IAAI,OAAO;AACzC,QAAM,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,EAAE,KAAK,IAAI;AAEzD,SAAO,aAAaU,eAAAA,QAAQ,SAAS,QAAW,EAAE,CAAC,EACjD,YAAA,EACA,MAAM,EAAE;AACX;;;;;;;;ACxDA,MAAC,SAAS,GAAE,GAAE;AAAC,MAA0B,OAA2B,iBAAe,EAAC,IAAG,QAAsCC,SAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,QAAM,EAAC;AAAA,IAAE,GAAEC,YAAM,WAAU;AAAC;AAAa,UAAI,IAAE,KAAI,IAAE,KAAI,IAAE,MAAK,IAAE,eAAc,IAAE,UAAS,IAAE,UAAS,IAAE,QAAO,IAAE,OAAM,IAAE,QAAO,IAAE,SAAQ,IAAE,WAAU,IAAE,QAAO,IAAE,QAAO,IAAE,gBAAe,IAAE,8FAA6F,IAAE,uFAAsF,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASC,IAAE;AAAC,YAAIC,KAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEC,KAAEF,KAAE;AAAI,eAAM,MAAIA,MAAGC,IAAGC,KAAE,MAAI,EAAE,KAAGD,GAAEC,EAAC,KAAGD,GAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAE,IAAE,SAASD,IAAEC,IAAEC,IAAE;AAAC,YAAIC,KAAE,OAAOH,EAAC;AAAE,eAAM,CAACG,MAAGA,GAAE,UAAQF,KAAED,KAAE,KAAG,MAAMC,KAAE,IAAEE,GAAE,MAAM,EAAE,KAAKD,EAAC,IAAEF;AAAA,MAAC,GAAE,IAAE,EAAC,GAAE,GAAE,GAAE,SAASA,IAAE;AAAC,YAAIC,KAAE,CAACD,GAAE,UAAS,GAAGE,KAAE,KAAK,IAAID,EAAC,GAAEE,KAAE,KAAK,MAAMD,KAAE,EAAE,GAAEZ,KAAEY,KAAE;AAAG,gBAAOD,MAAG,IAAE,MAAI,OAAK,EAAEE,IAAE,GAAE,GAAG,IAAE,MAAI,EAAEb,IAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAASU,GAAEC,IAAEC,IAAE;AAAC,YAAGD,GAAE,KAAI,IAAGC,GAAE,KAAI,EAAG,QAAM,CAACF,GAAEE,IAAED,EAAC;AAAE,YAAIE,KAAE,MAAID,GAAE,SAAOD,GAAE,KAAI,MAAKC,GAAE,MAAK,IAAGD,GAAE,MAAK,IAAIX,KAAEW,GAAE,QAAQ,IAAIE,IAAE,CAAC,GAAEC,KAAEF,KAAEZ,KAAE,GAAEe,KAAEJ,GAAE,MAAK,EAAG,IAAIE,MAAGC,KAAE,KAAG,IAAG,CAAC;AAAE,eAAM,EAAE,EAAED,MAAGD,KAAEZ,OAAIc,KAAEd,KAAEe,KAAEA,KAAEf,QAAK;AAAA,MAAE,GAAE,GAAE,SAASU,IAAE;AAAC,eAAOA,KAAE,IAAE,KAAK,KAAKA,EAAC,KAAG,IAAE,KAAK,MAAMA,EAAC;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAM,EAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,GAAE,GAAE,EAAC,EAAEA,EAAC,KAAG,OAAOA,MAAG,EAAE,EAAE,YAAW,EAAG,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,IAAE;AAAC,eAAO,WAASA;AAAA,MAAC,EAAC,GAAE,IAAE,MAAK,IAAE;AAAG,QAAE,CAAC,IAAE;AAAE,UAAI,IAAE,kBAAiB,IAAE,SAASA,IAAE;AAAC,eAAOA,cAAa,KAAG,EAAE,CAACA,MAAG,CAACA,GAAE,CAAC;AAAA,MAAE,GAAE,IAAE,SAASA,GAAEC,IAAEC,IAAEC,IAAE;AAAC,YAAIb;AAAE,YAAG,CAACW,GAAE,QAAO;AAAE,YAAG,YAAU,OAAOA,IAAE;AAAC,cAAIG,KAAEH,GAAE;AAAc,YAAEG,EAAC,MAAId,KAAEc,KAAGF,OAAI,EAAEE,EAAC,IAAEF,IAAEZ,KAAEc;AAAG,cAAIC,KAAEJ,GAAE,MAAM,GAAG;AAAE,cAAG,CAACX,MAAGe,GAAE,SAAO,EAAE,QAAOL,GAAEK,GAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAIC,KAAEL,GAAE;AAAK,YAAEK,EAAC,IAAEL,IAAEX,KAAEgB;AAAA,QAAC;AAAC,eAAM,CAACH,MAAGb,OAAI,IAAEA,KAAGA,MAAG,CAACa,MAAG;AAAA,MAAC,GAAE,IAAE,SAASH,IAAEC,IAAE;AAAC,YAAG,EAAED,EAAC,EAAE,QAAOA,GAAE,MAAK;AAAG,YAAIE,KAAE,YAAU,OAAOD,KAAEA,KAAE,CAAA;AAAG,eAAOC,GAAE,OAAKF,IAAEE,GAAE,OAAK,WAAU,IAAI,EAAEA,EAAC;AAAA,MAAC,GAAE,IAAE;AAAE,QAAE,IAAE,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,SAASF,IAAEC,IAAE;AAAC,eAAO,EAAED,IAAE,EAAC,QAAOC,GAAE,IAAG,KAAIA,GAAE,IAAG,GAAEA,GAAE,IAAG,SAAQA,GAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAI,KAAE,WAAU;AAAC,iBAASM,GAAEP,IAAE;AAAC,eAAK,KAAG,EAAEA,GAAE,QAAO,MAAK,IAAE,GAAE,KAAK,MAAMA,EAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,GAAE,KAAG,CAAA,GAAG,KAAK,CAAC,IAAE;AAAA,QAAE;AAAC,YAAIQ,KAAED,GAAE;AAAU,eAAOC,GAAE,QAAM,SAASR,IAAE;AAAC,eAAK,MAAG,SAASA,IAAE;AAAC,gBAAIC,KAAED,GAAE,MAAKE,KAAEF,GAAE;AAAI,gBAAG,SAAOC,GAAE,QAAO,oBAAI,KAAK,GAAG;AAAE,gBAAG,EAAE,EAAEA,EAAC,EAAE,QAAO,oBAAI;AAAK,gBAAGA,cAAa,KAAK,QAAO,IAAI,KAAKA,EAAC;AAAE,gBAAG,YAAU,OAAOA,MAAG,CAAC,MAAM,KAAKA,EAAC,GAAE;AAAC,kBAAIE,KAAEF,GAAE,MAAM,CAAC;AAAE,kBAAGE,IAAE;AAAC,oBAAIb,KAAEa,GAAE,CAAC,IAAE,KAAG,GAAEC,MAAGD,GAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAOD,KAAE,IAAI,KAAK,KAAK,IAAIC,GAAE,CAAC,GAAEb,IAAEa,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEC,EAAC,CAAC,IAAE,IAAI,KAAKD,GAAE,CAAC,GAAEb,IAAEa,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEA,GAAE,CAAC,KAAG,GAAEC,EAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAKH,EAAC;AAAA,UAAC,GAAED,EAAC,GAAE,KAAK,KAAI;AAAA,QAAE,GAAEQ,GAAE,OAAK,WAAU;AAAC,cAAIR,KAAE,KAAK;AAAG,eAAK,KAAGA,GAAE,YAAW,GAAG,KAAK,KAAGA,GAAE,SAAQ,GAAG,KAAK,KAAGA,GAAE,WAAU,KAAK,KAAGA,GAAE,OAAM,GAAG,KAAK,KAAGA,GAAE,SAAQ,GAAG,KAAK,KAAGA,GAAE,cAAa,KAAK,KAAGA,GAAE,WAAU,GAAG,KAAK,MAAIA,GAAE,gBAAe;AAAA,QAAE,GAAEQ,GAAE,SAAO,WAAU;AAAC,iBAAO;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAM,EAAE,KAAK,GAAG,SAAQ,MAAK;AAAA,QAAE,GAAEA,GAAE,SAAO,SAASR,IAAEC,IAAE;AAAC,cAAIC,KAAE,EAAEF,EAAC;AAAE,iBAAO,KAAK,QAAQC,EAAC,KAAGC,MAAGA,MAAG,KAAK,MAAMD,EAAC;AAAA,QAAC,GAAEO,GAAE,UAAQ,SAASR,IAAEC,IAAE;AAAC,iBAAO,EAAED,EAAC,IAAE,KAAK,QAAQC,EAAC;AAAA,QAAC,GAAEO,GAAE,WAAS,SAASR,IAAEC,IAAE;AAAC,iBAAO,KAAK,MAAMA,EAAC,IAAE,EAAED,EAAC;AAAA,QAAC,GAAEQ,GAAE,KAAG,SAASR,IAAEC,IAAEC,IAAE;AAAC,iBAAO,EAAE,EAAEF,EAAC,IAAE,KAAKC,EAAC,IAAE,KAAK,IAAIC,IAAEF,EAAC;AAAA,QAAC,GAAEQ,GAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAO,IAAG,GAAG;AAAA,QAAC,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG,QAAO;AAAA,QAAE,GAAEA,GAAE,UAAQ,SAASR,IAAEC,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,CAAC,CAAC,EAAE,EAAEF,EAAC,KAAGA,IAAEQ,KAAE,EAAE,EAAET,EAAC,GAAEU,KAAE,SAASV,IAAEC,IAAE;AAAC,gBAAIX,KAAE,EAAE,EAAEY,GAAE,KAAG,KAAK,IAAIA,GAAE,IAAGD,IAAED,EAAC,IAAE,IAAI,KAAKE,GAAE,IAAGD,IAAED,EAAC,GAAEE,EAAC;AAAE,mBAAOC,KAAEb,KAAEA,GAAE,MAAM,CAAC;AAAA,UAAC,GAAEqB,KAAE,SAASX,IAAEC,IAAE;AAAC,mBAAO,EAAE,EAAEC,GAAE,SAASF,EAAC,EAAE,MAAME,GAAE,OAAO,GAAG,IAAGC,KAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMF,EAAC,CAAC,GAAEC,EAAC;AAAA,UAAC,GAAEU,KAAE,KAAK,IAAGL,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGd,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAOe,IAAC;AAAA,YAAE,KAAK;AAAE,qBAAON,KAAEO,GAAE,GAAE,CAAC,IAAEA,GAAE,IAAG,EAAE;AAAA,YAAE,KAAK;AAAE,qBAAOP,KAAEO,GAAE,GAAEH,EAAC,IAAEG,GAAE,GAAEH,KAAE,CAAC;AAAA,YAAE,KAAK;AAAE,kBAAIM,KAAE,KAAK,QAAO,EAAG,aAAW,GAAEC,MAAGF,KAAEC,KAAED,KAAE,IAAEA,MAAGC;AAAE,qBAAOH,GAAEP,KAAEK,KAAEM,KAAEN,MAAG,IAAEM,KAAGP,EAAC;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAOI,GAAEjB,KAAE,SAAQ,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOiB,GAAEjB,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOiB,GAAEjB,KAAE,WAAU,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOiB,GAAEjB,KAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK;UAAO;AAAA,QAAC,GAAEc,GAAE,QAAM,SAASR,IAAE;AAAC,iBAAO,KAAK,QAAQA,IAAE,KAAE;AAAA,QAAC,GAAEQ,GAAE,OAAK,SAASR,IAAEC,IAAE;AAAC,cAAIC,IAAEa,KAAE,EAAE,EAAEf,EAAC,GAAES,KAAE,SAAO,KAAK,KAAG,QAAM,KAAIC,MAAGR,KAAE,CAAA,GAAGA,GAAE,CAAC,IAAEO,KAAE,QAAOP,GAAE,CAAC,IAAEO,KAAE,QAAOP,GAAE,CAAC,IAAEO,KAAE,SAAQP,GAAE,CAAC,IAAEO,KAAE,YAAWP,GAAE,CAAC,IAAEO,KAAE,SAAQP,GAAE,CAAC,IAAEO,KAAE,WAAUP,GAAE,CAAC,IAAEO,KAAE,WAAUP,GAAE,CAAC,IAAEO,KAAE,gBAAeP,IAAGa,EAAC,GAAEJ,KAAEI,OAAI,IAAE,KAAK,MAAId,KAAE,KAAK,MAAIA;AAAE,cAAGc,OAAI,KAAGA,OAAI,GAAE;AAAC,gBAAIH,KAAE,KAAK,MAAK,EAAG,IAAI,GAAE,CAAC;AAAE,YAAAA,GAAE,GAAGF,EAAC,EAAEC,EAAC,GAAEC,GAAE,KAAI,GAAG,KAAK,KAAGA,GAAE,IAAI,GAAE,KAAK,IAAI,KAAK,IAAGA,GAAE,YAAW,CAAE,CAAC,EAAE;AAAA,UAAE,MAAM,CAAAF,MAAG,KAAK,GAAGA,EAAC,EAAEC,EAAC;AAAE,iBAAO,KAAK,QAAO;AAAA,QAAI,GAAEH,GAAE,MAAI,SAASR,IAAEC,IAAE;AAAC,iBAAO,KAAK,QAAQ,KAAKD,IAAEC,EAAC;AAAA,QAAC,GAAEO,GAAE,MAAI,SAASR,IAAE;AAAC,iBAAO,KAAK,EAAE,EAAEA,EAAC,CAAC,EAAC;AAAA,QAAE,GAAEQ,GAAE,MAAI,SAASL,IAAEM,IAAE;AAAC,cAAIO,IAAEN,KAAE;AAAK,UAAAP,KAAE,OAAOA,EAAC;AAAE,cAAIQ,KAAE,EAAE,EAAEF,EAAC,GAAEG,KAAE,SAASZ,IAAE;AAAC,gBAAIC,KAAE,EAAES,EAAC;AAAE,mBAAO,EAAE,EAAET,GAAE,KAAKA,GAAE,SAAO,KAAK,MAAMD,KAAEG,EAAC,CAAC,GAAEO,EAAC;AAAA,UAAC;AAAE,cAAGC,OAAI,EAAE,QAAO,KAAK,IAAI,GAAE,KAAK,KAAGR,EAAC;AAAE,cAAGQ,OAAI,EAAE,QAAO,KAAK,IAAI,GAAE,KAAK,KAAGR,EAAC;AAAE,cAAGQ,OAAI,EAAE,QAAOC,GAAE,CAAC;AAAE,cAAGD,OAAI,EAAE,QAAOC,GAAE,CAAC;AAAE,cAAIL,MAAGS,KAAE,IAAGA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,GAAE,CAAC,IAAE,GAAEA,IAAGL,EAAC,KAAG,GAAEH,KAAE,KAAK,GAAG,YAAUL,KAAEI;AAAE,iBAAO,EAAE,EAAEC,IAAE,IAAI;AAAA,QAAC,GAAEA,GAAE,WAAS,SAASR,IAAEC,IAAE;AAAC,iBAAO,KAAK,IAAI,KAAGD,IAAEC,EAAC;AAAA,QAAC,GAAEO,GAAE,SAAO,SAASR,IAAE;AAAC,cAAIC,KAAE,MAAKC,KAAE,KAAK,QAAO;AAAG,cAAG,CAAC,KAAK,UAAU,QAAOA,GAAE,eAAa;AAAE,cAAIC,KAAEH,MAAG,wBAAuBV,KAAE,EAAE,EAAE,IAAI,GAAEc,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGC,KAAE,KAAK,IAAGS,KAAEb,GAAE,UAASe,KAAEf,GAAE,QAAOO,KAAEP,GAAE,UAASgB,KAAE,SAASlB,IAAEE,IAAEZ,IAAEc,IAAE;AAAC,mBAAOJ,OAAIA,GAAEE,EAAC,KAAGF,GAAEC,IAAEE,EAAC,MAAIb,GAAEY,EAAC,EAAE,MAAM,GAAEE,EAAC;AAAA,UAAC,GAAEY,KAAE,SAAShB,IAAE;AAAC,mBAAO,EAAE,EAAEI,KAAE,MAAI,IAAGJ,IAAE,GAAG;AAAA,UAAC,GAAEW,KAAEF,MAAG,SAAST,IAAEC,IAAEC,IAAE;AAAC,gBAAIC,KAAEH,KAAE,KAAG,OAAK;AAAK,mBAAOE,KAAEC,GAAE,YAAW,IAAGA;AAAA,UAAC;AAAE,iBAAOA,GAAE,QAAQ,IAAG,SAASH,IAAEG,IAAE;AAAC,mBAAOA,OAAG,SAASH,IAAE;AAAC,sBAAOA,IAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,OAAOC,GAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOK,KAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,KAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOY,GAAEhB,GAAE,aAAYI,IAAEW,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOC,GAAED,IAAEX,EAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOL,GAAE;AAAA,gBAAG,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOiB,GAAEhB,GAAE,aAAYD,GAAE,IAAGc,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOG,GAAEhB,GAAE,eAAcD,GAAE,IAAGc,IAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,GAAEd,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOG,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOY,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOL,GAAEP,IAAEC,IAAE,IAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOM,GAAEP,IAAEC,IAAE,KAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,IAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOJ,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAO,EAAE,EAAEA,GAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAO,EAAE,EAAEA,GAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOX;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,GAAEU,EAAC,KAAGV,GAAE,QAAQ,KAAI,EAAE;AAAA,UAAC;QAAG,GAAEkB,GAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAiB,IAAG,EAAE;AAAA,QAAC,GAAEA,GAAE,OAAK,SAASL,IAAEa,IAAEN,IAAE;AAAC,cAAIC,IAAEC,KAAE,MAAKL,KAAE,EAAE,EAAES,EAAC,GAAER,KAAE,EAAEL,EAAC,GAAET,MAAGc,GAAE,cAAY,KAAK,UAAS,KAAI,GAAEK,KAAE,OAAKL,IAAEM,KAAE,WAAU;AAAC,mBAAO,EAAE,EAAEF,IAAEJ,EAAC;AAAA,UAAC;AAAE,kBAAOD,IAAC;AAAA,YAAE,KAAK;AAAE,cAAAI,KAAEG,GAAC,IAAG;AAAG;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,GAAC;AAAG;AAAA,YAAM,KAAK;AAAE,cAAAH,KAAEG,GAAC,IAAG;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAH,MAAGE,KAAEnB,MAAG;AAAO;AAAA,YAAM,KAAK;AAAE,cAAAiB,MAAGE,KAAEnB,MAAG;AAAM;AAAA,YAAM,KAAK;AAAE,cAAAiB,KAAEE,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAF,KAAEE,KAAE;AAAE;AAAA,YAAM,KAAK;AAAE,cAAAF,KAAEE,KAAE;AAAE;AAAA,YAAM;AAAQ,cAAAF,KAAEE;AAAA,UAAC;AAAC,iBAAOH,KAAEC,KAAE,EAAE,EAAEA,EAAC;AAAA,QAAC,GAAEH,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAM,CAAC,EAAE;AAAA,QAAE,GAAEA,GAAE,UAAQ,WAAU;AAAC,iBAAO,EAAE,KAAK,EAAE;AAAA,QAAC,GAAEA,GAAE,SAAO,SAASR,IAAEC,IAAE;AAAC,cAAG,CAACD,GAAE,QAAO,KAAK;AAAG,cAAIE,KAAE,KAAK,MAAK,GAAGC,KAAE,EAAEH,IAAEC,IAAE,IAAE;AAAE,iBAAOE,OAAID,GAAE,KAAGC,KAAGD;AAAA,QAAC,GAAEM,GAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAO,CAAE;AAAA,QAAC,GAAEA,GAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAO,IAAG,KAAK,YAAW,IAAG;AAAA,QAAI,GAAEA,GAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAEA,GAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAED;AAAA,MAAC,MAAI,IAAE,EAAE;AAAU,aAAO,EAAE,YAAU,GAAE,CAAC,CAAC,OAAM,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK,CAAC,CAAC,EAAE,SAAS,SAASP,IAAE;AAAC,UAAEA,GAAE,CAAC,CAAC,IAAE,SAASC,IAAE;AAAC,iBAAO,KAAK,GAAGA,IAAED,GAAE,CAAC,GAAEA,GAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,EAAC,GAAG,EAAE,SAAO,SAASA,IAAEC,IAAE;AAAC,eAAOD,GAAE,OAAKA,GAAEC,IAAE,GAAE,CAAC,GAAED,GAAE,KAAG,OAAI;AAAA,MAAC,GAAE,EAAE,SAAO,GAAE,EAAE,UAAQ,GAAE,EAAE,OAAK,SAASA,IAAE;AAAC,eAAO,EAAE,MAAIA,EAAC;AAAA,MAAC,GAAE,EAAE,KAAG,EAAE,CAAC,GAAE,EAAE,KAAG,GAAE,EAAE,IAAE,IAAG;AAAA,IAAC,EAAC;AAAA;;;;;;;;;;;;ACAr/N,MAAC,SAAS,GAAE,GAAE;AAAC,MAA0B,OAA2B,OAAA,UAAe,EAAC,IAAG,QAAsCF,SAAO,CAAC,KAAG,IAAE,eAAa,OAAO,aAAW,aAAW,KAAG,MAAM,mBAAiB,EAAC;AAAA,IAAE,GAAEC,QAAM,WAAU;AAAC;AAAa,UAAI,IAAE,UAAS,IAAE,wBAAuB,IAAE;AAAe,aAAO,SAAS,GAAE,GAAE,GAAE;AAAC,YAAI,IAAE,EAAE;AAAU,UAAE,MAAI,SAASC,IAAE;AAAC,cAAIV,KAAE,EAAC,MAAKU,IAAE,KAAI,MAAG,MAAK,UAAS;AAAE,iBAAO,IAAI,EAAEV,EAAC;AAAA,QAAC,GAAE,EAAE,MAAI,SAASA,IAAE;AAAC,cAAIW,KAAE,EAAE,KAAK,UAAS,EAAC,QAAO,KAAK,IAAG,KAAI,KAAE,CAAC;AAAE,iBAAOX,KAAEW,GAAE,IAAI,KAAK,UAAS,GAAG,CAAC,IAAEA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAO,EAAE,KAAK,OAAM,GAAG,EAAC,QAAO,KAAK,IAAG,KAAI,MAAE,CAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAM,UAAE,QAAM,SAASD,IAAE;AAAC,UAAAA,GAAE,QAAM,KAAK,KAAG,OAAI,KAAK,OAAM,EAAG,EAAEA,GAAE,OAAO,MAAI,KAAK,UAAQA,GAAE,UAAS,EAAE,KAAK,MAAKA,EAAC;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,WAAU;AAAC,cAAG,KAAK,IAAG;AAAC,gBAAIA,KAAE,KAAK;AAAG,iBAAK,KAAGA,GAAE,eAAc,GAAG,KAAK,KAAGA,GAAE,YAAW,GAAG,KAAK,KAAGA,GAAE,WAAU,GAAG,KAAK,KAAGA,GAAE,UAAS,GAAG,KAAK,KAAGA,GAAE,YAAW,GAAG,KAAK,KAAGA,GAAE,cAAa,GAAG,KAAK,KAAGA,GAAE,cAAa,GAAG,KAAK,MAAIA,GAAE,mBAAkB;AAAA,UAAE,MAAM,GAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAU,UAAE,YAAU,SAASI,IAAEK,IAAE;AAAC,cAAIP,KAAE,KAAK,OAAM,EAAG;AAAE,cAAGA,GAAEE,EAAC,EAAE,QAAO,KAAK,KAAG,IAAEF,GAAE,KAAK,OAAO,IAAE,EAAE,KAAK,IAAI,IAAE,KAAK;AAAQ,cAAG,YAAU,OAAOE,OAAIA,MAAE,SAASJ,IAAE;AAAC,uBAASA,OAAIA,KAAE;AAAI,gBAAII,KAAEJ,GAAE,MAAM,CAAC;AAAE,gBAAG,CAACI,GAAE,QAAO;AAAK,gBAAIK,MAAG,KAAGL,GAAE,CAAC,GAAG,MAAM,CAAC,KAAG,CAAC,KAAI,GAAE,CAAC,GAAEF,KAAEO,GAAE,CAAC,GAAEJ,KAAE,KAAG,CAACI,GAAE,CAAC,IAAG,CAACA,GAAE,CAAC;AAAE,mBAAO,MAAIJ,KAAE,IAAE,QAAMH,KAAEG,KAAE,CAACA;AAAA,UAAC,GAAED,EAAC,GAAE,SAAOA,IAAG,QAAO;AAAK,cAAIC,KAAE,KAAK,IAAID,EAAC,KAAG,KAAG,KAAGA,KAAEA;AAAE,cAAG,MAAIC,GAAE,QAAO,KAAK,IAAII,EAAC;AAAE,cAAIN,KAAE,KAAK,MAAK;AAAG,cAAGM,GAAE,QAAON,GAAE,UAAQE,IAAEF,GAAE,KAAG,OAAGA;AAAE,cAAIY,KAAE,KAAK,KAAG,KAAK,OAAM,EAAG,kBAAiB,IAAG,KAAG,KAAK,UAAS;AAAG,kBAAOZ,KAAE,KAAK,MAAK,EAAG,IAAIE,KAAEU,IAAE,CAAC,GAAG,UAAQV,IAAEF,GAAE,GAAG,eAAaY,IAAEZ;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASH,IAAE;AAAC,cAAIV,KAAEU,OAAI,KAAK,KAAG,2BAAyB;AAAI,iBAAO,EAAE,KAAK,MAAKV,EAAC;AAAA,QAAC,GAAE,EAAE,UAAQ,WAAU;AAAC,cAAIU,KAAE,KAAK,OAAM,EAAG,EAAE,KAAK,OAAO,IAAE,IAAE,KAAK,WAAS,KAAK,GAAG,gBAAc,KAAK,GAAG,kBAAiB;AAAI,iBAAO,KAAK,GAAG,QAAO,IAAG,MAAIA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAM,CAAC,CAAC,KAAK;AAAA,QAAE,GAAE,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG;QAAa,GAAE,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG,YAAW;AAAA,QAAE;AAAE,YAAI,IAAE,EAAE;AAAO,UAAE,SAAO,SAASA,IAAE;AAAC,iBAAM,QAAMA,MAAG,KAAK,UAAQ,EAAE,KAAK,OAAO,yBAAyB,CAAC,EAAE,OAAM,IAAG,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI,IAAE,EAAE;AAAK,UAAE,OAAK,SAASA,IAAEV,IAAEW,IAAE;AAAC,cAAGD,MAAG,KAAK,OAAKA,GAAE,GAAG,QAAO,EAAE,KAAK,MAAKA,IAAEV,IAAEW,EAAC;AAAE,cAAIG,KAAE,KAAK,MAAK,GAAGK,KAAE,EAAET,EAAC,EAAE,MAAK;AAAG,iBAAO,EAAE,KAAKI,IAAEK,IAAEnB,IAAEW,EAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAC;AAAA;;;;;ACQltE,MAAM,OAAO,GAAG;AAMhB,SAAwB,WAAW,OAAe;AACjD,QAAM,WAAW,MAAM,MAAM,IAAI;AAEjC,QAAM,EAAE,eAAe,CAAA,GAAI,eAAe,CAAA,EAAC,IAAM,SAAS;AAAA,IACzD,CACC,KAIA,iBACI;AACJ,YAAM,OAAO,aAAa,KAAA;AAC1B,UAAI,SAAS,GAAI,QAAO;AAExB,UAAI,KAAK,WAAW,GAAG,EAAG,KAAI,aAAa,KAAK,IAAI;AAAA,UAC/C,KAAI,aAAa,KAAK,IAAI;AAC/B,aAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,IAAC;AAAA,EAChB;AAGD,QAAM,EAAE,YAAY,CAAA,GAAI,WAAW,CAAA,EAAC,IAAM,aACxC,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,CAAC,EACnC;AAAA,IACA,CACC,KAIA,SACI;AACJ,YAAM,CAAC,KAAK,GAAG,IAAI,IAAI,KAErB,UAAU,CAAC,EACX,MAAM,GAAG,EACT,IAAI,CAAC,UAAU,MAAM,MAAM;AAC7B,YAAM,MAAM,KAAK,KAAK,GAAG;AACzB,UAAI,QAAQ,UAAU;AACrB,cAAM,CAAC,MAAM,GAAG,IAAI,IAAI,KAAA,EAAO,MAAM,KAAK;AAC1C,YAAI,UAAU,KAAK,EAAE,MAAM,KAAK;AAAA,MACjC,OAAO;AACN,YAAI,IAAI,SAAS,GAAG,GAAG;AACtB,cAAI,CAAC,MAAM,QAAQ,IAAI,SAAS,GAAG,CAAC;AACnC,gBAAI,SAAS,GAAG,IAAI,CAAC,IAAI,SAAS,GAAG,GAAG,GAAG;AAAA,cACvC,KAAI,SAAS,GAAG,EAAE,KAAK,GAAG;AAAA,QAChC,MAAO,KAAI,SAAS,GAAG,IAAI;AAAA,MAC5B;AACA,aAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,WAAW,CAAA;AAAA,MACX,UAAU,CAAA;AAAA,IAAC;AAAA,EACZ;AAGF,QAAM,aAAa;AAEnB,QAAM,OAAO,aACX,IAAI,CAAC,SAAS;AV3EjB;AU4EG,UAAM,CAAC,SAAS,OAAO,IAAI,KACzB,MAAM,IAAI,EACV,IAAI,CAAC,QAAQ,IAAI,MAAM;AAEzB,QAAI,OAAO,YAAY;AACtB,YAAM,IAAI,MAAM,yBAAyB,IAAI,EAAE;AAEhD,UAAM,eAAe,MAAM,IAAI,OAAO;AACtC,QAAI,CAAC,aAAa,QAAA;AACjB,YAAM,IAAI,MAAM,oBAAoB,IAAI,EAAE;AAE3C,UAAM,aAAa,aAAa,YAAA;AAEhC,UAAM,eAAe,WAAW,KAAK,OAAO;AAC5C,QAAI,WAAW,WAAW;AAE1B,QAAI,6CAAc,QAAQ;AACzB,kBAAY,6CAAe;AAC3B,kBAAY,6CAAe;AAC3B,iBAAW,6CAAe;AAAA,IAC3B;AAEA,UAAM,OAAO,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,sBAAqB,0CAAU,QAAV,YAAiB,EAAE;AAAA,IAAA,CAC7C;AAED,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEF,CAAC,EACA,KAAK,CAAC,GAAG,MAAM,MAAM,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;ACtHA,SAA8B,sBAAsB,MAAM,IAAI;AAAA;AAC7D,QAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iBAAiB;AAE3C,QAAI;AACH,YAAM,WAAW,MAAM,MAAM,GAAG;AAChC,YAAM,YAAY,MAAM,SAAS,KAAA;AACjC,YAAM,eAAe;AAAA,QACpB,SAAS,QAAQ,IAAI,eAAe;AAAA,MAAA,EACnC,YAAA;AAEF,aAAO,iCACH,WAAW,SAAS,IADjB;AAAA,QAEN;AAAA,MAAA;AAAA,IAEF,SAAS,KAAK;AACb,cAAQ,MAAM,GAAG;AACjB,YAAM;AAAA,IACP;AAAA,EACD;AAAA;","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
+{"version":3,"file":"twtxt-lib.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (\n\tpayload: string | Uint8Array,\n): string => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\nimport type { Twtxt } from \"./types.ts\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\"): Promise {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","exports","Buffer","SlowBuffer","byteLength","i","code","util","require$$0","v","require$$1","charmap","blake2b","define","this","t","e","n","r","s","u","a","M","m","f","l","$","y","g","D","o","d","c","h"],"mappings":"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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA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","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
diff --git a/dist-browser/twtxt-lib.min.js.map b/dist-browser/twtxt-lib.min.js.map
index e9a216c..f4f0f81 100644
--- a/dist-browser/twtxt-lib.min.js.map
+++ b/dist-browser/twtxt-lib.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"twtxt-lib.min.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (payload: string | Uint8Array) => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\") {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","i","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","value","c","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","b","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","obj","numberIsNaN","a","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","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","defineBigIntMethod","validateNumber","first","last","boundsError","lo","__pow","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","name","range","input","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","Blob","BlobOptions","Buffer$1","File","FileOptions","INSPECT_MAX_BYTES","TranscodeEncoding","atob","btoa","constants","isAscii","isUtf8","kMaxLength","kStringMaxLength","resolveObjectURL","transcode","ERROR_MSG_INPUT","normalizeInput","toHex","uint32ToHex","debugPrint","label","testSpeed","hashFn","N","M","startMs","genMs","hashHex","hashMs","ms","util","require$$0","ADD64AA","v","o0","o1","ADD64AC","b0","b1","B2B_GET32","B2B_G","ix","iy","x0","x1","y0","y1","xor0","xor1","BLAKE2B_IV32","SIGMA8","SIGMA82","blake2bCompress","ctx","parameterBlock","blake2bInit","outlen","key","salt","personal","blake2bUpdate","blake2bFinal","blake2b","blake2bHex","blake2b_1","B2S_GET32","B2S_G","ROTR32","BLAKE2S_IV","SIGMA","blake2sCompress","blake2sInit","keylen","blake2sUpdate","blake2sFinal","blake2s","blake2sHex","blake2s_1","b2b","b2s","require$$1","blakejs","charmap","mappings","rfc4648","crockford","base32hex","Decoder","options","shift","carry","char","symbol","Encoder","byte","base32Encode","payload","base32","getValueOrFirstEntry","dateRegex","formatRFC3339","date","pad","padYear","hashTwt","twt","created","t","module","this","r","o","f","h","l","$","u","g","D","p","S","_","w","O","k","dayjs","utc","parseTwtxt","twtxt","allLines","commentLines","contentLines","acc","originalLine","line","following","metadata","vals","field","nick","url","replyRegEx","twts","_a","content","createdDayjs","createdUTC","replyMatches","replyHash","replyNick","replyUrl","hash","loadAndParseTwtxtFile","__async","response","twtxtFile","lastModified","__spreadProps","__spreadValues","err"],"mappings":"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;AAGA,QAAMoL,IAAa,IAAI,YAAY;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACD,GAEKC,IAAQ,IAAI,WAAW;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACD,GAGKpC,IAAI,IAAI,YAAY,EAAE,GACtBtM,IAAI,IAAI,YAAY,EAAE;AAC5B,WAAS2O,EAAiBjB,GAAKjG,GAAM;AACnC,QAAIrJ,IAAI;AACR,SAAKA,IAAI,GAAGA,IAAI,GAAGA;AAEjB,MAAAkO,EAAElO,CAAC,IAAIsP,EAAI,EAAEtP,CAAC,GACdkO,EAAElO,IAAI,CAAC,IAAIqQ,EAAWrQ,CAAC;AAUzB,SAPAkO,EAAE,EAAE,KAAKoB,EAAI,GACbpB,EAAE,EAAE,KAAKoB,EAAI,IAAI,YACbjG,MAEF6E,EAAE,EAAE,IAAI,CAACA,EAAE,EAAE,IAGVlO,IAAI,GAAGA,IAAI,IAAIA;AAElB,MAAA4B,EAAE5B,CAAC,IAAIkQ,EAAUZ,EAAI,GAAG,IAAItP,CAAC;AAO/B,SAAKA,IAAI,GAAGA,IAAI,IAAIA;AAElB,MAAAmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC7DmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC7DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC9DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC9DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC9DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,CAAC,GAChEmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,CAAC,GAC/DmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,CAAC;AAIjE,SAAKA,IAAI,GAAGA,IAAI,GAAGA;AACjB,MAAAsP,EAAI,EAAEtP,CAAC,KAAKkO,EAAElO,CAAC,IAAIkO,EAAElO,IAAI,CAAC;AAAA,EAG9B;AAKA,WAASwQ,EAAaf,GAAQC,GAAK;AACjC,QAAI,EAAED,IAAS,KAAKA,KAAU;AAC5B,YAAM,IAAI,MAAM,+CAA+C;AAEjE,UAAMgB,IAASf,IAAMA,EAAI,SAAS;AAClC,QAAIA,KAAO,EAAEe,IAAS,KAAKA,KAAU;AACnC,YAAM,IAAI,MAAM,4CAA4C;AAG9D,UAAMnB,IAAM;AAAA,MACV,GAAG,IAAI,YAAYe,CAAU;AAAA;AAAA,MAC7B,GAAG,IAAI,WAAW,EAAE;AAAA;AAAA,MACpB,GAAG;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,MACH,QAAQZ;AAAA;AAAA,IACZ;AACE,WAAAH,EAAI,EAAE,CAAC,KAAK,WAAcmB,KAAU,IAAKhB,GAErCgB,IAAS,MACXC,EAAcpB,GAAKI,CAAG,GACtBJ,EAAI,IAAI,KAGHA;AAAA,EACT;AAIA,WAASoB,EAAepB,GAAKxE,GAAO;AAClC,aAAS9K,IAAI,GAAGA,IAAI8K,EAAM,QAAQ9K;AAChC,MAAIsP,EAAI,MAAM,OAEZA,EAAI,KAAKA,EAAI,GACbiB,EAAgBjB,GAAK,EAAK,GAC1BA,EAAI,IAAI,IAEVA,EAAI,EAAEA,EAAI,GAAG,IAAIxE,EAAM9K,CAAC;AAAA,EAE5B;AAIA,WAAS2Q,EAAcrB,GAAK;AAE1B,SADAA,EAAI,KAAKA,EAAI,GACNA,EAAI,IAAI;AAEb,MAAAA,EAAI,EAAEA,EAAI,GAAG,IAAI;AAEnB,IAAAiB,EAAgBjB,GAAK,EAAI;AAGzB,UAAM5G,IAAM,IAAI,WAAW4G,EAAI,MAAM;AACrC,aAAStP,IAAI,GAAGA,IAAIsP,EAAI,QAAQtP;AAC9B,MAAA0I,EAAI1I,CAAC,IAAKsP,EAAI,EAAEtP,KAAK,CAAC,KAAM,KAAKA,IAAI,KAAO;AAE9C,WAAO0I;AAAA,EACT;AAUA,WAASkI,EAAS9F,GAAO4E,GAAKD,GAAQ;AAEpC,IAAAA,IAASA,KAAU,IACnB3E,IAAQiD,EAAK,eAAejD,CAAK;AAGjC,UAAMwE,IAAMkB,EAAYf,GAAQC,CAAG;AACnC,WAAAgB,EAAcpB,GAAKxE,CAAK,GACjB6F,EAAarB,CAAG;AAAA,EACzB;AAUA,WAASuB,EAAY/F,GAAO4E,GAAKD,GAAQ;AACvC,UAAMxO,IAAS2P,EAAQ9F,GAAO4E,GAAKD,CAAM;AACzC,WAAO1B,EAAK,MAAM9M,CAAM;AAAA,EAC1B;AAEA,SAAA6P,KAAiB;AAAA,IACf,SAASF;AAAA,IACT,YAAYC;AAAA,IACZ,aAAaL;AAAA,IACb,eAAeE;AAAA,IACf,cAAcC;AAAA,EAChB;;;;;;AChWA,QAAMI,IAAM/C,GAAA,GACNgD,IAAMC,GAAA;AAEZ,SAAAC,KAAiB;AAAA,IACf,SAASH,EAAI;AAAA,IACb,YAAYA,EAAI;AAAA,IAChB,aAAaA,EAAI;AAAA,IACjB,eAAeA,EAAI;AAAA,IACnB,cAAcA,EAAI;AAAA,IAClB,SAASC,EAAI;AAAA,IACb,YAAYA,EAAI;AAAA,IAChB,aAAaA,EAAI;AAAA,IACjB,eAAeA,EAAI;AAAA,IACnB,cAAcA,EAAI;AAAA,EACpB;;;;;;ACdA;AASA,QAAIG,IAAU,SAAUxF,GAAUyF,GAAU;AAC1C,aAAAA,MAAaA,IAAW,KACxBzF,EAAS,MAAM,EAAE,EAAE,QAAQ,SAAUvJ,GAAG,GAAG;AACzC,QAAMA,KAAKgP,MAAWA,EAAShP,CAAC,IAAI;AAAA,MACxC,CAAG,GACMgP;AAAA,IACT,GAOIC,IAAU;AAAA,MACZ,UAAU;AAAA,MACV,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,MACP;AAAA;AAGA,IAAAA,EAAQ,UAAUF,EAAQE,EAAQ,UAAUA,EAAQ,OAAO;AAO3D,QAAIC,IAAY;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,MACP;AAAA;AAGA,IAAAA,EAAU,UAAUH,EAAQG,EAAU,UAAUA,EAAU,OAAO;AAOjE,QAAIC,IAAY;AAAA,MACd,UAAU;AAAA,MACV,SAAS,CAAA;AAAA;AAGX,IAAAA,EAAU,UAAUJ,EAAQI,EAAU,UAAUA,EAAU,OAAO;AAYjE,aAASC,EAASC,GAAS;AAKzB,UAJA,KAAK,MAAM,CAAA,GACX,KAAK,QAAQ,GACb,KAAK,QAAQ,GAETA,GAAS;AAEX,gBAAQA,EAAQ,MAAI;AAAA,UAClB,KAAK;AACH,iBAAK,UAAUnP,EAAQ,QAAQ;AAC/B;AAAA,UACF,KAAK;AACH,iBAAK,UAAUA,EAAQ,UAAU;AACjC;AAAA,UACF,KAAK;AACH,iBAAK,UAAUA,EAAQ,UAAU;AACjC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,cAAc;AAAA,QACtC;AAEI,QAAImP,EAAQ,YAAS,KAAK,UAAUA,EAAQ;AAAA,MAChD;AAAA,IACA;AAMA,IAAAD,EAAQ,UAAU,UAAUH,EAAQ,SASpCG,EAAQ,UAAU,QAAQ,SAAUvL,GAAK;AACvC,UAAIkL,IAAU,KAAK,SACf/N,IAAM,KAAK,KACXsO,IAAQ,KAAK,OACbC,IAAQ,KAAK;AAGjB,aAAA1L,EAAI,YAAW,EAAG,MAAM,EAAE,EAAE,QAAQ,SAAU2L,GAAM;AAGlD,YAAIA,KAAQ,KAGZ;AAAA,cAAIC,IAASV,EAAQS,CAAI,IAAI;AAU7B,UAAAF,KAAS,GACLA,IAAQ,IACVC,KAASE,KAAUH,IACVA,IAAQ,KACjBtO,EAAI,KAAKuO,IAASE,KAAU,CAACH,CAAM,GACnCA,KAAS,GACTC,IAASE,KAAUH,IAAS,QAE5BtO,EAAI,KAAKuO,IAAQE,CAAM,GACvBH,IAAQ,GACRC,IAAQ;AAAA;AAAA,MAEd,CAAG,GAGD,KAAK,QAAQD,GACb,KAAK,QAAQC,GAGN;AAAA,IACT,GASAH,EAAQ,UAAU,WAAW,SAAUvL,GAAK;AAC1C,aAAIA,KACF,KAAK,MAAMA,CAAG,GAEZ,KAAK,UAAU,KAAK,KAAK,UAAU,MACrC,KAAK,IAAI,KAAK,KAAK,KAAK,GACxB,KAAK,QAAQ,GACb,KAAK,QAAQ,IAER,KAAK;AAAA,IACd;AAYA,aAAS6L,EAASL,GAAS;AAKzB,UAJA,KAAK,MAAM,IACX,KAAK,QAAQ,GACb,KAAK,QAAQ,GAETA,GAAS;AAEX,gBAAQA,EAAQ,MAAI;AAAA,UAClB,KAAK;AACH,iBAAK,WAAWnP,EAAQ,QAAQ;AAChC;AAAA,UACF,KAAK;AACH,iBAAK,WAAWA,EAAQ,UAAU;AAClC;AAAA,UACF,KAAK;AACH,iBAAK,WAAWA,EAAQ,UAAU;AAClC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,cAAc;AAAA,QACtC;AAEI,QAAImP,EAAQ,WAAU,KAAK,WAAWA,EAAQ,WACrCA,EAAQ,OAAI,KAAK,WAAW,KAAK,SAAS,YAAW;AAAA,MAClE;AAAA,IACA;AAMA,IAAAK,EAAQ,UAAU,WAAWT,EAAQ,UASrCS,EAAQ,UAAU,QAAQ,SAAU1O,GAAK;AACvC,UAAIsO,IAAQ,KAAK,OACbC,IAAQ,KAAK,OACbE,GACAE,GACA/R;AAGJ,WAAKA,IAAI,GAAGA,IAAIoD,EAAI,QAAQpD;AAC1B,QAAA+R,IAAO3O,EAAIpD,CAAC,GAUZ6R,IAASF,IAASI,KAAQL,GAC1B,KAAK,OAAO,KAAK,SAASG,IAAS,EAAI,GAEnCH,IAAQ,MACVA,KAAS,GACTG,IAASE,KAAQL,GACjB,KAAK,OAAO,KAAK,SAASG,IAAS,EAAI,IAGzCH,IAAQ,IAAIA,GACZC,IAAQI,KAAQL,GAChBA,IAAQ,IAAIA;AAId,kBAAK,QAAQA,GACb,KAAK,QAAQC,GAGN;AAAA,IACT,GASAG,EAAQ,UAAU,WAAW,SAAU1O,GAAK;AAC1C,aAAIA,KACF,KAAK,MAAMA,CAAG,GAEZ,KAAK,UAAU,MACjB,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ,EAAI,GAC3C,KAAK,QAAQ,GACb,KAAK,QAAQ,IAER,KAAK;AAAA,IACd,GAUAd,EAAA,SAAiB,SAAUc,GAAKqO,GAAS;AACvC,aAAO,IAAIK,EAAQL,CAAO,EAAE,SAASrO,CAAG;AAAA,IAC1C,GAUAd,EAAA,SAAiB,SAAU2D,GAAKwL,GAAS;AACvC,aAAO,IAAID,EAAQC,CAAO,EAAE,SAASxL,CAAG;AAAA,IAC1C,GAGA3D,EAAA,UAAkBkP,GAClBlP,EAAA,UAAkBwP,GAClBxP,EAAA,UAAkB6O,GAClB7O,EAAA,YAAoBgP,GACpBhP,EAAA,UAAkB+O,GAClB/O,EAAA,YAAoBiP;AAAA;;;mCCrTPS,KAAe,CAACC,MACZ,IAAIC,GAAO,QAAQ,EAAE,MAAM,WAAW,EACvC,MAAMD,CAAO,EAAE,SAAA,GAGlBE,KAAuB,CAAChQ,MACpC,MAAM,QAAQA,CAAK,KAAKA,EAAM,SAASA,EAAM,CAAC,IAAIA;ACPnD,WAAW,SAASO;AAQpB,MAAM0P,KACL,qGAEKC,KAAgB,CAACC,MAAiB;AACvC,QAAMC,IAAM,CAAC3R,IAAuB,MAAM,GAAG,CAACA,IAAM,KAAK,IAAI,EAAE,GAAG,CAACA,CAAG,IAChE4R,IAAU,CAAC5R,IAAuB,MACvC,GAAG,CAACA,IAAM,MAAO,IAAI,EAAE,GAAG,CAACA,IAAM,MAAM,IAAI,EAAE,GAC5C,CAACA,IAAM,KAAK,IAAI,EACjB,GAAG,CAACA,CAAG;AAER,MAAIgB,IAAIwQ,GAAU,KAAKE,CAAI;AAG3B,EAAI1Q,MAAKA,KAAA,gBAAAA,EAAI,QAAO,WAEnBA,EAAE,CAAC,IAAI,QAEJA,MAAKA,KAAA,gBAAAA,EAAI,SAAQ,WACpBA,EAAE,EAAE,IAAI;AAGT,QAAML,IAAS,GAAGK,KAAA,gBAAAA,EAAI,EAAE,IAAIA,KAAA,gBAAAA,EAAI,GAAG,GAAG,QAAQ,eAAe,GAAG;AAEhE,SAAO;AAAA,IACN4Q,EAAQ5Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACd;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACV;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACVA,KAAA,gBAAAA,EAAI;AAAA,IACJ2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACV;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACV;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA;AAAA,IAEVL;AAAA,EAAA,EACC,KAAK,EAAE;AACV;AAEA,SAAwBkR,GAAQC,GAAkB;AACjD,QAAMC,IAAUN,GAAcK,EAAI,OAAO,GACnCT,IAAU,CAACS,EAAI,KAAKC,GAASD,EAAI,OAAO,EAAE,KAAK;AAAA,CAAI;AAEzD,SAAOV,GAAajC,GAAAA,QAAQkC,GAAS,QAAW,EAAE,CAAC,EACjD,YAAA,EACA,MAAM,EAAE;AACX;;;;ACxDA,KAAC,SAASW,GAAEjR,GAAE;AAAC,MAAqDkR,YAAelR,EAAC;AAAA,IAAkH,GAAEmR,KAAM,WAAU;AAAC;AAAa,UAAIF,IAAE,KAAIjR,IAAE,KAAIqE,IAAE,MAAK+M,IAAE,eAAc/S,IAAE,UAASkC,IAAE,UAAS,IAAE,QAAO6C,IAAE,OAAMiO,IAAE,QAAO5Q,IAAE,SAAQ6Q,IAAE,WAAUC,IAAE,QAAOjR,IAAE,QAAOkR,IAAE,gBAAeC,IAAE,8FAA6F,IAAE,uFAAsF3F,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASmF,GAAE;AAAC,YAAIjR,IAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEqE,IAAE4M,IAAE;AAAI,eAAM,MAAIA,KAAGjR,GAAGqE,IAAE,MAAI,EAAE,KAAGrE,EAAEqE,CAAC,KAAGrE,EAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAEC,IAAE,SAASgR,GAAEjR,GAAEqE,GAAE;AAAC,YAAI+M,IAAE,OAAOH,CAAC;AAAE,eAAM,CAACG,KAAGA,EAAE,UAAQpR,IAAEiR,IAAE,KAAG,MAAMjR,IAAE,IAAEoR,EAAE,MAAM,EAAE,KAAK/M,CAAC,IAAE4M;AAAA,MAAC,GAAE1E,IAAE,EAAC,GAAEtM,GAAE,GAAE,SAASgR,GAAE;AAAC,YAAIjR,IAAE,CAACiR,EAAE,UAAS,GAAG5M,IAAE,KAAK,IAAIrE,CAAC,GAAEoR,IAAE,KAAK,MAAM/M,IAAE,EAAE,GAAEhG,IAAEgG,IAAE;AAAG,gBAAOrE,KAAG,IAAE,MAAI,OAAKC,EAAEmR,GAAE,GAAE,GAAG,IAAE,MAAInR,EAAE5B,GAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAAS4S,EAAEjR,GAAEqE,GAAE;AAAC,YAAGrE,EAAE,KAAI,IAAGqE,EAAE,KAAI,EAAG,QAAM,CAAC4M,EAAE5M,GAAErE,CAAC;AAAE,YAAIoR,IAAE,MAAI/M,EAAE,SAAOrE,EAAE,KAAI,MAAKqE,EAAE,MAAK,IAAGrE,EAAE,MAAK,IAAI3B,IAAE2B,EAAE,QAAQ,IAAIoR,GAAE3Q,CAAC,GAAEF,IAAE8D,IAAEhG,IAAE,GAAEqT,IAAE1R,EAAE,MAAK,EAAG,IAAIoR,KAAG7Q,IAAE,KAAG,IAAGE,CAAC;AAAE,eAAM,EAAE,EAAE2Q,KAAG/M,IAAEhG,MAAIkC,IAAElC,IAAEqT,IAAEA,IAAErT,OAAK;AAAA,MAAE,GAAE,GAAE,SAAS4S,GAAE;AAAC,eAAOA,IAAE,IAAE,KAAK,KAAKA,CAAC,KAAG,IAAE,KAAK,MAAMA,CAAC;AAAA,MAAC,GAAE,GAAE,SAASA,GAAE;AAAC,eAAM,EAAC,GAAExQ,GAAE,GAAE8Q,GAAE,GAAEF,GAAE,GAAEjO,GAAE,GAAE9C,GAAE,GAAE,GAAE,GAAEC,GAAE,GAAElC,GAAE,IAAG+S,GAAE,GAAEE,EAAC,EAAEL,CAAC,KAAG,OAAOA,KAAG,EAAE,EAAE,YAAW,EAAG,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,GAAE;AAAC,eAAgBA,MAAT;AAAA,MAAU,EAAC,GAAEU,IAAE,MAAKC,IAAE;AAAG,MAAAA,EAAED,CAAC,IAAE7F;AAAE,UAAI+F,KAAE,kBAAiBC,IAAE,SAASb,GAAE;AAAC,eAAOA,aAAac,KAAG,EAAE,CAACd,KAAG,CAACA,EAAEY,EAAC;AAAA,MAAE,GAAEG,KAAE,SAASf,EAAEjR,GAAEqE,GAAE+M,GAAE;AAAC,YAAI/S;AAAE,YAAG,CAAC2B,EAAE,QAAO2R;AAAE,YAAa,OAAO3R,KAAjB,UAAmB;AAAC,cAAIO,IAAEP,EAAE;AAAc,UAAA4R,EAAErR,CAAC,MAAIlC,IAAEkC,IAAG8D,MAAIuN,EAAErR,CAAC,IAAE8D,GAAEhG,IAAEkC;AAAG,cAAImR,IAAE1R,EAAE,MAAM,GAAG;AAAE,cAAG,CAAC3B,KAAGqT,EAAE,SAAO,EAAE,QAAOT,EAAES,EAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAItO,IAAEpD,EAAE;AAAK,UAAA4R,EAAExO,CAAC,IAAEpD,GAAE3B,IAAE+E;AAAA,QAAC;AAAC,eAAM,CAACgO,KAAG/S,MAAIsT,IAAEtT,IAAGA,KAAG,CAAC+S,KAAGO;AAAA,MAAC,GAAEM,IAAE,SAAShB,GAAEjR,GAAE;AAAC,YAAG8R,EAAEb,CAAC,EAAE,QAAOA,EAAE,MAAK;AAAG,YAAI5M,IAAY,OAAOrE,KAAjB,WAAmBA,IAAE,CAAA;AAAG,eAAOqE,EAAE,OAAK4M,GAAE5M,EAAE,OAAK,WAAU,IAAI0N,EAAE1N,CAAC;AAAA,MAAC,GAAElC,IAAEoK;AAAE,MAAApK,EAAE,IAAE6P,IAAE7P,EAAE,IAAE2P,GAAE3P,EAAE,IAAE,SAAS8O,GAAEjR,GAAE;AAAC,eAAOiS,EAAEhB,GAAE,EAAC,QAAOjR,EAAE,IAAG,KAAIA,EAAE,IAAG,GAAEA,EAAE,IAAG,SAAQA,EAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAI+R,KAAE,WAAU;AAAC,iBAASjG,EAAEmF,GAAE;AAAC,eAAK,KAAGe,GAAEf,EAAE,QAAO,MAAK,EAAE,GAAE,KAAK,MAAMA,CAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,EAAE,KAAG,CAAA,GAAG,KAAKY,EAAC,IAAE;AAAA,QAAE;AAAC,YAAI5R,IAAE6L,EAAE;AAAU,eAAO7L,EAAE,QAAM,SAASgR,GAAE;AAAC,eAAK,MAAG,SAASA,GAAE;AAAC,gBAAIjR,IAAEiR,EAAE,MAAK5M,IAAE4M,EAAE;AAAI,gBAAUjR,MAAP,KAAS,QAAO,oBAAI,KAAK,GAAG;AAAE,gBAAGmC,EAAE,EAAEnC,CAAC,EAAE,QAAO,oBAAI;AAAK,gBAAGA,aAAa,KAAK,QAAO,IAAI,KAAKA,CAAC;AAAE,gBAAa,OAAOA,KAAjB,YAAoB,CAAC,MAAM,KAAKA,CAAC,GAAE;AAAC,kBAAIoR,IAAEpR,EAAE,MAAMyR,CAAC;AAAE,kBAAGL,GAAE;AAAC,oBAAI/S,IAAE+S,EAAE,CAAC,IAAE,KAAG,GAAE7Q,KAAG6Q,EAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAO/M,IAAE,IAAI,KAAK,KAAK,IAAI+M,EAAE,CAAC,GAAE/S,GAAE+S,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE7Q,CAAC,CAAC,IAAE,IAAI,KAAK6Q,EAAE,CAAC,GAAE/S,GAAE+S,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE7Q,CAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAKP,CAAC;AAAA,UAAC,GAAEiR,CAAC,GAAE,KAAK,KAAI;AAAA,QAAE,GAAEhR,EAAE,OAAK,WAAU;AAAC,cAAIgR,IAAE,KAAK;AAAG,eAAK,KAAGA,EAAE,YAAW,GAAG,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,WAAU,KAAK,KAAGA,EAAE,OAAM,GAAG,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,cAAa,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,MAAIA,EAAE,gBAAe;AAAA,QAAE,GAAEhR,EAAE,SAAO,WAAU;AAAC,iBAAOkC;AAAA,QAAC,GAAElC,EAAE,UAAQ,WAAU;AAAC,iBAAQ,KAAK,GAAG,SAAQ,MAAKuR;AAAA,QAAE,GAAEvR,EAAE,SAAO,SAASgR,GAAEjR,GAAE;AAAC,cAAIqE,IAAE4N,EAAEhB,CAAC;AAAE,iBAAO,KAAK,QAAQjR,CAAC,KAAGqE,KAAGA,KAAG,KAAK,MAAMrE,CAAC;AAAA,QAAC,GAAEC,EAAE,UAAQ,SAASgR,GAAEjR,GAAE;AAAC,iBAAOiS,EAAEhB,CAAC,IAAE,KAAK,QAAQjR,CAAC;AAAA,QAAC,GAAEC,EAAE,WAAS,SAASgR,GAAEjR,GAAE;AAAC,iBAAO,KAAK,MAAMA,CAAC,IAAEiS,EAAEhB,CAAC;AAAA,QAAC,GAAEhR,EAAE,KAAG,SAASgR,GAAEjR,GAAEqE,GAAE;AAAC,iBAAOlC,EAAE,EAAE8O,CAAC,IAAE,KAAKjR,CAAC,IAAE,KAAK,IAAIqE,GAAE4M,CAAC;AAAA,QAAC,GAAEhR,EAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAO,IAAG,GAAG;AAAA,QAAC,GAAEA,EAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG,QAAO;AAAA,QAAE,GAAEA,EAAE,UAAQ,SAASgR,GAAEjR,GAAE;AAAC,cAAIqE,IAAE,MAAK+M,IAAE,CAAC,CAACjP,EAAE,EAAEnC,CAAC,KAAGA,GAAEsR,IAAEnP,EAAE,EAAE8O,CAAC,GAAEO,IAAE,SAASP,IAAEjR,GAAE;AAAC,gBAAI3B,KAAE8D,EAAE,EAAEkC,EAAE,KAAG,KAAK,IAAIA,EAAE,IAAGrE,GAAEiR,EAAC,IAAE,IAAI,KAAK5M,EAAE,IAAGrE,GAAEiR,EAAC,GAAE5M,CAAC;AAAE,mBAAO+M,IAAE/S,KAAEA,GAAE,MAAM+E,CAAC;AAAA,UAAC,GAAEqO,IAAE,SAASR,IAAEjR,GAAE;AAAC,mBAAOmC,EAAE,EAAEkC,EAAE,SAAS4M,EAAC,EAAE,MAAM5M,EAAE,OAAO,GAAG,IAAG+M,IAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMpR,CAAC,CAAC,GAAEqE,CAAC;AAAA,UAAC,GAAEf,IAAE,KAAK,IAAGwI,IAAE,KAAK,IAAG7L,IAAE,KAAK,IAAGsM,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAO+E,GAAC;AAAA,YAAE,KAAKC;AAAE,qBAAOH,IAAEI,EAAE,GAAE,CAAC,IAAEA,EAAE,IAAG,EAAE;AAAA,YAAE,KAAK/Q;AAAE,qBAAO2Q,IAAEI,EAAE,GAAE1F,CAAC,IAAE0F,EAAE,GAAE1F,IAAE,CAAC;AAAA,YAAE,KAAKuF;AAAE,kBAAIM,KAAE,KAAK,QAAO,EAAG,aAAW,GAAEC,MAAGtO,IAAEqO,KAAErO,IAAE,IAAEA,KAAGqO;AAAE,qBAAOH,EAAEJ,IAAEnR,IAAE2R,KAAE3R,KAAG,IAAE2R,KAAG9F,CAAC;AAAA,YAAE,KAAK1I;AAAA,YAAE,KAAK9C;AAAE,qBAAOmR,EAAElF,KAAE,SAAQ,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOkF,EAAElF,KAAE,WAAU,CAAC;AAAA,YAAE,KAAKhM;AAAE,qBAAOkR,EAAElF,KAAE,WAAU,CAAC;AAAA,YAAE,KAAKlO;AAAE,qBAAOoT,EAAElF,KAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK;UAAO;AAAA,QAAC,GAAEtM,EAAE,QAAM,SAASgR,GAAE;AAAC,iBAAO,KAAK,QAAQA,GAAE,EAAE;AAAA,QAAC,GAAEhR,EAAE,OAAK,SAASgR,GAAEjR,GAAE;AAAC,cAAIqE,GAAEgN,IAAElP,EAAE,EAAE8O,CAAC,GAAEK,IAAE,SAAO,KAAK,KAAG,QAAM,KAAIE,KAAGnN,IAAE,CAAA,GAAGA,EAAEjB,CAAC,IAAEkO,IAAE,QAAOjN,EAAE/D,CAAC,IAAEgR,IAAE,QAAOjN,EAAE5D,CAAC,IAAE6Q,IAAE,SAAQjN,EAAEkN,CAAC,IAAED,IAAE,YAAWjN,EAAE,CAAC,IAAEiN,IAAE,SAAQjN,EAAE9D,CAAC,IAAE+Q,IAAE,WAAUjN,EAAEhG,CAAC,IAAEiT,IAAE,WAAUjN,EAAE+M,CAAC,IAAEE,IAAE,gBAAejN,GAAGgN,CAAC,GAAEI,IAAEJ,MAAIjO,IAAE,KAAK,MAAIpD,IAAE,KAAK,MAAIA;AAAE,cAAGqR,MAAI5Q,KAAG4Q,MAAIE,GAAE;AAAC,gBAAIjO,IAAE,KAAK,MAAK,EAAG,IAAIhD,GAAE,CAAC;AAAE,YAAAgD,EAAE,GAAGkO,CAAC,EAAEC,CAAC,GAAEnO,EAAE,KAAI,GAAG,KAAK,KAAGA,EAAE,IAAIhD,GAAE,KAAK,IAAI,KAAK,IAAGgD,EAAE,YAAW,CAAE,CAAC,EAAE;AAAA,UAAE,MAAM,CAAAkO,KAAG,KAAK,GAAGA,CAAC,EAAEC,CAAC;AAAE,iBAAO,KAAK,QAAO;AAAA,QAAI,GAAExR,EAAE,MAAI,SAASgR,GAAEjR,GAAE;AAAC,iBAAO,KAAK,QAAQ,KAAKiR,GAAEjR,CAAC;AAAA,QAAC,GAAEC,EAAE,MAAI,SAASgR,GAAE;AAAC,iBAAO,KAAK9O,EAAE,EAAE8O,CAAC,CAAC,EAAC;AAAA,QAAE,GAAEhR,EAAE,MAAI,SAASmR,GAAEE,GAAE;AAAC,cAAIhR,GAAEkR,IAAE;AAAK,UAAAJ,IAAE,OAAOA,CAAC;AAAE,cAAIK,IAAEtP,EAAE,EAAEmP,CAAC,GAAEhO,IAAE,SAAS2N,GAAE;AAAC,gBAAIjR,IAAEiS,EAAET,CAAC;AAAE,mBAAOrP,EAAE,EAAEnC,EAAE,KAAKA,EAAE,SAAO,KAAK,MAAMiR,IAAEG,CAAC,CAAC,GAAEI,CAAC;AAAA,UAAC;AAAE,cAAGC,MAAIhR,EAAE,QAAO,KAAK,IAAIA,GAAE,KAAK,KAAG2Q,CAAC;AAAE,cAAGK,MAAIF,EAAE,QAAO,KAAK,IAAIA,GAAE,KAAK,KAAGH,CAAC;AAAE,cAAGK,MAAIrO,EAAE,QAAOE,EAAE,CAAC;AAAE,cAAGmO,MAAIJ,EAAE,QAAO/N,EAAE,CAAC;AAAE,cAAIwI,KAAGxL,IAAE,IAAGA,EAAEC,CAAC,IAAEP,GAAEM,EAAE,CAAC,IAAE+D,GAAE/D,EAAEjC,CAAC,IAAE4S,GAAE3Q,GAAGmR,CAAC,KAAG,GAAExR,IAAE,KAAK,GAAG,YAAUmR,IAAEtF;AAAE,iBAAO3J,EAAE,EAAElC,GAAE,IAAI;AAAA,QAAC,GAAEA,EAAE,WAAS,SAASgR,GAAEjR,GAAE;AAAC,iBAAO,KAAK,IAAI,KAAGiR,GAAEjR,CAAC;AAAA,QAAC,GAAEC,EAAE,SAAO,SAASgR,GAAE;AAAC,cAAIjR,IAAE,MAAKqE,IAAE,KAAK,QAAO;AAAG,cAAG,CAAC,KAAK,UAAU,QAAOA,EAAE,eAAamN;AAAE,cAAIJ,IAAEH,KAAG,wBAAuB5S,IAAE8D,EAAE,EAAE,IAAI,GAAE5B,IAAE,KAAK,IAAGmR,IAAE,KAAK,IAAGtO,IAAE,KAAK,IAAGiO,IAAEhN,EAAE,UAAS5D,IAAE4D,EAAE,QAAOiN,KAAEjN,EAAE,UAASkN,KAAE,SAASN,GAAE5M,IAAEhG,IAAEkC,IAAE;AAAC,mBAAO0Q,MAAIA,EAAE5M,EAAC,KAAG4M,EAAEjR,GAAEoR,CAAC,MAAI/S,GAAEgG,EAAC,EAAE,MAAM,GAAE9D,EAAC;AAAA,UAAC,GAAED,KAAE,SAAS2Q,GAAE;AAAC,mBAAO9O,EAAE,EAAE5B,IAAE,MAAI,IAAG0Q,GAAE,GAAG;AAAA,UAAC,GAAEQ,KAAEH,MAAG,SAASL,GAAEjR,IAAEqE,IAAE;AAAC,gBAAI+M,KAAEH,IAAE,KAAG,OAAK;AAAK,mBAAO5M,KAAE+M,GAAE,YAAW,IAAGA;AAAA,UAAC;AAAE,iBAAOA,EAAE,QAAQ,IAAG,SAASH,GAAEG,IAAE;AAAC,mBAAOA,OAAG,SAASH,IAAE;AAAC,sBAAOA,IAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,OAAOjR,EAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAOmC,EAAE,EAAEnC,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOoD,IAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOjB,EAAE,EAAEiB,IAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOmO,GAAElN,EAAE,aAAYjB,GAAE3C,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAO8Q,GAAE9Q,GAAE2C,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOpD,EAAE;AAAA,gBAAG,KAAI;AAAK,yBAAOmC,EAAE,EAAEnC,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOuR,GAAElN,EAAE,aAAYrE,EAAE,IAAGqR,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOE,GAAElN,EAAE,eAAcrE,EAAE,IAAGqR,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,EAAErR,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOO,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO4B,EAAE,EAAE5B,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOD,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOmR,GAAElR,GAAEmR,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOD,GAAElR,GAAEmR,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOvP,EAAE,EAAEuP,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAO1R,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOmC,EAAE,EAAEnC,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOmC,EAAE,EAAEnC,EAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO3B;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,GAAE4S,CAAC,KAAG5S,EAAE,QAAQ,KAAI,EAAE;AAAA,UAAC;QAAG,GAAE4B,EAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAiB,IAAG,EAAE;AAAA,QAAC,GAAEA,EAAE,OAAK,SAASmR,GAAE9Q,GAAEkR,GAAE;AAAC,cAAIC,GAAEnO,IAAE,MAAKwI,IAAE3J,EAAE,EAAE7B,CAAC,GAAEL,IAAEgS,EAAEb,CAAC,GAAE7E,KAAGtM,EAAE,cAAY,KAAK,UAAS,KAAID,GAAE2R,IAAE,OAAK1R,GAAE2R,IAAE,WAAU;AAAC,mBAAOzP,EAAE,EAAEmB,GAAErD,CAAC;AAAA,UAAC;AAAE,kBAAO6L,GAAC;AAAA,YAAE,KAAKyF;AAAE,cAAAE,IAAEG,EAAC,IAAG;AAAG;AAAA,YAAM,KAAKnR;AAAE,cAAAgR,IAAEG,EAAC;AAAG;AAAA,YAAM,KAAKN;AAAE,cAAAG,IAAEG,EAAC,IAAG;AAAE;AAAA,YAAM,KAAKP;AAAE,cAAAI,KAAGE,IAAEpF,KAAG;AAAO;AAAA,YAAM,KAAKnJ;AAAE,cAAAqO,KAAGE,IAAEpF,KAAG;AAAM;AAAA,YAAM,KAAK;AAAE,cAAAkF,IAAEE,IAAEtN;AAAE;AAAA,YAAM,KAAK9D;AAAE,cAAAkR,IAAEE,IAAE3R;AAAE;AAAA,YAAM,KAAK3B;AAAE,cAAAoT,IAAEE,IAAEV;AAAE;AAAA,YAAM;AAAQ,cAAAQ,IAAEE;AAAA,UAAC;AAAC,iBAAOH,IAAEC,IAAEtP,EAAE,EAAEsP,CAAC;AAAA,QAAC,GAAExR,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAMQ,CAAC,EAAE;AAAA,QAAE,GAAER,EAAE,UAAQ,WAAU;AAAC,iBAAO2R,EAAE,KAAK,EAAE;AAAA,QAAC,GAAE3R,EAAE,SAAO,SAASgR,GAAEjR,GAAE;AAAC,cAAG,CAACiR,EAAE,QAAO,KAAK;AAAG,cAAI5M,IAAE,KAAK,MAAK,GAAG+M,IAAEY,GAAEf,GAAEjR,GAAE,EAAE;AAAE,iBAAOoR,MAAI/M,EAAE,KAAG+M,IAAG/M;AAAA,QAAC,GAAEpE,EAAE,QAAM,WAAU;AAAC,iBAAOkC,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAElC,EAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAO,CAAE;AAAA,QAAC,GAAEA,EAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAO,IAAG,KAAK,YAAW,IAAG;AAAA,QAAI,GAAEA,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAEA,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAE6L;AAAA,MAAC,MAAIoG,KAAEH,EAAE;AAAU,aAAOE,EAAE,YAAUC,IAAE,CAAC,CAAC,OAAMd,CAAC,GAAE,CAAC,MAAK/S,CAAC,GAAE,CAAC,MAAKkC,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK6C,CAAC,GAAE,CAAC,MAAK3C,CAAC,GAAE,CAAC,MAAK8Q,CAAC,GAAE,CAAC,MAAKjR,CAAC,CAAC,EAAE,SAAS,SAAS2Q,GAAE;AAAC,QAAAiB,GAAEjB,EAAE,CAAC,CAAC,IAAE,SAASjR,GAAE;AAAC,iBAAO,KAAK,GAAGA,GAAEiR,EAAE,CAAC,GAAEA,EAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,EAAC,GAAGgB,EAAE,SAAO,SAAShB,GAAEjR,GAAE;AAAC,eAAOiR,EAAE,OAAKA,EAAEjR,GAAE+R,GAAEE,CAAC,GAAEhB,EAAE,KAAG,KAAIgB;AAAA,MAAC,GAAEA,EAAE,SAAOD,IAAEC,EAAE,UAAQH,GAAEG,EAAE,OAAK,SAAShB,GAAE;AAAC,eAAOgB,EAAE,MAAIhB,CAAC;AAAA,MAAC,GAAEgB,EAAE,KAAGL,EAAED,CAAC,GAAEM,EAAE,KAAGL,GAAEK,EAAE,IAAE,IAAGA;AAAA,IAAC,EAAC;AAAA;;;;;;;ACAr/N,KAAC,SAAShB,GAAE5S,GAAE;AAAC,MAAqD6S,EAAA,UAAe7S,EAAC;AAAA,IAA6H,GAAE8S,KAAM,WAAU;AAAC;AAAa,UAAIF,IAAE,UAAS5S,IAAE,wBAAuB2B,IAAE;AAAe,aAAO,SAASO,GAAE+Q,GAAEjN,GAAE;AAAC,YAAI,IAAEiN,EAAE;AAAU,QAAAjN,EAAE,MAAI,SAAS4M,GAAE;AAAC,cAAI5S,IAAE,EAAC,MAAK4S,GAAE,KAAI,IAAG,MAAK,UAAS;AAAE,iBAAO,IAAIK,EAAEjT,CAAC;AAAA,QAAC,GAAE,EAAE,MAAI,SAASA,GAAE;AAAC,cAAI2B,IAAEqE,EAAE,KAAK,UAAS,EAAC,QAAO,KAAK,IAAG,KAAI,GAAE,CAAC;AAAE,iBAAOhG,IAAE2B,EAAE,IAAI,KAAK,UAAS,GAAGiR,CAAC,IAAEjR;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAOqE,EAAE,KAAK,OAAM,GAAG,EAAC,QAAO,KAAK,IAAG,KAAI,GAAE,CAAC;AAAA,QAAC;AAAE,YAAI+M,IAAE,EAAE;AAAM,UAAE,QAAM,SAASH,GAAE;AAAC,UAAAA,EAAE,QAAM,KAAK,KAAG,KAAI,KAAK,OAAM,EAAG,EAAEA,EAAE,OAAO,MAAI,KAAK,UAAQA,EAAE,UAASG,EAAE,KAAK,MAAKH,CAAC;AAAA,QAAC;AAAE,YAAII,IAAE,EAAE;AAAK,UAAE,OAAK,WAAU;AAAC,cAAG,KAAK,IAAG;AAAC,gBAAIJ,IAAE,KAAK;AAAG,iBAAK,KAAGA,EAAE,eAAc,GAAG,KAAK,KAAGA,EAAE,YAAW,GAAG,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,KAAGA,EAAE,UAAS,GAAG,KAAK,KAAGA,EAAE,YAAW,GAAG,KAAK,KAAGA,EAAE,cAAa,GAAG,KAAK,KAAGA,EAAE,cAAa,GAAG,KAAK,MAAIA,EAAE,mBAAkB;AAAA,UAAE,MAAM,CAAAI,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAIjO,IAAE,EAAE;AAAU,UAAE,YAAU,SAAS7C,GAAE+Q,GAAE;AAAC,cAAIjN,IAAE,KAAK,OAAM,EAAG;AAAE,cAAGA,EAAE9D,CAAC,EAAE,QAAO,KAAK,KAAG,IAAE8D,EAAE,KAAK,OAAO,IAAEjB,EAAE,KAAK,IAAI,IAAE,KAAK;AAAQ,cAAa,OAAO7C,KAAjB,aAAqBA,KAAE,SAAS0Q,GAAE;AAAC,YAASA,MAAT,WAAaA,IAAE;AAAI,gBAAI1Q,IAAE0Q,EAAE,MAAM5S,CAAC;AAAE,gBAAG,CAACkC,EAAE,QAAO;AAAK,gBAAI+Q,MAAG,KAAG/Q,EAAE,CAAC,GAAG,MAAMP,CAAC,KAAG,CAAC,KAAI,GAAE,CAAC,GAAEqE,IAAEiN,GAAE,CAAC,GAAEI,KAAE,KAAG,CAACJ,GAAE,CAAC,IAAG,CAACA,GAAE,CAAC;AAAE,mBAAWI,OAAJ,IAAM,IAAQrN,MAAN,MAAQqN,KAAE,CAACA;AAAA,UAAC,GAAEnR,CAAC,GAASA,MAAP,MAAU,QAAO;AAAK,cAAImR,IAAE,KAAK,IAAInR,CAAC,KAAG,KAAG,KAAGA,IAAEA;AAAE,cAAOmR,MAAJ,EAAM,QAAO,KAAK,IAAIJ,CAAC;AAAE,cAAIF,IAAE,KAAK,MAAK;AAAG,cAAGE,EAAE,QAAOF,EAAE,UAAQM,GAAEN,EAAE,KAAG,IAAGA;AAAE,cAAIC,IAAE,KAAK,KAAG,KAAK,OAAM,EAAG,kBAAiB,IAAG,KAAG,KAAK,UAAS;AAAG,kBAAOD,IAAE,KAAK,MAAK,EAAG,IAAIM,IAAEL,GAAEJ,CAAC,GAAG,UAAQS,GAAEN,EAAE,GAAG,eAAaC,GAAED;AAAA,QAAC;AAAE,YAAIG,IAAE,EAAE;AAAO,UAAE,SAAO,SAASN,GAAE;AAAC,cAAI5S,IAAE4S,MAAI,KAAK,KAAG,2BAAyB;AAAI,iBAAOM,EAAE,KAAK,MAAKlT,CAAC;AAAA,QAAC,GAAE,EAAE,UAAQ,WAAU;AAAC,cAAI4S,IAAE,KAAK,OAAM,EAAG,EAAE,KAAK,OAAO,IAAE,IAAE,KAAK,WAAS,KAAK,GAAG,gBAAc,KAAK,GAAG,kBAAiB;AAAI,iBAAO,KAAK,GAAG,QAAO,IAAG,MAAIA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAM,CAAC,CAAC,KAAK;AAAA,QAAE,GAAE,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG;QAAa,GAAE,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG,YAAW;AAAA,QAAE;AAAE,YAAIO,IAAE,EAAE;AAAO,UAAE,SAAO,SAASP,GAAE;AAAC,iBAAYA,MAAN,OAAS,KAAK,UAAQ5M,EAAE,KAAK,OAAO,yBAAyB,CAAC,EAAE,OAAM,IAAGmN,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI/Q,IAAE,EAAE;AAAK,UAAE,OAAK,SAASwQ,GAAE5S,GAAE2B,GAAE;AAAC,cAAGiR,KAAG,KAAK,OAAKA,EAAE,GAAG,QAAOxQ,EAAE,KAAK,MAAKwQ,GAAE5S,GAAE2B,CAAC;AAAE,cAAIO,IAAE,KAAK,MAAK,GAAG+Q,IAAEjN,EAAE4M,CAAC,EAAE,MAAK;AAAG,iBAAOxQ,EAAE,KAAKF,GAAE+Q,GAAEjT,GAAE2B,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAC;AAAA;;;;ACQltEmS,GAAM,OAAOC,EAAG;AAMhB,SAAwBC,GAAWC,GAAe;AACjD,QAAMC,IAAWD,EAAM,MAAM;AAAA,CAAI,GAE3B,EAAE,cAAAE,IAAe,CAAA,GAAI,cAAAC,IAAe,CAAA,EAAC,IAAMF,EAAS;AAAA,IACzD,CACCG,GAIAC,MACI;AACJ,YAAMC,IAAOD,EAAa,KAAA;AAC1B,aAAIC,MAAS,OAETA,EAAK,WAAW,GAAG,IAAGF,EAAI,aAAa,KAAKE,CAAI,IAC/CF,EAAI,aAAa,KAAKE,CAAI,IACxBF;AAAA,IACR;AAAA,IACA;AAAA,MACC,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,IAAC;AAAA,EAChB,GAGK,EAAE,WAAAG,IAAY,CAAA,GAAI,UAAAC,IAAW,CAAA,EAAC,IAAMN,EACxC,OAAO,CAACI,MAASA,EAAK,SAAS,GAAG,CAAC,EACnC;AAAA,IACA,CACCF,GAIAE,MACI;AACJ,YAAM,CAAC7E,GAAK,GAAGgF,CAAI,IAAIH,EAErB,UAAU,CAAC,EACX,MAAM,GAAG,EACT,IAAI,CAACI,MAAUA,EAAM,MAAM,GACvBlO,IAAMiO,EAAK,KAAK,GAAG;AACzB,UAAIhF,MAAQ,UAAU;AACrB,cAAM,CAACkF,GAAMC,CAAG,IAAIpO,EAAI,KAAA,EAAO,MAAM,KAAK;AAC1C,QAAA4N,EAAI,UAAU,KAAK,EAAE,MAAAO,GAAM,KAAAC,GAAK;AAAA,MACjC;AACC,QAAIR,EAAI,SAAS3E,CAAG,IACd,MAAM,QAAQ2E,EAAI,SAAS3E,CAAG,CAAC,IAE/B2E,EAAI,SAAS3E,CAAG,EAAE,KAAKjJ,CAAG,IAD9B4N,EAAI,SAAS3E,CAAG,IAAI,CAAC2E,EAAI,SAAS3E,CAAG,GAAGjJ,CAAG,IAEtC4N,EAAI,SAAS3E,CAAG,IAAIjJ;AAE5B,aAAO4N;AAAA,IACR;AAAA,IACA;AAAA,MACC,WAAW,CAAA;AAAA,MACX,UAAU,CAAA;AAAA,IAAC;AAAA,EACZ,GAGIS,IAAa,sCAEbC,IAAOX,EACX,IAAI,CAACG,MAAS;AV3EjB,QAAAS;AU4EG,UAAM,CAACrC,GAASsC,CAAO,IAAIV,EACzB,MAAM,IAAI,EACV,IAAI,CAAC9N,MAAQA,EAAI,MAAM;AAEzB,QAAI,OAAOwO,KAAY;AACtB,YAAM,IAAI,MAAM,yBAAyBV,CAAI,EAAE;AAEhD,UAAMW,IAAepB,GAAM,IAAInB,CAAO;AACtC,QAAI,CAACuC,EAAa,QAAA;AACjB,YAAM,IAAI,MAAM,oBAAoBX,CAAI,EAAE;AAE3C,UAAMY,IAAaD,EAAa,YAAA,GAE1BE,IAAeN,EAAW,KAAKG,CAAO;AAC5C,QAAII,GAAWC,GAAWC;AAE1B,IAAIH,KAAA,QAAAA,EAAc,WACjBC,IAAYD,KAAA,gBAAAA,EAAe,IAC3BE,IAAYF,KAAA,gBAAAA,EAAe,IAC3BG,IAAWH,KAAA,gBAAAA,EAAe;AAG3B,UAAMI,IAAO/C,GAAQ;AAAA,MACpB,SAAAwC;AAAA,MACA,SAAAtC;AAAA,MACA,YAAAwC;AAAA,MACA,KAAKhD,IAAqB6C,IAAAP,KAAA,gBAAAA,EAAU,QAAV,OAAAO,IAAiB,EAAE;AAAA,IAAA,CAC7C;AAED,WAAO;AAAA,MACN,SAAAC;AAAA,MACA,SAAAtC;AAAA,MACA,YAAAwC;AAAA,MACA,MAAAK;AAAA,MACA,WAAAH;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAEF,CAAC,EACA,KAAK,CAACxQ,GAAGjB,MAAMgQ,GAAM/O,EAAE,OAAO,EAAE,KAAK+O,GAAMhQ,EAAE,OAAO,CAAC,CAAC;AAExD,SAAO;AAAA,IACN,WAAA0Q;AAAA,IACA,UAAAC;AAAA,IACA,MAAAM;AAAA,EAAA;AAEF;ACtHA,SAA8BU,GAAsBZ,IAAM,IAAI;AAAA,SAAAa,GAAA;AAC7D,QAAI,CAACb,EAAK,OAAM,IAAI,MAAM,iBAAiB;AAE3C,QAAI;AACH,YAAMc,IAAW,MAAM,MAAMd,CAAG,GAC1Be,IAAY,MAAMD,EAAS,KAAA,GAC3BE,IAAe/B;AAAA,QACpB6B,EAAS,QAAQ,IAAI,eAAe;AAAA,MAAA,EACnC,YAAA;AAEF,aAAOG,GAAAC,GAAA,IACH/B,GAAW4B,CAAS,IADjB;AAAA,QAEN,cAAAC;AAAA,MAAA;AAAA,IAEF,SAASG,GAAK;AACb,oBAAQ,MAAMA,CAAG,GACXA;AAAA,IACP;AAAA,EACD;AAAA;","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
+{"version":3,"file":"twtxt-lib.min.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (\n\tpayload: string | Uint8Array,\n): string => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\nimport type { Twtxt } from \"./types.ts\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\"): Promise {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","i","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","value","c","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","b","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","obj","numberIsNaN","a","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","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","defineBigIntMethod","validateNumber","first","last","boundsError","lo","__pow","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","name","range","input","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","Blob","BlobOptions","Buffer$1","File","FileOptions","INSPECT_MAX_BYTES","TranscodeEncoding","atob","btoa","constants","isAscii","isUtf8","kMaxLength","kStringMaxLength","resolveObjectURL","transcode","ERROR_MSG_INPUT","normalizeInput","toHex","uint32ToHex","debugPrint","label","testSpeed","hashFn","N","M","startMs","genMs","hashHex","hashMs","ms","util","require$$0","ADD64AA","v","o0","o1","ADD64AC","b0","b1","B2B_GET32","B2B_G","ix","iy","x0","x1","y0","y1","xor0","xor1","BLAKE2B_IV32","SIGMA8","SIGMA82","blake2bCompress","ctx","parameterBlock","blake2bInit","outlen","key","salt","personal","blake2bUpdate","blake2bFinal","blake2b","blake2bHex","blake2b_1","B2S_GET32","B2S_G","ROTR32","BLAKE2S_IV","SIGMA","blake2sCompress","blake2sInit","keylen","blake2sUpdate","blake2sFinal","blake2s","blake2sHex","blake2s_1","b2b","b2s","require$$1","blakejs","charmap","mappings","rfc4648","crockford","base32hex","Decoder","options","shift","carry","char","symbol","Encoder","byte","base32Encode","payload","base32","getValueOrFirstEntry","dateRegex","formatRFC3339","date","pad","padYear","hashTwt","twt","created","t","module","this","r","o","f","h","l","$","u","g","D","p","S","_","w","O","k","dayjs","utc","parseTwtxt","twtxt","allLines","commentLines","contentLines","acc","originalLine","line","following","metadata","vals","field","nick","url","replyRegEx","twts","_a","content","createdDayjs","createdUTC","replyMatches","replyHash","replyNick","replyUrl","hash","loadAndParseTwtxtFile","__async","response","twtxtFile","lastModified","__spreadProps","__spreadValues","err"],"mappings":"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;AAGA,QAAMoL,IAAa,IAAI,YAAY;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACD,GAEKC,IAAQ,IAAI,WAAW;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACD,GAGKpC,IAAI,IAAI,YAAY,EAAE,GACtBtM,IAAI,IAAI,YAAY,EAAE;AAC5B,WAAS2O,EAAiBjB,GAAKjG,GAAM;AACnC,QAAIrJ,IAAI;AACR,SAAKA,IAAI,GAAGA,IAAI,GAAGA;AAEjB,MAAAkO,EAAElO,CAAC,IAAIsP,EAAI,EAAEtP,CAAC,GACdkO,EAAElO,IAAI,CAAC,IAAIqQ,EAAWrQ,CAAC;AAUzB,SAPAkO,EAAE,EAAE,KAAKoB,EAAI,GACbpB,EAAE,EAAE,KAAKoB,EAAI,IAAI,YACbjG,MAEF6E,EAAE,EAAE,IAAI,CAACA,EAAE,EAAE,IAGVlO,IAAI,GAAGA,IAAI,IAAIA;AAElB,MAAA4B,EAAE5B,CAAC,IAAIkQ,EAAUZ,EAAI,GAAG,IAAItP,CAAC;AAO/B,SAAKA,IAAI,GAAGA,IAAI,IAAIA;AAElB,MAAAmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC7DmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC7DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC9DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC9DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,CAAC,CAAC,CAAC,GAC9DmQ,EAAM,GAAG,GAAG,IAAI,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,CAAC,GAChEmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,CAAC,GAC/DmQ,EAAM,GAAG,GAAG,GAAG,IAAIvO,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,GAAG4B,EAAE0O,EAAMtQ,IAAI,KAAK,EAAE,CAAC,CAAC;AAIjE,SAAKA,IAAI,GAAGA,IAAI,GAAGA;AACjB,MAAAsP,EAAI,EAAEtP,CAAC,KAAKkO,EAAElO,CAAC,IAAIkO,EAAElO,IAAI,CAAC;AAAA,EAG9B;AAKA,WAASwQ,EAAaf,GAAQC,GAAK;AACjC,QAAI,EAAED,IAAS,KAAKA,KAAU;AAC5B,YAAM,IAAI,MAAM,+CAA+C;AAEjE,UAAMgB,IAASf,IAAMA,EAAI,SAAS;AAClC,QAAIA,KAAO,EAAEe,IAAS,KAAKA,KAAU;AACnC,YAAM,IAAI,MAAM,4CAA4C;AAG9D,UAAMnB,IAAM;AAAA,MACV,GAAG,IAAI,YAAYe,CAAU;AAAA;AAAA,MAC7B,GAAG,IAAI,WAAW,EAAE;AAAA;AAAA,MACpB,GAAG;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,MACH,QAAQZ;AAAA;AAAA,IACZ;AACE,WAAAH,EAAI,EAAE,CAAC,KAAK,WAAcmB,KAAU,IAAKhB,GAErCgB,IAAS,MACXC,EAAcpB,GAAKI,CAAG,GACtBJ,EAAI,IAAI,KAGHA;AAAA,EACT;AAIA,WAASoB,EAAepB,GAAKxE,GAAO;AAClC,aAAS9K,IAAI,GAAGA,IAAI8K,EAAM,QAAQ9K;AAChC,MAAIsP,EAAI,MAAM,OAEZA,EAAI,KAAKA,EAAI,GACbiB,EAAgBjB,GAAK,EAAK,GAC1BA,EAAI,IAAI,IAEVA,EAAI,EAAEA,EAAI,GAAG,IAAIxE,EAAM9K,CAAC;AAAA,EAE5B;AAIA,WAAS2Q,EAAcrB,GAAK;AAE1B,SADAA,EAAI,KAAKA,EAAI,GACNA,EAAI,IAAI;AAEb,MAAAA,EAAI,EAAEA,EAAI,GAAG,IAAI;AAEnB,IAAAiB,EAAgBjB,GAAK,EAAI;AAGzB,UAAM5G,IAAM,IAAI,WAAW4G,EAAI,MAAM;AACrC,aAAStP,IAAI,GAAGA,IAAIsP,EAAI,QAAQtP;AAC9B,MAAA0I,EAAI1I,CAAC,IAAKsP,EAAI,EAAEtP,KAAK,CAAC,KAAM,KAAKA,IAAI,KAAO;AAE9C,WAAO0I;AAAA,EACT;AAUA,WAASkI,EAAS9F,GAAO4E,GAAKD,GAAQ;AAEpC,IAAAA,IAASA,KAAU,IACnB3E,IAAQiD,EAAK,eAAejD,CAAK;AAGjC,UAAMwE,IAAMkB,EAAYf,GAAQC,CAAG;AACnC,WAAAgB,EAAcpB,GAAKxE,CAAK,GACjB6F,EAAarB,CAAG;AAAA,EACzB;AAUA,WAASuB,EAAY/F,GAAO4E,GAAKD,GAAQ;AACvC,UAAMxO,IAAS2P,EAAQ9F,GAAO4E,GAAKD,CAAM;AACzC,WAAO1B,EAAK,MAAM9M,CAAM;AAAA,EAC1B;AAEA,SAAA6P,KAAiB;AAAA,IACf,SAASF;AAAA,IACT,YAAYC;AAAA,IACZ,aAAaL;AAAA,IACb,eAAeE;AAAA,IACf,cAAcC;AAAA,EAChB;;;;;;AChWA,QAAMI,IAAM/C,GAAA,GACNgD,IAAMC,GAAA;AAEZ,SAAAC,KAAiB;AAAA,IACf,SAASH,EAAI;AAAA,IACb,YAAYA,EAAI;AAAA,IAChB,aAAaA,EAAI;AAAA,IACjB,eAAeA,EAAI;AAAA,IACnB,cAAcA,EAAI;AAAA,IAClB,SAASC,EAAI;AAAA,IACb,YAAYA,EAAI;AAAA,IAChB,aAAaA,EAAI;AAAA,IACjB,eAAeA,EAAI;AAAA,IACnB,cAAcA,EAAI;AAAA,EACpB;;;;;;ACdA;AASA,QAAIG,IAAU,SAAUxF,GAAUyF,GAAU;AAC1C,aAAAA,MAAaA,IAAW,KACxBzF,EAAS,MAAM,EAAE,EAAE,QAAQ,SAAUvJ,GAAG,GAAG;AACzC,QAAMA,KAAKgP,MAAWA,EAAShP,CAAC,IAAI;AAAA,MACxC,CAAG,GACMgP;AAAA,IACT,GAOIC,IAAU;AAAA,MACZ,UAAU;AAAA,MACV,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,MACP;AAAA;AAGA,IAAAA,EAAQ,UAAUF,EAAQE,EAAQ,UAAUA,EAAQ,OAAO;AAO3D,QAAIC,IAAY;AAAA,MACd,UAAU;AAAA,MACV,SAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,MACP;AAAA;AAGA,IAAAA,EAAU,UAAUH,EAAQG,EAAU,UAAUA,EAAU,OAAO;AAOjE,QAAIC,IAAY;AAAA,MACd,UAAU;AAAA,MACV,SAAS,CAAA;AAAA;AAGX,IAAAA,EAAU,UAAUJ,EAAQI,EAAU,UAAUA,EAAU,OAAO;AAYjE,aAASC,EAASC,GAAS;AAKzB,UAJA,KAAK,MAAM,CAAA,GACX,KAAK,QAAQ,GACb,KAAK,QAAQ,GAETA,GAAS;AAEX,gBAAQA,EAAQ,MAAI;AAAA,UAClB,KAAK;AACH,iBAAK,UAAUnP,EAAQ,QAAQ;AAC/B;AAAA,UACF,KAAK;AACH,iBAAK,UAAUA,EAAQ,UAAU;AACjC;AAAA,UACF,KAAK;AACH,iBAAK,UAAUA,EAAQ,UAAU;AACjC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,cAAc;AAAA,QACtC;AAEI,QAAImP,EAAQ,YAAS,KAAK,UAAUA,EAAQ;AAAA,MAChD;AAAA,IACA;AAMA,IAAAD,EAAQ,UAAU,UAAUH,EAAQ,SASpCG,EAAQ,UAAU,QAAQ,SAAUvL,GAAK;AACvC,UAAIkL,IAAU,KAAK,SACf/N,IAAM,KAAK,KACXsO,IAAQ,KAAK,OACbC,IAAQ,KAAK;AAGjB,aAAA1L,EAAI,YAAW,EAAG,MAAM,EAAE,EAAE,QAAQ,SAAU2L,GAAM;AAGlD,YAAIA,KAAQ,KAGZ;AAAA,cAAIC,IAASV,EAAQS,CAAI,IAAI;AAU7B,UAAAF,KAAS,GACLA,IAAQ,IACVC,KAASE,KAAUH,IACVA,IAAQ,KACjBtO,EAAI,KAAKuO,IAASE,KAAU,CAACH,CAAM,GACnCA,KAAS,GACTC,IAASE,KAAUH,IAAS,QAE5BtO,EAAI,KAAKuO,IAAQE,CAAM,GACvBH,IAAQ,GACRC,IAAQ;AAAA;AAAA,MAEd,CAAG,GAGD,KAAK,QAAQD,GACb,KAAK,QAAQC,GAGN;AAAA,IACT,GASAH,EAAQ,UAAU,WAAW,SAAUvL,GAAK;AAC1C,aAAIA,KACF,KAAK,MAAMA,CAAG,GAEZ,KAAK,UAAU,KAAK,KAAK,UAAU,MACrC,KAAK,IAAI,KAAK,KAAK,KAAK,GACxB,KAAK,QAAQ,GACb,KAAK,QAAQ,IAER,KAAK;AAAA,IACd;AAYA,aAAS6L,EAASL,GAAS;AAKzB,UAJA,KAAK,MAAM,IACX,KAAK,QAAQ,GACb,KAAK,QAAQ,GAETA,GAAS;AAEX,gBAAQA,EAAQ,MAAI;AAAA,UAClB,KAAK;AACH,iBAAK,WAAWnP,EAAQ,QAAQ;AAChC;AAAA,UACF,KAAK;AACH,iBAAK,WAAWA,EAAQ,UAAU;AAClC;AAAA,UACF,KAAK;AACH,iBAAK,WAAWA,EAAQ,UAAU;AAClC;AAAA,UACF;AACE,kBAAM,IAAI,MAAM,cAAc;AAAA,QACtC;AAEI,QAAImP,EAAQ,WAAU,KAAK,WAAWA,EAAQ,WACrCA,EAAQ,OAAI,KAAK,WAAW,KAAK,SAAS,YAAW;AAAA,MAClE;AAAA,IACA;AAMA,IAAAK,EAAQ,UAAU,WAAWT,EAAQ,UASrCS,EAAQ,UAAU,QAAQ,SAAU1O,GAAK;AACvC,UAAIsO,IAAQ,KAAK,OACbC,IAAQ,KAAK,OACbE,GACAE,GACA/R;AAGJ,WAAKA,IAAI,GAAGA,IAAIoD,EAAI,QAAQpD;AAC1B,QAAA+R,IAAO3O,EAAIpD,CAAC,GAUZ6R,IAASF,IAASI,KAAQL,GAC1B,KAAK,OAAO,KAAK,SAASG,IAAS,EAAI,GAEnCH,IAAQ,MACVA,KAAS,GACTG,IAASE,KAAQL,GACjB,KAAK,OAAO,KAAK,SAASG,IAAS,EAAI,IAGzCH,IAAQ,IAAIA,GACZC,IAAQI,KAAQL,GAChBA,IAAQ,IAAIA;AAId,kBAAK,QAAQA,GACb,KAAK,QAAQC,GAGN;AAAA,IACT,GASAG,EAAQ,UAAU,WAAW,SAAU1O,GAAK;AAC1C,aAAIA,KACF,KAAK,MAAMA,CAAG,GAEZ,KAAK,UAAU,MACjB,KAAK,OAAO,KAAK,SAAS,KAAK,QAAQ,EAAI,GAC3C,KAAK,QAAQ,GACb,KAAK,QAAQ,IAER,KAAK;AAAA,IACd,GAUAd,EAAA,SAAiB,SAAUc,GAAKqO,GAAS;AACvC,aAAO,IAAIK,EAAQL,CAAO,EAAE,SAASrO,CAAG;AAAA,IAC1C,GAUAd,EAAA,SAAiB,SAAU2D,GAAKwL,GAAS;AACvC,aAAO,IAAID,EAAQC,CAAO,EAAE,SAASxL,CAAG;AAAA,IAC1C,GAGA3D,EAAA,UAAkBkP,GAClBlP,EAAA,UAAkBwP,GAClBxP,EAAA,UAAkB6O,GAClB7O,EAAA,YAAoBgP,GACpBhP,EAAA,UAAkB+O,GAClB/O,EAAA,YAAoBiP;AAAA;;;mCCrTPS,KAAe,CAC3BC,MAEgB,IAAIC,GAAO,QAAQ,EAAE,MAAM,WAAW,EACvC,MAAMD,CAAO,EAAE,SAAA,GAGlBE,KAAuB,CAAChQ,MACpC,MAAM,QAAQA,CAAK,KAAKA,EAAM,SAASA,EAAM,CAAC,IAAIA;ACTnD,WAAW,SAASO;AAQpB,MAAM0P,KACL,qGAEKC,KAAgB,CAACC,MAAiB;AACvC,QAAMC,IAAM,CAAC3R,IAAuB,MAAM,GAAG,CAACA,IAAM,KAAK,IAAI,EAAE,GAAG,CAACA,CAAG,IAChE4R,IAAU,CAAC5R,IAAuB,MACvC,GAAG,CAACA,IAAM,MAAO,IAAI,EAAE,GAAG,CAACA,IAAM,MAAM,IAAI,EAAE,GAC5C,CAACA,IAAM,KAAK,IAAI,EACjB,GAAG,CAACA,CAAG;AAER,MAAIgB,IAAIwQ,GAAU,KAAKE,CAAI;AAG3B,EAAI1Q,MAAKA,KAAA,gBAAAA,EAAI,QAAO,WAEnBA,EAAE,CAAC,IAAI,QAEJA,MAAKA,KAAA,gBAAAA,EAAI,SAAQ,WACpBA,EAAE,EAAE,IAAI;AAGT,QAAML,IAAS,GAAGK,KAAA,gBAAAA,EAAI,EAAE,IAAIA,KAAA,gBAAAA,EAAI,GAAG,GAAG,QAAQ,eAAe,GAAG;AAEhE,SAAO;AAAA,IACN4Q,EAAQ5Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACd;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACV;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACVA,KAAA,gBAAAA,EAAI;AAAA,IACJ2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACV;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA,IACV;AAAA,IACA2Q,EAAI3Q,KAAA,gBAAAA,EAAI,EAAE;AAAA;AAAA,IAEVL;AAAA,EAAA,EACC,KAAK,EAAE;AACV;AAEA,SAAwBkR,GAAQC,GAAkB;AACjD,QAAMC,IAAUN,GAAcK,EAAI,OAAO,GACnCT,IAAU,CAACS,EAAI,KAAKC,GAASD,EAAI,OAAO,EAAE,KAAK;AAAA,CAAI;AAEzD,SAAOV,GAAajC,GAAAA,QAAQkC,GAAS,QAAW,EAAE,CAAC,EACjD,YAAA,EACA,MAAM,EAAE;AACX;;;;ACxDA,KAAC,SAASW,GAAEjR,GAAE;AAAC,MAAqDkR,YAAelR,EAAC;AAAA,IAAkH,GAAEmR,KAAM,WAAU;AAAC;AAAa,UAAIF,IAAE,KAAIjR,IAAE,KAAIqE,IAAE,MAAK+M,IAAE,eAAc/S,IAAE,UAASkC,IAAE,UAAS,IAAE,QAAO6C,IAAE,OAAMiO,IAAE,QAAO5Q,IAAE,SAAQ6Q,IAAE,WAAUC,IAAE,QAAOjR,IAAE,QAAOkR,IAAE,gBAAeC,IAAE,8FAA6F,IAAE,uFAAsF3F,IAAE,EAAC,MAAK,MAAK,UAAS,2DAA2D,MAAM,GAAG,GAAE,QAAO,wFAAwF,MAAM,GAAG,GAAE,SAAQ,SAASmF,GAAE;AAAC,YAAIjR,IAAE,CAAC,MAAK,MAAK,MAAK,IAAI,GAAEqE,IAAE4M,IAAE;AAAI,eAAM,MAAIA,KAAGjR,GAAGqE,IAAE,MAAI,EAAE,KAAGrE,EAAEqE,CAAC,KAAGrE,EAAE,CAAC,KAAG;AAAA,MAAG,EAAC,GAAEC,IAAE,SAASgR,GAAEjR,GAAEqE,GAAE;AAAC,YAAI+M,IAAE,OAAOH,CAAC;AAAE,eAAM,CAACG,KAAGA,EAAE,UAAQpR,IAAEiR,IAAE,KAAG,MAAMjR,IAAE,IAAEoR,EAAE,MAAM,EAAE,KAAK/M,CAAC,IAAE4M;AAAA,MAAC,GAAE1E,IAAE,EAAC,GAAEtM,GAAE,GAAE,SAASgR,GAAE;AAAC,YAAIjR,IAAE,CAACiR,EAAE,UAAS,GAAG5M,IAAE,KAAK,IAAIrE,CAAC,GAAEoR,IAAE,KAAK,MAAM/M,IAAE,EAAE,GAAEhG,IAAEgG,IAAE;AAAG,gBAAOrE,KAAG,IAAE,MAAI,OAAKC,EAAEmR,GAAE,GAAE,GAAG,IAAE,MAAInR,EAAE5B,GAAE,GAAE,GAAG;AAAA,MAAC,GAAE,GAAE,SAAS4S,EAAEjR,GAAEqE,GAAE;AAAC,YAAGrE,EAAE,KAAI,IAAGqE,EAAE,KAAI,EAAG,QAAM,CAAC4M,EAAE5M,GAAErE,CAAC;AAAE,YAAIoR,IAAE,MAAI/M,EAAE,SAAOrE,EAAE,KAAI,MAAKqE,EAAE,MAAK,IAAGrE,EAAE,MAAK,IAAI3B,IAAE2B,EAAE,QAAQ,IAAIoR,GAAE3Q,CAAC,GAAEF,IAAE8D,IAAEhG,IAAE,GAAEqT,IAAE1R,EAAE,MAAK,EAAG,IAAIoR,KAAG7Q,IAAE,KAAG,IAAGE,CAAC;AAAE,eAAM,EAAE,EAAE2Q,KAAG/M,IAAEhG,MAAIkC,IAAElC,IAAEqT,IAAEA,IAAErT,OAAK;AAAA,MAAE,GAAE,GAAE,SAAS4S,GAAE;AAAC,eAAOA,IAAE,IAAE,KAAK,KAAKA,CAAC,KAAG,IAAE,KAAK,MAAMA,CAAC;AAAA,MAAC,GAAE,GAAE,SAASA,GAAE;AAAC,eAAM,EAAC,GAAExQ,GAAE,GAAE8Q,GAAE,GAAEF,GAAE,GAAEjO,GAAE,GAAE9C,GAAE,GAAE,GAAE,GAAEC,GAAE,GAAElC,GAAE,IAAG+S,GAAE,GAAEE,EAAC,EAAEL,CAAC,KAAG,OAAOA,KAAG,EAAE,EAAE,YAAW,EAAG,QAAQ,MAAK,EAAE;AAAA,MAAC,GAAE,GAAE,SAASA,GAAE;AAAC,eAAgBA,MAAT;AAAA,MAAU,EAAC,GAAEU,IAAE,MAAKC,IAAE;AAAG,MAAAA,EAAED,CAAC,IAAE7F;AAAE,UAAI+F,KAAE,kBAAiBC,IAAE,SAASb,GAAE;AAAC,eAAOA,aAAac,KAAG,EAAE,CAACd,KAAG,CAACA,EAAEY,EAAC;AAAA,MAAE,GAAEG,KAAE,SAASf,EAAEjR,GAAEqE,GAAE+M,GAAE;AAAC,YAAI/S;AAAE,YAAG,CAAC2B,EAAE,QAAO2R;AAAE,YAAa,OAAO3R,KAAjB,UAAmB;AAAC,cAAIO,IAAEP,EAAE;AAAc,UAAA4R,EAAErR,CAAC,MAAIlC,IAAEkC,IAAG8D,MAAIuN,EAAErR,CAAC,IAAE8D,GAAEhG,IAAEkC;AAAG,cAAImR,IAAE1R,EAAE,MAAM,GAAG;AAAE,cAAG,CAAC3B,KAAGqT,EAAE,SAAO,EAAE,QAAOT,EAAES,EAAE,CAAC,CAAC;AAAA,QAAC,OAAK;AAAC,cAAItO,IAAEpD,EAAE;AAAK,UAAA4R,EAAExO,CAAC,IAAEpD,GAAE3B,IAAE+E;AAAA,QAAC;AAAC,eAAM,CAACgO,KAAG/S,MAAIsT,IAAEtT,IAAGA,KAAG,CAAC+S,KAAGO;AAAA,MAAC,GAAEM,IAAE,SAAShB,GAAEjR,GAAE;AAAC,YAAG8R,EAAEb,CAAC,EAAE,QAAOA,EAAE,MAAK;AAAG,YAAI5M,IAAY,OAAOrE,KAAjB,WAAmBA,IAAE,CAAA;AAAG,eAAOqE,EAAE,OAAK4M,GAAE5M,EAAE,OAAK,WAAU,IAAI0N,EAAE1N,CAAC;AAAA,MAAC,GAAElC,IAAEoK;AAAE,MAAApK,EAAE,IAAE6P,IAAE7P,EAAE,IAAE2P,GAAE3P,EAAE,IAAE,SAAS8O,GAAEjR,GAAE;AAAC,eAAOiS,EAAEhB,GAAE,EAAC,QAAOjR,EAAE,IAAG,KAAIA,EAAE,IAAG,GAAEA,EAAE,IAAG,SAAQA,EAAE,QAAO,CAAC;AAAA,MAAC;AAAE,UAAI+R,KAAE,WAAU;AAAC,iBAASjG,EAAEmF,GAAE;AAAC,eAAK,KAAGe,GAAEf,EAAE,QAAO,MAAK,EAAE,GAAE,KAAK,MAAMA,CAAC,GAAE,KAAK,KAAG,KAAK,MAAIA,EAAE,KAAG,CAAA,GAAG,KAAKY,EAAC,IAAE;AAAA,QAAE;AAAC,YAAI5R,IAAE6L,EAAE;AAAU,eAAO7L,EAAE,QAAM,SAASgR,GAAE;AAAC,eAAK,MAAG,SAASA,GAAE;AAAC,gBAAIjR,IAAEiR,EAAE,MAAK5M,IAAE4M,EAAE;AAAI,gBAAUjR,MAAP,KAAS,QAAO,oBAAI,KAAK,GAAG;AAAE,gBAAGmC,EAAE,EAAEnC,CAAC,EAAE,QAAO,oBAAI;AAAK,gBAAGA,aAAa,KAAK,QAAO,IAAI,KAAKA,CAAC;AAAE,gBAAa,OAAOA,KAAjB,YAAoB,CAAC,MAAM,KAAKA,CAAC,GAAE;AAAC,kBAAIoR,IAAEpR,EAAE,MAAMyR,CAAC;AAAE,kBAAGL,GAAE;AAAC,oBAAI/S,IAAE+S,EAAE,CAAC,IAAE,KAAG,GAAE7Q,KAAG6Q,EAAE,CAAC,KAAG,KAAK,UAAU,GAAE,CAAC;AAAE,uBAAO/M,IAAE,IAAI,KAAK,KAAK,IAAI+M,EAAE,CAAC,GAAE/S,GAAE+S,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE7Q,CAAC,CAAC,IAAE,IAAI,KAAK6Q,EAAE,CAAC,GAAE/S,GAAE+S,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAE7Q,CAAC;AAAA,cAAC;AAAA,YAAC;AAAC,mBAAO,IAAI,KAAKP,CAAC;AAAA,UAAC,GAAEiR,CAAC,GAAE,KAAK,KAAI;AAAA,QAAE,GAAEhR,EAAE,OAAK,WAAU;AAAC,cAAIgR,IAAE,KAAK;AAAG,eAAK,KAAGA,EAAE,YAAW,GAAG,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,WAAU,KAAK,KAAGA,EAAE,OAAM,GAAG,KAAK,KAAGA,EAAE,SAAQ,GAAG,KAAK,KAAGA,EAAE,cAAa,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,MAAIA,EAAE,gBAAe;AAAA,QAAE,GAAEhR,EAAE,SAAO,WAAU;AAAC,iBAAOkC;AAAA,QAAC,GAAElC,EAAE,UAAQ,WAAU;AAAC,iBAAQ,KAAK,GAAG,SAAQ,MAAKuR;AAAA,QAAE,GAAEvR,EAAE,SAAO,SAASgR,GAAEjR,GAAE;AAAC,cAAIqE,IAAE4N,EAAEhB,CAAC;AAAE,iBAAO,KAAK,QAAQjR,CAAC,KAAGqE,KAAGA,KAAG,KAAK,MAAMrE,CAAC;AAAA,QAAC,GAAEC,EAAE,UAAQ,SAASgR,GAAEjR,GAAE;AAAC,iBAAOiS,EAAEhB,CAAC,IAAE,KAAK,QAAQjR,CAAC;AAAA,QAAC,GAAEC,EAAE,WAAS,SAASgR,GAAEjR,GAAE;AAAC,iBAAO,KAAK,MAAMA,CAAC,IAAEiS,EAAEhB,CAAC;AAAA,QAAC,GAAEhR,EAAE,KAAG,SAASgR,GAAEjR,GAAEqE,GAAE;AAAC,iBAAOlC,EAAE,EAAE8O,CAAC,IAAE,KAAKjR,CAAC,IAAE,KAAK,IAAIqE,GAAE4M,CAAC;AAAA,QAAC,GAAEhR,EAAE,OAAK,WAAU;AAAC,iBAAO,KAAK,MAAM,KAAK,QAAO,IAAG,GAAG;AAAA,QAAC,GAAEA,EAAE,UAAQ,WAAU;AAAC,iBAAO,KAAK,GAAG,QAAO;AAAA,QAAE,GAAEA,EAAE,UAAQ,SAASgR,GAAEjR,GAAE;AAAC,cAAIqE,IAAE,MAAK+M,IAAE,CAAC,CAACjP,EAAE,EAAEnC,CAAC,KAAGA,GAAEsR,IAAEnP,EAAE,EAAE8O,CAAC,GAAEO,IAAE,SAASP,IAAEjR,GAAE;AAAC,gBAAI3B,KAAE8D,EAAE,EAAEkC,EAAE,KAAG,KAAK,IAAIA,EAAE,IAAGrE,GAAEiR,EAAC,IAAE,IAAI,KAAK5M,EAAE,IAAGrE,GAAEiR,EAAC,GAAE5M,CAAC;AAAE,mBAAO+M,IAAE/S,KAAEA,GAAE,MAAM+E,CAAC;AAAA,UAAC,GAAEqO,IAAE,SAASR,IAAEjR,GAAE;AAAC,mBAAOmC,EAAE,EAAEkC,EAAE,SAAS4M,EAAC,EAAE,MAAM5M,EAAE,OAAO,GAAG,IAAG+M,IAAE,CAAC,GAAE,GAAE,GAAE,CAAC,IAAE,CAAC,IAAG,IAAG,IAAG,GAAG,GAAG,MAAMpR,CAAC,CAAC,GAAEqE,CAAC;AAAA,UAAC,GAAEf,IAAE,KAAK,IAAGwI,IAAE,KAAK,IAAG7L,IAAE,KAAK,IAAGsM,KAAE,SAAO,KAAK,KAAG,QAAM;AAAI,kBAAO+E,GAAC;AAAA,YAAE,KAAKC;AAAE,qBAAOH,IAAEI,EAAE,GAAE,CAAC,IAAEA,EAAE,IAAG,EAAE;AAAA,YAAE,KAAK/Q;AAAE,qBAAO2Q,IAAEI,EAAE,GAAE1F,CAAC,IAAE0F,EAAE,GAAE1F,IAAE,CAAC;AAAA,YAAE,KAAKuF;AAAE,kBAAIM,KAAE,KAAK,QAAO,EAAG,aAAW,GAAEC,MAAGtO,IAAEqO,KAAErO,IAAE,IAAEA,KAAGqO;AAAE,qBAAOH,EAAEJ,IAAEnR,IAAE2R,KAAE3R,KAAG,IAAE2R,KAAG9F,CAAC;AAAA,YAAE,KAAK1I;AAAA,YAAE,KAAK9C;AAAE,qBAAOmR,EAAElF,KAAE,SAAQ,CAAC;AAAA,YAAE,KAAK;AAAE,qBAAOkF,EAAElF,KAAE,WAAU,CAAC;AAAA,YAAE,KAAKhM;AAAE,qBAAOkR,EAAElF,KAAE,WAAU,CAAC;AAAA,YAAE,KAAKlO;AAAE,qBAAOoT,EAAElF,KAAE,gBAAe,CAAC;AAAA,YAAE;AAAQ,qBAAO,KAAK;UAAO;AAAA,QAAC,GAAEtM,EAAE,QAAM,SAASgR,GAAE;AAAC,iBAAO,KAAK,QAAQA,GAAE,EAAE;AAAA,QAAC,GAAEhR,EAAE,OAAK,SAASgR,GAAEjR,GAAE;AAAC,cAAIqE,GAAEgN,IAAElP,EAAE,EAAE8O,CAAC,GAAEK,IAAE,SAAO,KAAK,KAAG,QAAM,KAAIE,KAAGnN,IAAE,CAAA,GAAGA,EAAEjB,CAAC,IAAEkO,IAAE,QAAOjN,EAAE/D,CAAC,IAAEgR,IAAE,QAAOjN,EAAE5D,CAAC,IAAE6Q,IAAE,SAAQjN,EAAEkN,CAAC,IAAED,IAAE,YAAWjN,EAAE,CAAC,IAAEiN,IAAE,SAAQjN,EAAE9D,CAAC,IAAE+Q,IAAE,WAAUjN,EAAEhG,CAAC,IAAEiT,IAAE,WAAUjN,EAAE+M,CAAC,IAAEE,IAAE,gBAAejN,GAAGgN,CAAC,GAAEI,IAAEJ,MAAIjO,IAAE,KAAK,MAAIpD,IAAE,KAAK,MAAIA;AAAE,cAAGqR,MAAI5Q,KAAG4Q,MAAIE,GAAE;AAAC,gBAAIjO,IAAE,KAAK,MAAK,EAAG,IAAIhD,GAAE,CAAC;AAAE,YAAAgD,EAAE,GAAGkO,CAAC,EAAEC,CAAC,GAAEnO,EAAE,KAAI,GAAG,KAAK,KAAGA,EAAE,IAAIhD,GAAE,KAAK,IAAI,KAAK,IAAGgD,EAAE,YAAW,CAAE,CAAC,EAAE;AAAA,UAAE,MAAM,CAAAkO,KAAG,KAAK,GAAGA,CAAC,EAAEC,CAAC;AAAE,iBAAO,KAAK,QAAO;AAAA,QAAI,GAAExR,EAAE,MAAI,SAASgR,GAAEjR,GAAE;AAAC,iBAAO,KAAK,QAAQ,KAAKiR,GAAEjR,CAAC;AAAA,QAAC,GAAEC,EAAE,MAAI,SAASgR,GAAE;AAAC,iBAAO,KAAK9O,EAAE,EAAE8O,CAAC,CAAC,EAAC;AAAA,QAAE,GAAEhR,EAAE,MAAI,SAASmR,GAAEE,GAAE;AAAC,cAAIhR,GAAEkR,IAAE;AAAK,UAAAJ,IAAE,OAAOA,CAAC;AAAE,cAAIK,IAAEtP,EAAE,EAAEmP,CAAC,GAAEhO,IAAE,SAAS2N,GAAE;AAAC,gBAAIjR,IAAEiS,EAAET,CAAC;AAAE,mBAAOrP,EAAE,EAAEnC,EAAE,KAAKA,EAAE,SAAO,KAAK,MAAMiR,IAAEG,CAAC,CAAC,GAAEI,CAAC;AAAA,UAAC;AAAE,cAAGC,MAAIhR,EAAE,QAAO,KAAK,IAAIA,GAAE,KAAK,KAAG2Q,CAAC;AAAE,cAAGK,MAAIF,EAAE,QAAO,KAAK,IAAIA,GAAE,KAAK,KAAGH,CAAC;AAAE,cAAGK,MAAIrO,EAAE,QAAOE,EAAE,CAAC;AAAE,cAAGmO,MAAIJ,EAAE,QAAO/N,EAAE,CAAC;AAAE,cAAIwI,KAAGxL,IAAE,IAAGA,EAAEC,CAAC,IAAEP,GAAEM,EAAE,CAAC,IAAE+D,GAAE/D,EAAEjC,CAAC,IAAE4S,GAAE3Q,GAAGmR,CAAC,KAAG,GAAExR,IAAE,KAAK,GAAG,YAAUmR,IAAEtF;AAAE,iBAAO3J,EAAE,EAAElC,GAAE,IAAI;AAAA,QAAC,GAAEA,EAAE,WAAS,SAASgR,GAAEjR,GAAE;AAAC,iBAAO,KAAK,IAAI,KAAGiR,GAAEjR,CAAC;AAAA,QAAC,GAAEC,EAAE,SAAO,SAASgR,GAAE;AAAC,cAAIjR,IAAE,MAAKqE,IAAE,KAAK,QAAO;AAAG,cAAG,CAAC,KAAK,UAAU,QAAOA,EAAE,eAAamN;AAAE,cAAIJ,IAAEH,KAAG,wBAAuB5S,IAAE8D,EAAE,EAAE,IAAI,GAAE5B,IAAE,KAAK,IAAGmR,IAAE,KAAK,IAAGtO,IAAE,KAAK,IAAGiO,IAAEhN,EAAE,UAAS5D,IAAE4D,EAAE,QAAOiN,KAAEjN,EAAE,UAASkN,KAAE,SAASN,GAAE5M,IAAEhG,IAAEkC,IAAE;AAAC,mBAAO0Q,MAAIA,EAAE5M,EAAC,KAAG4M,EAAEjR,GAAEoR,CAAC,MAAI/S,GAAEgG,EAAC,EAAE,MAAM,GAAE9D,EAAC;AAAA,UAAC,GAAED,KAAE,SAAS2Q,GAAE;AAAC,mBAAO9O,EAAE,EAAE5B,IAAE,MAAI,IAAG0Q,GAAE,GAAG;AAAA,UAAC,GAAEQ,KAAEH,MAAG,SAASL,GAAEjR,IAAEqE,IAAE;AAAC,gBAAI+M,KAAEH,IAAE,KAAG,OAAK;AAAK,mBAAO5M,KAAE+M,GAAE,YAAW,IAAGA;AAAA,UAAC;AAAE,iBAAOA,EAAE,QAAQ,IAAG,SAASH,GAAEG,IAAE;AAAC,mBAAOA,OAAG,SAASH,IAAE;AAAC,sBAAOA,IAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO,OAAOjR,EAAE,EAAE,EAAE,MAAM,EAAE;AAAA,gBAAE,KAAI;AAAO,yBAAOmC,EAAE,EAAEnC,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOoD,IAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOjB,EAAE,EAAEiB,IAAE,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOmO,GAAElN,EAAE,aAAYjB,GAAE3C,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAO8Q,GAAE9Q,GAAE2C,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOpD,EAAE;AAAA,gBAAG,KAAI;AAAK,yBAAOmC,EAAE,EAAEnC,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOuR,GAAElN,EAAE,aAAYrE,EAAE,IAAGqR,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAM,yBAAOE,GAAElN,EAAE,eAAcrE,EAAE,IAAGqR,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAO,yBAAOA,EAAErR,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOO,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAO4B,EAAE,EAAE5B,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAOD,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOA,GAAE,CAAC;AAAA,gBAAE,KAAI;AAAI,yBAAOmR,GAAElR,GAAEmR,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAOD,GAAElR,GAAEmR,GAAE,EAAE;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAOA,CAAC;AAAA,gBAAE,KAAI;AAAK,yBAAOvP,EAAE,EAAEuP,GAAE,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO,OAAO1R,EAAE,EAAE;AAAA,gBAAE,KAAI;AAAK,yBAAOmC,EAAE,EAAEnC,EAAE,IAAG,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAM,yBAAOmC,EAAE,EAAEnC,EAAE,KAAI,GAAE,GAAG;AAAA,gBAAE,KAAI;AAAI,yBAAO3B;AAAA,cAAC;AAAC,qBAAO;AAAA,YAAI,GAAE4S,CAAC,KAAG5S,EAAE,QAAQ,KAAI,EAAE;AAAA,UAAC;QAAG,GAAE4B,EAAE,YAAU,WAAU;AAAC,iBAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,kBAAiB,IAAG,EAAE;AAAA,QAAC,GAAEA,EAAE,OAAK,SAASmR,GAAE9Q,GAAEkR,GAAE;AAAC,cAAIC,GAAEnO,IAAE,MAAKwI,IAAE3J,EAAE,EAAE7B,CAAC,GAAEL,IAAEgS,EAAEb,CAAC,GAAE7E,KAAGtM,EAAE,cAAY,KAAK,UAAS,KAAID,GAAE2R,IAAE,OAAK1R,GAAE2R,IAAE,WAAU;AAAC,mBAAOzP,EAAE,EAAEmB,GAAErD,CAAC;AAAA,UAAC;AAAE,kBAAO6L,GAAC;AAAA,YAAE,KAAKyF;AAAE,cAAAE,IAAEG,EAAC,IAAG;AAAG;AAAA,YAAM,KAAKnR;AAAE,cAAAgR,IAAEG,EAAC;AAAG;AAAA,YAAM,KAAKN;AAAE,cAAAG,IAAEG,EAAC,IAAG;AAAE;AAAA,YAAM,KAAKP;AAAE,cAAAI,KAAGE,IAAEpF,KAAG;AAAO;AAAA,YAAM,KAAKnJ;AAAE,cAAAqO,KAAGE,IAAEpF,KAAG;AAAM;AAAA,YAAM,KAAK;AAAE,cAAAkF,IAAEE,IAAEtN;AAAE;AAAA,YAAM,KAAK9D;AAAE,cAAAkR,IAAEE,IAAE3R;AAAE;AAAA,YAAM,KAAK3B;AAAE,cAAAoT,IAAEE,IAAEV;AAAE;AAAA,YAAM;AAAQ,cAAAQ,IAAEE;AAAA,UAAC;AAAC,iBAAOH,IAAEC,IAAEtP,EAAE,EAAEsP,CAAC;AAAA,QAAC,GAAExR,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,MAAMQ,CAAC,EAAE;AAAA,QAAE,GAAER,EAAE,UAAQ,WAAU;AAAC,iBAAO2R,EAAE,KAAK,EAAE;AAAA,QAAC,GAAE3R,EAAE,SAAO,SAASgR,GAAEjR,GAAE;AAAC,cAAG,CAACiR,EAAE,QAAO,KAAK;AAAG,cAAI5M,IAAE,KAAK,MAAK,GAAG+M,IAAEY,GAAEf,GAAEjR,GAAE,EAAE;AAAE,iBAAOoR,MAAI/M,EAAE,KAAG+M,IAAG/M;AAAA,QAAC,GAAEpE,EAAE,QAAM,WAAU;AAAC,iBAAOkC,EAAE,EAAE,KAAK,IAAG,IAAI;AAAA,QAAC,GAAElC,EAAE,SAAO,WAAU;AAAC,iBAAO,IAAI,KAAK,KAAK,QAAO,CAAE;AAAA,QAAC,GAAEA,EAAE,SAAO,WAAU;AAAC,iBAAO,KAAK,QAAO,IAAG,KAAK,YAAW,IAAG;AAAA,QAAI,GAAEA,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAEA,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,GAAG,YAAW;AAAA,QAAE,GAAE6L;AAAA,MAAC,MAAIoG,KAAEH,EAAE;AAAU,aAAOE,EAAE,YAAUC,IAAE,CAAC,CAAC,OAAMd,CAAC,GAAE,CAAC,MAAK/S,CAAC,GAAE,CAAC,MAAKkC,CAAC,GAAE,CAAC,MAAK,CAAC,GAAE,CAAC,MAAK6C,CAAC,GAAE,CAAC,MAAK3C,CAAC,GAAE,CAAC,MAAK8Q,CAAC,GAAE,CAAC,MAAKjR,CAAC,CAAC,EAAE,SAAS,SAAS2Q,GAAE;AAAC,QAAAiB,GAAEjB,EAAE,CAAC,CAAC,IAAE,SAASjR,GAAE;AAAC,iBAAO,KAAK,GAAGA,GAAEiR,EAAE,CAAC,GAAEA,EAAE,CAAC,CAAC;AAAA,QAAC;AAAA,MAAC,EAAC,GAAGgB,EAAE,SAAO,SAAShB,GAAEjR,GAAE;AAAC,eAAOiR,EAAE,OAAKA,EAAEjR,GAAE+R,GAAEE,CAAC,GAAEhB,EAAE,KAAG,KAAIgB;AAAA,MAAC,GAAEA,EAAE,SAAOD,IAAEC,EAAE,UAAQH,GAAEG,EAAE,OAAK,SAAShB,GAAE;AAAC,eAAOgB,EAAE,MAAIhB,CAAC;AAAA,MAAC,GAAEgB,EAAE,KAAGL,EAAED,CAAC,GAAEM,EAAE,KAAGL,GAAEK,EAAE,IAAE,IAAGA;AAAA,IAAC,EAAC;AAAA;;;;;;;ACAr/N,KAAC,SAAShB,GAAE5S,GAAE;AAAC,MAAqD6S,EAAA,UAAe7S,EAAC;AAAA,IAA6H,GAAE8S,KAAM,WAAU;AAAC;AAAa,UAAIF,IAAE,UAAS5S,IAAE,wBAAuB2B,IAAE;AAAe,aAAO,SAASO,GAAE+Q,GAAEjN,GAAE;AAAC,YAAI,IAAEiN,EAAE;AAAU,QAAAjN,EAAE,MAAI,SAAS4M,GAAE;AAAC,cAAI5S,IAAE,EAAC,MAAK4S,GAAE,KAAI,IAAG,MAAK,UAAS;AAAE,iBAAO,IAAIK,EAAEjT,CAAC;AAAA,QAAC,GAAE,EAAE,MAAI,SAASA,GAAE;AAAC,cAAI2B,IAAEqE,EAAE,KAAK,UAAS,EAAC,QAAO,KAAK,IAAG,KAAI,GAAE,CAAC;AAAE,iBAAOhG,IAAE2B,EAAE,IAAI,KAAK,UAAS,GAAGiR,CAAC,IAAEjR;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAOqE,EAAE,KAAK,OAAM,GAAG,EAAC,QAAO,KAAK,IAAG,KAAI,GAAE,CAAC;AAAA,QAAC;AAAE,YAAI+M,IAAE,EAAE;AAAM,UAAE,QAAM,SAASH,GAAE;AAAC,UAAAA,EAAE,QAAM,KAAK,KAAG,KAAI,KAAK,OAAM,EAAG,EAAEA,EAAE,OAAO,MAAI,KAAK,UAAQA,EAAE,UAASG,EAAE,KAAK,MAAKH,CAAC;AAAA,QAAC;AAAE,YAAII,IAAE,EAAE;AAAK,UAAE,OAAK,WAAU;AAAC,cAAG,KAAK,IAAG;AAAC,gBAAIJ,IAAE,KAAK;AAAG,iBAAK,KAAGA,EAAE,eAAc,GAAG,KAAK,KAAGA,EAAE,YAAW,GAAG,KAAK,KAAGA,EAAE,WAAU,GAAG,KAAK,KAAGA,EAAE,UAAS,GAAG,KAAK,KAAGA,EAAE,YAAW,GAAG,KAAK,KAAGA,EAAE,cAAa,GAAG,KAAK,KAAGA,EAAE,cAAa,GAAG,KAAK,MAAIA,EAAE,mBAAkB;AAAA,UAAE,MAAM,CAAAI,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAIjO,IAAE,EAAE;AAAU,UAAE,YAAU,SAAS7C,GAAE+Q,GAAE;AAAC,cAAIjN,IAAE,KAAK,OAAM,EAAG;AAAE,cAAGA,EAAE9D,CAAC,EAAE,QAAO,KAAK,KAAG,IAAE8D,EAAE,KAAK,OAAO,IAAEjB,EAAE,KAAK,IAAI,IAAE,KAAK;AAAQ,cAAa,OAAO7C,KAAjB,aAAqBA,KAAE,SAAS0Q,GAAE;AAAC,YAASA,MAAT,WAAaA,IAAE;AAAI,gBAAI1Q,IAAE0Q,EAAE,MAAM5S,CAAC;AAAE,gBAAG,CAACkC,EAAE,QAAO;AAAK,gBAAI+Q,MAAG,KAAG/Q,EAAE,CAAC,GAAG,MAAMP,CAAC,KAAG,CAAC,KAAI,GAAE,CAAC,GAAEqE,IAAEiN,GAAE,CAAC,GAAEI,KAAE,KAAG,CAACJ,GAAE,CAAC,IAAG,CAACA,GAAE,CAAC;AAAE,mBAAWI,OAAJ,IAAM,IAAQrN,MAAN,MAAQqN,KAAE,CAACA;AAAA,UAAC,GAAEnR,CAAC,GAASA,MAAP,MAAU,QAAO;AAAK,cAAImR,IAAE,KAAK,IAAInR,CAAC,KAAG,KAAG,KAAGA,IAAEA;AAAE,cAAOmR,MAAJ,EAAM,QAAO,KAAK,IAAIJ,CAAC;AAAE,cAAIF,IAAE,KAAK,MAAK;AAAG,cAAGE,EAAE,QAAOF,EAAE,UAAQM,GAAEN,EAAE,KAAG,IAAGA;AAAE,cAAIC,IAAE,KAAK,KAAG,KAAK,OAAM,EAAG,kBAAiB,IAAG,KAAG,KAAK,UAAS;AAAG,kBAAOD,IAAE,KAAK,MAAK,EAAG,IAAIM,IAAEL,GAAEJ,CAAC,GAAG,UAAQS,GAAEN,EAAE,GAAG,eAAaC,GAAED;AAAA,QAAC;AAAE,YAAIG,IAAE,EAAE;AAAO,UAAE,SAAO,SAASN,GAAE;AAAC,cAAI5S,IAAE4S,MAAI,KAAK,KAAG,2BAAyB;AAAI,iBAAOM,EAAE,KAAK,MAAKlT,CAAC;AAAA,QAAC,GAAE,EAAE,UAAQ,WAAU;AAAC,cAAI4S,IAAE,KAAK,OAAM,EAAG,EAAE,KAAK,OAAO,IAAE,IAAE,KAAK,WAAS,KAAK,GAAG,gBAAc,KAAK,GAAG,kBAAiB;AAAI,iBAAO,KAAK,GAAG,QAAO,IAAG,MAAIA;AAAA,QAAC,GAAE,EAAE,QAAM,WAAU;AAAC,iBAAM,CAAC,CAAC,KAAK;AAAA,QAAE,GAAE,EAAE,cAAY,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG;QAAa,GAAE,EAAE,WAAS,WAAU;AAAC,iBAAO,KAAK,OAAM,EAAG,YAAW;AAAA,QAAE;AAAE,YAAIO,IAAE,EAAE;AAAO,UAAE,SAAO,SAASP,GAAE;AAAC,iBAAYA,MAAN,OAAS,KAAK,UAAQ5M,EAAE,KAAK,OAAO,yBAAyB,CAAC,EAAE,OAAM,IAAGmN,EAAE,KAAK,IAAI;AAAA,QAAC;AAAE,YAAI/Q,IAAE,EAAE;AAAK,UAAE,OAAK,SAASwQ,GAAE5S,GAAE2B,GAAE;AAAC,cAAGiR,KAAG,KAAK,OAAKA,EAAE,GAAG,QAAOxQ,EAAE,KAAK,MAAKwQ,GAAE5S,GAAE2B,CAAC;AAAE,cAAIO,IAAE,KAAK,MAAK,GAAG+Q,IAAEjN,EAAE4M,CAAC,EAAE,MAAK;AAAG,iBAAOxQ,EAAE,KAAKF,GAAE+Q,GAAEjT,GAAE2B,CAAC;AAAA,QAAC;AAAA,MAAC;AAAA,IAAC,EAAC;AAAA;;;;ACQltEmS,GAAM,OAAOC,EAAG;AAMhB,SAAwBC,GAAWC,GAAsB;AACxD,QAAMC,IAAWD,EAAM,MAAM;AAAA,CAAI,GAE3B,EAAE,cAAAE,IAAe,CAAA,GAAI,cAAAC,IAAe,CAAA,EAAC,IAAMF,EAAS;AAAA,IACzD,CACCG,GAIAC,MACI;AACJ,YAAMC,IAAOD,EAAa,KAAA;AAC1B,aAAIC,MAAS,OAETA,EAAK,WAAW,GAAG,IAAGF,EAAI,aAAa,KAAKE,CAAI,IAC/CF,EAAI,aAAa,KAAKE,CAAI,IACxBF;AAAA,IACR;AAAA,IACA;AAAA,MACC,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,IAAC;AAAA,EAChB,GAGK,EAAE,WAAAG,IAAY,CAAA,GAAI,UAAAC,IAAW,CAAA,EAAC,IAAMN,EACxC,OAAO,CAACI,MAASA,EAAK,SAAS,GAAG,CAAC,EACnC;AAAA,IACA,CACCF,GAIAE,MACI;AACJ,YAAM,CAAC7E,GAAK,GAAGgF,CAAI,IAAIH,EAErB,UAAU,CAAC,EACX,MAAM,GAAG,EACT,IAAI,CAACI,MAAUA,EAAM,MAAM,GACvBlO,IAAMiO,EAAK,KAAK,GAAG;AACzB,UAAIhF,MAAQ,UAAU;AACrB,cAAM,CAACkF,GAAMC,CAAG,IAAIpO,EAAI,KAAA,EAAO,MAAM,KAAK;AAC1C,QAAA4N,EAAI,UAAU,KAAK,EAAE,MAAAO,GAAM,KAAAC,GAAK;AAAA,MACjC;AACC,QAAIR,EAAI,SAAS3E,CAAG,IACd,MAAM,QAAQ2E,EAAI,SAAS3E,CAAG,CAAC,IAE/B2E,EAAI,SAAS3E,CAAG,EAAE,KAAKjJ,CAAG,IAD9B4N,EAAI,SAAS3E,CAAG,IAAI,CAAC2E,EAAI,SAAS3E,CAAG,GAAGjJ,CAAG,IAEtC4N,EAAI,SAAS3E,CAAG,IAAIjJ;AAE5B,aAAO4N;AAAA,IACR;AAAA,IACA;AAAA,MACC,WAAW,CAAA;AAAA,MACX,UAAU,CAAA;AAAA,IAAC;AAAA,EACZ,GAGIS,IAAa,sCAEbC,IAAOX,EACX,IAAI,CAACG,MAAS;AV3EjB,QAAAS;AU4EG,UAAM,CAACrC,GAASsC,CAAO,IAAIV,EACzB,MAAM,IAAI,EACV,IAAI,CAAC9N,MAAQA,EAAI,MAAM;AAEzB,QAAI,OAAOwO,KAAY;AACtB,YAAM,IAAI,MAAM,yBAAyBV,CAAI,EAAE;AAEhD,UAAMW,IAAepB,GAAM,IAAInB,CAAO;AACtC,QAAI,CAACuC,EAAa,QAAA;AACjB,YAAM,IAAI,MAAM,oBAAoBX,CAAI,EAAE;AAE3C,UAAMY,IAAaD,EAAa,YAAA,GAE1BE,IAAeN,EAAW,KAAKG,CAAO;AAC5C,QAAII,GAAWC,GAAWC;AAE1B,IAAIH,KAAA,QAAAA,EAAc,WACjBC,IAAYD,KAAA,gBAAAA,EAAe,IAC3BE,IAAYF,KAAA,gBAAAA,EAAe,IAC3BG,IAAWH,KAAA,gBAAAA,EAAe;AAG3B,UAAMI,IAAO/C,GAAQ;AAAA,MACpB,SAAAwC;AAAA,MACA,SAAAtC;AAAA,MACA,YAAAwC;AAAA,MACA,KAAKhD,IAAqB6C,IAAAP,KAAA,gBAAAA,EAAU,QAAV,OAAAO,IAAiB,EAAE;AAAA,IAAA,CAC7C;AAED,WAAO;AAAA,MACN,SAAAC;AAAA,MACA,SAAAtC;AAAA,MACA,YAAAwC;AAAA,MACA,MAAAK;AAAA,MACA,WAAAH;AAAA,MACA,WAAAC;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAEF,CAAC,EACA,KAAK,CAACxQ,GAAGjB,MAAMgQ,GAAM/O,EAAE,OAAO,EAAE,KAAK+O,GAAMhQ,EAAE,OAAO,CAAC,CAAC;AAExD,SAAO;AAAA,IACN,WAAA0Q;AAAA,IACA,UAAAC;AAAA,IACA,MAAAM;AAAA,EAAA;AAEF;ACrHA,SAA8BU,GAAsBZ,IAAM,IAAoB;AAAA,SAAAa,GAAA;AAC7E,QAAI,CAACb,EAAK,OAAM,IAAI,MAAM,iBAAiB;AAE3C,QAAI;AACH,YAAMc,IAAW,MAAM,MAAMd,CAAG,GAC1Be,IAAY,MAAMD,EAAS,KAAA,GAC3BE,IAAe/B;AAAA,QACpB6B,EAAS,QAAQ,IAAI,eAAe;AAAA,MAAA,EACnC,YAAA;AAEF,aAAOG,GAAAC,GAAA,IACH/B,GAAW4B,CAAS,IADjB;AAAA,QAEN,cAAAC;AAAA,MAAA;AAAA,IAEF,SAASG,GAAK;AACb,oBAAQ,MAAMA,CAAG,GACXA;AAAA,IACP;AAAA,EACD;AAAA;","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
diff --git a/dist-browser/types.d.ts b/dist-browser/types.d.ts
index 621a657..40a0b44 100644
--- a/dist-browser/types.d.ts
+++ b/dist-browser/types.d.ts
@@ -26,6 +26,7 @@ export interface Twttr {
}
export interface Twtxt {
following: Twttr[];
+ lastModified?: string;
metadata: Metadata;
twts: Twt[];
}
diff --git a/dist-browser/utils.d.ts b/dist-browser/utils.d.ts
index ae257be..cfcd0df 100644
--- a/dist-browser/utils.d.ts
+++ b/dist-browser/utils.d.ts
@@ -1,2 +1,2 @@
-export declare const base32Encode: (payload: string | Uint8Array) => any;
+export declare const base32Encode: (payload: string | Uint8Array) => string;
export declare const getValueOrFirstEntry: (value: unknown | unknown[]) => any;
diff --git a/dist-demo/demo/styles.css b/dist-demo/demo/styles.css
index cd08422..7462b66 100644
--- a/dist-demo/demo/styles.css
+++ b/dist-demo/demo/styles.css
@@ -68,6 +68,15 @@ button {
background-color: var(--link-active);
}
+code {
+ background-color: var(--bg-dark);
+ color: var(--fg-main);
+ font-size: smaller;
+ padding: 0 .5rem;
+ white-space: pre-wrap;
+}
+
+
label {
display: inline-block;
border: none;
@@ -182,6 +191,7 @@ summary {
bottom: 0;
display: none;
left: 0;
+ line-height: 1.5rem;
overflow: auto;
padding: 0 1rem 1rem;
right: 0;
diff --git a/dist-demo/dist-browser/loadAndParseTwtxt.d.ts b/dist-demo/dist-browser/loadAndParseTwtxt.d.ts
index 02f5208..c681730 100644
--- a/dist-demo/dist-browser/loadAndParseTwtxt.d.ts
+++ b/dist-demo/dist-browser/loadAndParseTwtxt.d.ts
@@ -1,14 +1,2 @@
-export default function loadAndParseTwtxtFile(url?: string): Promise<{
- lastModified: string;
- following: import('./types.ts').Twttr[];
- metadata: import('./types.ts').Metadata;
- twts: {
- content: string;
- created: string;
- createdUTC: string;
- hash: string;
- replyHash: string | undefined;
- replyNick: string | undefined;
- replyUrl: string | undefined;
- }[];
-}>;
+import { Twtxt } from './types.ts';
+export default function loadAndParseTwtxtFile(url?: string): Promise;
diff --git a/dist-demo/dist-browser/parseTwtxt.d.ts b/dist-demo/dist-browser/parseTwtxt.d.ts
index 9b0a8a6..ada4b77 100644
--- a/dist-demo/dist-browser/parseTwtxt.d.ts
+++ b/dist-demo/dist-browser/parseTwtxt.d.ts
@@ -1,18 +1,6 @@
-import { Metadata, Twttr } from './types.ts';
+import { Twtxt } from './types.ts';
/**
* @param twtxt
* @returns object containing: following, metadata, twts
*/
-export default function parseTwtxt(twtxt: string): {
- following: Twttr[];
- metadata: Metadata;
- twts: {
- content: string;
- created: string;
- createdUTC: string;
- hash: string;
- replyHash: string | undefined;
- replyNick: string | undefined;
- replyUrl: string | undefined;
- }[];
-};
+export default function parseTwtxt(twtxt: string): Twtxt;
diff --git a/dist-demo/dist-browser/twtxt-lib.js.map b/dist-demo/dist-browser/twtxt-lib.js.map
index f79af3e..8bdb769 100644
--- a/dist-demo/dist-browser/twtxt-lib.js.map
+++ b/dist-demo/dist-browser/twtxt-lib.js.map
@@ -1 +1 @@
-{"version":3,"file":"twtxt-lib.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (payload: string | Uint8Array) => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\") {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","exports","Buffer","SlowBuffer","byteLength","i","code","util","require$$0","v","require$$1","charmap","blake2b","define","this","t","e","n","r","s","u","a","M","m","f","l","$","y","g","D","o","d","c","h"],"mappings":"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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA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","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
+{"version":3,"file":"twtxt-lib.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (\n\tpayload: string | Uint8Array,\n): string => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\nimport type { Twtxt } from \"./types.ts\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\"): Promise {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","exports","Buffer","SlowBuffer","byteLength","i","code","util","require$$0","v","require$$1","charmap","blake2b","define","this","t","e","n","r","s","u","a","M","m","f","l","$","y","g","D","o","d","c","h"],"mappings":"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,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA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","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
diff --git a/dist-demo/dist-browser/twtxt-lib.min.js.map b/dist-demo/dist-browser/twtxt-lib.min.js.map
index e9a216c..f4f0f81 100644
--- a/dist-demo/dist-browser/twtxt-lib.min.js.map
+++ b/dist-demo/dist-browser/twtxt-lib.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"twtxt-lib.min.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (payload: string | Uint8Array) => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\") {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","i","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","value","c","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","b","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","obj","numberIsNaN","a","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","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","defineBigIntMethod","validateNumber","first","last","boundsError","lo","__pow","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","name","range","input","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","Blob","BlobOptions","Buffer$1","File","FileOptions","INSPECT_MAX_BYTES","TranscodeEncoding","atob","btoa","constants","isAscii","isUtf8","kMaxLength","kStringMaxLength","resolveObjectURL","transcode","ERROR_MSG_INPUT","normalizeInput","toHex","uint32ToHex","debugPrint","label","testSpeed","hashFn","N","M","startMs","genMs","hashHex","hashMs","ms","util","require$$0","ADD64AA","v","o0","o1","ADD64AC","b0","b1","B2B_GET32","B2B_G","ix","iy","x0","x1","y0","y1","xor0","xor1","BLAKE2B_IV32","SIGMA8","SIGMA82","blake2bCompress","ctx","parameterBlock","blake2bInit","outlen","key","salt","personal","blake2bUpdate","blake2bFinal","blake2b","blake2bHex","blake2b_1","B2S_GET32","B2S_G","ROTR32","BLAKE2S_IV","SIGMA","blake2sCompress","blake2sInit","keylen","blake2sUpdate","blake2sFinal","blake2s","blake2sHex","blake2s_1","b2b","b2s","require$$1","blakejs","charmap","mappings","rfc4648","crockford","base32hex","Decoder","options","shift","carry","char","symbol","Encoder","byte","base32Encode","payload","base32","getValueOrFirstEntry","dateRegex","formatRFC3339","date","pad","padYear","hashTwt","twt","created","t","module","this","r","o","f","h","l","$","u","g","D","p","S","_","w","O","k","dayjs","utc","parseTwtxt","twtxt","allLines","commentLines","contentLines","acc","originalLine","line","following","metadata","vals","field","nick","url","replyRegEx","twts","_a","content","createdDayjs","createdUTC","replyMatches","replyHash","replyNick","replyUrl","hash","loadAndParseTwtxtFile","__async","response","twtxtFile","lastModified","__spreadProps","__spreadValues","err"],"mappings":"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;AAGA,QAAMoL,IAAa,IAAI,YAAY;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACD,GAEKC,IAAQ,IAAI,WAAW;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA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","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
+{"version":3,"file":"twtxt-lib.min.js","sources":["../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@exodus/blakejs/util.js","../node_modules/@exodus/blakejs/blake2b.js","../node_modules/@exodus/blakejs/blake2s.js","../node_modules/@exodus/blakejs/index.js","../node_modules/base32.js/base32.js","../src/utils.ts","../src/hashTwt.ts","../node_modules/dayjs/dayjs.min.js","../node_modules/dayjs/plugin/utc.js","../src/parseTwtxt.ts","../src/loadAndParseTwtxt.ts"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.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\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n\nieee754.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\nieee754.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/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n let ret\n if (input instanceof Uint8Array) {\n ret = input\n } else if (input instanceof Buffer) {\n ret = new Uint8Array(input)\n } else if (typeof input === 'string') {\n ret = new Uint8Array(Buffer.from(input, 'utf8'))\n } else {\n throw new Error(ERROR_MSG_INPUT)\n }\n return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n return Array.prototype.map\n .call(bytes, function (n) {\n return (n < 16 ? '0' : '') + n.toString(16)\n })\n .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n let msg = '\\n' + label + ' = '\n for (let i = 0; i < arr.length; i += 2) {\n if (size === 32) {\n msg += uint32ToHex(arr[i]).toUpperCase()\n msg += ' '\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n } else if (size === 64) {\n msg += uint32ToHex(arr[i + 1]).toUpperCase()\n msg += uint32ToHex(arr[i]).toUpperCase()\n } else throw new Error('Invalid size ' + size)\n if (i % 6 === 4) {\n msg += '\\n' + new Array(label.length + 4).join(' ')\n } else if (i < arr.length - 2) {\n msg += ' '\n }\n }\n console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n let startMs = new Date().getTime()\n\n const input = new Uint8Array(N)\n for (let i = 0; i < N; i++) {\n input[i] = i % 256\n }\n const genMs = new Date().getTime()\n console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n startMs = genMs\n\n for (let i = 0; i < M; i++) {\n const hashHex = hashFn(input)\n const hashMs = new Date().getTime()\n const ms = hashMs - startMs\n startMs = hashMs\n console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n console.log(\n Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n )\n }\n}\n\nmodule.exports = {\n normalizeInput: normalizeInput,\n toHex: toHex,\n debugPrint: debugPrint,\n testSpeed: testSpeed\n}\n","// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n const o0 = v[a] + v[b]\n let o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n let o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n let o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n const x0 = m[ix]\n const x1 = m[ix + 1]\n const y0 = m[iy]\n const y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n let xor0 = v[d] ^ v[a]\n let xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n 0xf3bcc908,\n 0x6a09e667,\n 0x84caa73b,\n 0xbb67ae85,\n 0xfe94f82b,\n 0x3c6ef372,\n 0x5f1d36f1,\n 0xa54ff53a,\n 0xade682d1,\n 0x510e527f,\n 0x2b3e6c1f,\n 0x9b05688c,\n 0xfb41bd6b,\n 0x1f83d9ab,\n 0x137e2179,\n 0x5be0cd19\n])\n\nconst SIGMA8 = [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0,\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n SIGMA8.map(function (x) {\n return x * 2\n })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n let i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 64)\n for (i = 0; i < 12; i++) {\n // util.debugPrint(' (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n // util.debugPrint(' (i=12) v[16]', v, 64)\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nvar parameterBlock = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n if (outlen === 0 || outlen > 64) {\n throw new Error('Illegal output length, expected 0 < length <= 64')\n }\n if (key && key.length > 64) {\n throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n }\n if (salt && salt.length !== 16) {\n throw new Error('Illegal salt, expected Uint8Array with length is 16')\n }\n if (personal && personal.length !== 16) {\n throw new Error('Illegal personal, expected Uint8Array with length is 16')\n }\n\n // state, 'param block'\n const ctx = {\n b: new Uint8Array(128),\n h: new Uint32Array(16),\n t: 0, // input count\n c: 0, // pointer within buffer\n outlen: outlen // output length in bytes\n }\n\n // zero out parameterBlock before usage\n parameterBlock.fill(0)\n parameterBlock[0] = outlen\n if (key) parameterBlock[1] = key.length\n parameterBlock[2] = 1 // fanout\n parameterBlock[3] = 1 // depth\n\n if (salt) parameterBlock.set(salt, 32)\n if (personal) parameterBlock.set(personal, 48)\n\n // initialize hash state\n for (let i = 0; i < 16; i++) {\n ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(ctx, key)\n // at the end\n ctx.c = 128\n }\n\n return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 128) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n // preprocess inputs\n outlen = outlen || 64\n input = util.normalizeInput(input)\n if (salt) {\n salt = util.normalizeInput(salt)\n }\n if (personal) {\n personal = util.normalizeInput(personal)\n }\n\n // do the math\n const ctx = blake2bInit(outlen, key, salt, personal)\n blake2bUpdate(ctx, input)\n return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n const output = blake2b(input, key, outlen, salt, personal)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2b: blake2b,\n blake2bHex: blake2bHex,\n blake2bInit: blake2bInit,\n blake2bUpdate: blake2bUpdate,\n blake2bFinal: blake2bFinal\n}\n","// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = require('./util')\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n v[a] = v[a] + v[b] + x\n v[d] = ROTR32(v[d] ^ v[a], 16)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 12)\n v[a] = v[a] + v[b] + y\n v[d] = ROTR32(v[d] ^ v[a], 8)\n v[c] = v[c] + v[d]\n v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 14,\n 10,\n 4,\n 8,\n 9,\n 15,\n 13,\n 6,\n 1,\n 12,\n 0,\n 2,\n 11,\n 7,\n 5,\n 3,\n 11,\n 8,\n 12,\n 0,\n 5,\n 2,\n 15,\n 13,\n 10,\n 14,\n 3,\n 6,\n 7,\n 1,\n 9,\n 4,\n 7,\n 9,\n 3,\n 1,\n 13,\n 12,\n 11,\n 14,\n 2,\n 6,\n 5,\n 10,\n 4,\n 0,\n 15,\n 8,\n 9,\n 0,\n 5,\n 7,\n 2,\n 4,\n 10,\n 15,\n 14,\n 1,\n 11,\n 12,\n 6,\n 8,\n 3,\n 13,\n 2,\n 12,\n 6,\n 10,\n 0,\n 11,\n 8,\n 3,\n 4,\n 13,\n 7,\n 5,\n 15,\n 14,\n 1,\n 9,\n 12,\n 5,\n 1,\n 15,\n 14,\n 13,\n 4,\n 10,\n 0,\n 7,\n 6,\n 3,\n 9,\n 2,\n 8,\n 11,\n 13,\n 11,\n 7,\n 14,\n 12,\n 1,\n 3,\n 9,\n 5,\n 0,\n 15,\n 4,\n 8,\n 6,\n 2,\n 10,\n 6,\n 15,\n 14,\n 9,\n 11,\n 3,\n 0,\n 8,\n 12,\n 2,\n 13,\n 7,\n 1,\n 4,\n 10,\n 5,\n 10,\n 2,\n 8,\n 4,\n 7,\n 6,\n 1,\n 5,\n 15,\n 11,\n 9,\n 14,\n 3,\n 12,\n 13,\n 0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n let i = 0\n for (i = 0; i < 8; i++) {\n // init work variables\n v[i] = ctx.h[i]\n v[i + 8] = BLAKE2S_IV[i]\n }\n\n v[12] ^= ctx.t // low 32 bits of offset\n v[13] ^= ctx.t / 0x100000000 // high 32 bits\n if (last) {\n // last block flag set ?\n v[14] = ~v[14]\n }\n\n for (i = 0; i < 16; i++) {\n // get little-endian words\n m[i] = B2S_GET32(ctx.b, 4 * i)\n }\n\n // ten rounds of mixing\n // uncomment the DebugPrint calls to log the computation\n // and match the RFC sample documentation\n // util.debugPrint(' m[16]', m, 32)\n for (i = 0; i < 10; i++) {\n // util.debugPrint(' (i=' + i + ') v[16]', v, 32)\n B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n }\n // util.debugPrint(' (i=10) v[16]', v, 32)\n\n for (i = 0; i < 8; i++) {\n ctx.h[i] ^= v[i] ^ v[i + 8]\n }\n // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n if (!(outlen > 0 && outlen <= 32)) {\n throw new Error('Incorrect output length, should be in [1, 32]')\n }\n const keylen = key ? key.length : 0\n if (key && !(keylen > 0 && keylen <= 32)) {\n throw new Error('Incorrect key length, should be in [1, 32]')\n }\n\n const ctx = {\n h: new Uint32Array(BLAKE2S_IV), // hash state\n b: new Uint8Array(64), // input block\n c: 0, // pointer within block\n t: 0, // input count\n outlen: outlen // output length in bytes\n }\n ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n if (keylen > 0) {\n blake2sUpdate(ctx, key)\n ctx.c = 64 // at the end\n }\n\n return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n for (let i = 0; i < input.length; i++) {\n if (ctx.c === 64) {\n // buffer full ?\n ctx.t += ctx.c // add counters\n blake2sCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n ctx.t += ctx.c // mark last block offset\n while (ctx.c < 64) {\n // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2sCompress(ctx, true) // final block flag = 1\n\n // little endian convert and store\n const out = new Uint8Array(ctx.outlen)\n for (let i = 0; i < ctx.outlen; i++) {\n out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n }\n return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n // preprocess inputs\n outlen = outlen || 32\n input = util.normalizeInput(input)\n\n // do the math\n const ctx = blake2sInit(outlen, key)\n blake2sUpdate(ctx, input)\n return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n const output = blake2s(input, key, outlen)\n return util.toHex(output)\n}\n\nmodule.exports = {\n blake2s: blake2s,\n blake2sHex: blake2sHex,\n blake2sInit: blake2sInit,\n blake2sUpdate: blake2sUpdate,\n blake2sFinal: blake2sFinal\n}\n","const b2b = require('./blake2b')\nconst b2s = require('./blake2s')\n\nmodule.exports = {\n blake2b: b2b.blake2b,\n blake2bHex: b2b.blake2bHex,\n blake2bInit: b2b.blake2bInit,\n blake2bUpdate: b2b.blake2bUpdate,\n blake2bFinal: b2b.blake2bFinal,\n blake2s: b2s.blake2s,\n blake2sHex: b2s.blake2sHex,\n blake2sInit: b2s.blake2sInit,\n blake2sUpdate: b2s.blake2sUpdate,\n blake2sFinal: b2s.blake2sFinal\n}\n","\"use strict\";\n\n/**\n * Generate a character map.\n * @param {string} alphabet e.g. \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\"\n * @param {object} mappings map overrides from key to value\n * @method\n */\n\nvar charmap = function (alphabet, mappings) {\n mappings || (mappings = {});\n alphabet.split(\"\").forEach(function (c, i) {\n if (!(c in mappings)) mappings[c] = i;\n });\n return mappings;\n}\n\n/**\n * The RFC 4648 base 32 alphabet and character map.\n * @see {@link https://tools.ietf.org/html/rfc4648}\n */\n\nvar rfc4648 = {\n alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n charmap: {\n 0: 14,\n 1: 8\n }\n};\n\nrfc4648.charmap = charmap(rfc4648.alphabet, rfc4648.charmap);\n\n/**\n * The Crockford base 32 alphabet and character map.\n * @see {@link http://www.crockford.com/wrmg/base32.html}\n */\n\nvar crockford = {\n alphabet: \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\",\n charmap: {\n O: 0,\n I: 1,\n L: 1\n }\n};\n\ncrockford.charmap = charmap(crockford.alphabet, crockford.charmap);\n\n/**\n * base32hex\n * @see {@link https://en.wikipedia.org/wiki/Base32#base32hex}\n */\n\nvar base32hex = {\n alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n charmap: {}\n};\n\nbase32hex.charmap = charmap(base32hex.alphabet, base32hex.charmap);\n\n/**\n * Create a new `Decoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [charmap] Override the character map used in decoding.\n * @constructor\n */\n\nfunction Decoder (options) {\n this.buf = [];\n this.shift = 8;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.charmap = exports.rfc4648.charmap;\n break;\n case \"crockford\":\n this.charmap = exports.crockford.charmap;\n break;\n case \"base32hex\":\n this.charmap = exports.base32hex.charmap;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.charmap) this.charmap = options.charmap;\n }\n}\n\n/**\n * The default character map coresponds to RFC4648.\n */\n\nDecoder.prototype.charmap = rfc4648.charmap;\n\n/**\n * Decode a string, continuing from the previous state.\n *\n * @param {string} str\n * @return {Decoder} this\n */\n\nDecoder.prototype.write = function (str) {\n var charmap = this.charmap;\n var buf = this.buf;\n var shift = this.shift;\n var carry = this.carry;\n\n // decode string\n str.toUpperCase().split(\"\").forEach(function (char) {\n\n // ignore padding\n if (char == \"=\") return;\n\n // lookup symbol\n var symbol = charmap[char] & 0xff;\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n shift -= 5;\n if (shift > 0) {\n carry |= symbol << shift;\n } else if (shift < 0) {\n buf.push(carry | (symbol >> -shift));\n shift += 8;\n carry = (symbol << shift) & 0xff;\n } else {\n buf.push(carry | symbol);\n shift = 8;\n carry = 0;\n }\n });\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish decoding.\n *\n * @param {string} [str] The final string to decode.\n * @return {Array} Decoded byte array.\n */\n\nDecoder.prototype.finalize = function (str) {\n if (str) {\n this.write(str);\n }\n if (this.shift !== 8 && this.carry !== 0) {\n this.buf.push(this.carry);\n this.shift = 8;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Create a new `Encoder` with the given options.\n *\n * @param {object} [options]\n * @param {string} [type] Supported Base-32 variants are \"rfc4648\" and\n * \"crockford\".\n * @param {object} [alphabet] Override the alphabet used in encoding.\n * @constructor\n */\n\nfunction Encoder (options) {\n this.buf = \"\";\n this.shift = 3;\n this.carry = 0;\n\n if (options) {\n\n switch (options.type) {\n case \"rfc4648\":\n this.alphabet = exports.rfc4648.alphabet;\n break;\n case \"crockford\":\n this.alphabet = exports.crockford.alphabet;\n break;\n case \"base32hex\":\n this.alphabet = exports.base32hex.alphabet;\n break;\n default:\n throw new Error(\"invalid type\");\n }\n\n if (options.alphabet) this.alphabet = options.alphabet;\n else if (options.lc) this.alphabet = this.alphabet.toLowerCase();\n }\n}\n\n/**\n * The default alphabet coresponds to RFC4648.\n */\n\nEncoder.prototype.alphabet = rfc4648.alphabet;\n\n/**\n * Encode a byte array, continuing from the previous state.\n *\n * @param {byte[]} buf The byte array to encode.\n * @return {Encoder} this\n */\n\nEncoder.prototype.write = function (buf) {\n var shift = this.shift;\n var carry = this.carry;\n var symbol;\n var byte;\n var i;\n\n // encode each byte in buf\n for (i = 0; i < buf.length; i++) {\n byte = buf[i];\n\n // 1: 00000 000\n // 2: 00 00000 0\n // 3: 0000 0000\n // 4: 0 00000 00\n // 5: 000 00000\n // 6: 00000 000\n // 7: 00 00000 0\n\n symbol = carry | (byte >> shift);\n this.buf += this.alphabet[symbol & 0x1f];\n\n if (shift > 5) {\n shift -= 5;\n symbol = byte >> shift;\n this.buf += this.alphabet[symbol & 0x1f];\n }\n\n shift = 5 - shift;\n carry = byte << shift;\n shift = 8 - shift;\n }\n\n // save state\n this.shift = shift;\n this.carry = carry;\n\n // for chaining\n return this;\n};\n\n/**\n * Finish encoding.\n *\n * @param {byte[]} [buf] The final byte array to encode.\n * @return {string} The encoded byte array.\n */\n\nEncoder.prototype.finalize = function (buf) {\n if (buf) {\n this.write(buf);\n }\n if (this.shift !== 3) {\n this.buf += this.alphabet[this.carry & 0x1f];\n this.shift = 3;\n this.carry = 0;\n }\n return this.buf;\n};\n\n/**\n * Convenience encoder.\n *\n * @param {byte[]} buf The byte array to encode.\n * @param {object} [options] Options to pass to the encoder.\n * @return {string} The encoded string.\n */\n\nexports.encode = function (buf, options) {\n return new Encoder(options).finalize(buf);\n};\n\n/**\n * Convenience decoder.\n *\n * @param {string} str The string to decode.\n * @param {object} [options] Options to pass to the decoder.\n * @return {byte[]} The decoded byte array.\n */\n\nexports.decode = function (str, options) {\n return new Decoder(options).finalize(str);\n};\n\n// Exports.\nexports.Decoder = Decoder;\nexports.Encoder = Encoder;\nexports.charmap = charmap;\nexports.crockford = crockford;\nexports.rfc4648 = rfc4648;\nexports.base32hex = base32hex;\n","import base32 from \"base32.js\";\n\nexport const base32Encode = (\n\tpayload: string | Uint8Array,\n): string => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n","import { Buffer } from \"buffer\";\nglobalThis.Buffer = Buffer;\n\nimport type { Twt } from \"./types.ts\";\n\nimport { blake2b } from \"@exodus/blakejs\";\n\nimport { base32Encode } from \"./utils.ts\";\n\nconst dateRegex =\n\t/^(\\d{4})-(\\d{2})-(\\d{2})([tT ])(\\d{2}):(\\d{2}):(\\d{2})\\.?(\\d{3})?(?:(?:([+-]\\d{2}):?(\\d{2}))|Z)?$/;\n\nconst formatRFC3339 = (date: string) => {\n\tconst pad = (num: number | string = 0) => `${+num < 10 ? 0 : \"\"}${+num}`;\n\tconst padYear = (num: number | string = 0) =>\n\t\t`${+num < 1000 ? 0 : \"\"}${+num < 100 ? 0 : \"\"}${\n\t\t\t+num < 10 ? 0 : \"\"\n\t\t}${+num}`;\n\n\tlet m = dateRegex.exec(date);\n\n\t//if timezone is undefined, it must be Z or nothing (otherwise the group would have captured).\n\tif (m && m?.[9] === undefined) {\n\t\t//Use UTC.\n\t\tm[9] = \"+00\";\n\t}\n\tif (m && m?.[10] === undefined) {\n\t\tm[10] = \"00\";\n\t}\n\n\tconst offset = `${m?.[9]}:${m?.[10]}`.replace(/[+-]?00:00$/, \"Z\");\n\n\treturn [\n\t\tpadYear(m?.[1]),\n\t\t\"-\",\n\t\tpad(m?.[2]),\n\t\t\"-\",\n\t\tpad(m?.[3]),\n\t\tm?.[4],\n\t\tpad(m?.[5]),\n\t\t\":\",\n\t\tpad(m?.[6]),\n\t\t\":\",\n\t\tpad(m?.[7]),\n\t\t//ignore milliseconds (m[8])\n\t\toffset,\n\t].join(\"\");\n};\n\nexport default function hashTwt(twt: Twt): string {\n\tconst created = formatRFC3339(twt.created);\n\tconst payload = [twt.url, created, twt.content].join(\"\\n\");\n\n\treturn base32Encode(blake2b(payload, undefined, 32))\n\t\t.toLowerCase()\n\t\t.slice(-7);\n}\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t) {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n","import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\nimport type { Twtxt } from \"./types.ts\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\"): Promise {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","i","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","value","c","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","b","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","obj","numberIsNaN","a","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","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","defineBigIntMethod","validateNumber","first","last","boundsError","lo","__pow","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","name","range","input","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","Blob","BlobOptions","Buffer$1","File","FileOptions","INSPECT_MAX_BYTES","TranscodeEncoding","atob","btoa","constants","isAscii","isUtf8","kMaxLength","kStringMaxLength","resolveObjectURL","transcode","ERROR_MSG_INPUT","normalizeInput","toHex","uint32ToHex","debugPrint","label","testSpeed","hashFn","N","M","startMs","genMs","hashHex","hashMs","ms","util","require$$0","ADD64AA","v","o0","o1","ADD64AC","b0","b1","B2B_GET32","B2B_G","ix","iy","x0","x1","y0","y1","xor0","xor1","BLAKE2B_IV32","SIGMA8","SIGMA82","blake2bCompress","ctx","parameterBlock","blake2bInit","outlen","key","salt","personal","blake2bUpdate","blake2bFinal","blake2b","blake2bHex","blake2b_1","B2S_GET32","B2S_G","ROTR32","BLAKE2S_IV","SIGMA","blake2sCompress","blake2sInit","keylen","blake2sUpdate","blake2sFinal","blake2s","blake2sHex","blake2s_1","b2b","b2s","require$$1","blakejs","charmap","mappings","rfc4648","crockford","base32hex","Decoder","options","shift","carry","char","symbol","Encoder","byte","base32Encode","payload","base32","getValueOrFirstEntry","dateRegex","formatRFC3339","date","pad","padYear","hashTwt","twt","created","t","module","this","r","o","f","h","l","$","u","g","D","p","S","_","w","O","k","dayjs","utc","parseTwtxt","twtxt","allLines","commentLines","contentLines","acc","originalLine","line","following","metadata","vals","field","nick","url","replyRegEx","twts","_a","content","createdDayjs","createdUTC","replyMatches","replyHash","replyNick","replyUrl","hash","loadAndParseTwtxtFile","__async","response","twtxtFile","lastModified","__spreadProps","__spreadValues","err"],"mappings":"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;AAGA,QAAMoL,IAAa,IAAI,YAAY;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,GACD,GAEKC,IAAQ,IAAI,WAAW;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA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","x_google_ignoreList":[0,1,2,3,4,5,8,9]}
\ No newline at end of file
diff --git a/dist-demo/dist-browser/types.d.ts b/dist-demo/dist-browser/types.d.ts
index 621a657..40a0b44 100644
--- a/dist-demo/dist-browser/types.d.ts
+++ b/dist-demo/dist-browser/types.d.ts
@@ -26,6 +26,7 @@ export interface Twttr {
}
export interface Twtxt {
following: Twttr[];
+ lastModified?: string;
metadata: Metadata;
twts: Twt[];
}
diff --git a/dist-demo/dist-browser/utils.d.ts b/dist-demo/dist-browser/utils.d.ts
index ae257be..cfcd0df 100644
--- a/dist-demo/dist-browser/utils.d.ts
+++ b/dist-demo/dist-browser/utils.d.ts
@@ -1,2 +1,2 @@
-export declare const base32Encode: (payload: string | Uint8Array) => any;
+export declare const base32Encode: (payload: string | Uint8Array) => string;
export declare const getValueOrFirstEntry: (value: unknown | unknown[]) => any;
diff --git a/dist-demo/favicon-16x16.png b/dist-demo/favicon-16x16.png
new file mode 100644
index 0000000..03f1088
Binary files /dev/null and b/dist-demo/favicon-16x16.png differ
diff --git a/dist-demo/favicon-32x32.png b/dist-demo/favicon-32x32.png
new file mode 100644
index 0000000..d10b8b2
Binary files /dev/null and b/dist-demo/favicon-32x32.png differ
diff --git a/dist-demo/favicon.ico b/dist-demo/favicon.ico
new file mode 100644
index 0000000..03f1088
Binary files /dev/null and b/dist-demo/favicon.ico differ
diff --git a/dist-demo/index.html b/dist-demo/index.html
index 9b52c7f..c5bea2c 100644
--- a/dist-demo/index.html
+++ b/dist-demo/index.html
@@ -4,6 +4,9 @@
twtxt-lib Demo
+
+
+
@@ -47,32 +50,65 @@
ES6+ library for the browser ,
with NPM and JSR versions coming soon.
Fully typed and source-mapped.
- ESM (and ESM only )
+ Built as an ES6 module (and ESM only )
Includes an interactive demo (you're looking at it) .
+
Installation
-
- Browser
-
- Download library (or
- minified version ).
- Import desired function(s) into your project: `import { hashTwt, loadAndParseTwtxtFile } from "./twtxt-lib.js"`
-
-
-
- JSR
-
-
-
- NPM
-
-
+ This library can be installed in several different ways:
+
+ For the Browser
+
+
+
+ Grab the latest copy of the twtxt-lib.js file, either by
+ downloading it from the
+ git
+ repo , the
+ website , or doing a
+ git clone https://git.itsericwoodward.com/eric/twtxt-lib.git
+ and pulling it out of the dist-browser folder.
+
+
+ Alternatively, you can grab the minified version from the
+ same
+ sources .
+
+
+
+
+ Add the newly acquired file to your static site / progressive web app /
+ over-engineered blog.
+
+
+ Import the desired function(s) via ESM:
+ import { hashTwt, loadAndParseTwtxtFile } from "./twtxt-lib.js";
+
+
+
+ For Node
+
+
+
+ Add the package to your project.
+
+
+ Via NPM :
+ yarn add twtxt-lib
+
+
+ Via JSR :
+ yarn add jsr:@itsericwoodward/twtxt-lib
+
+
+
+
+ Import the desired function(s) into your code:
+ import { hashTwt, loadAndParseTwtxtFile } from "twtxt-lib";
+
+
Use the tabs to learn more.
diff --git a/dist-node/loadAndParseTwtxt.d.ts b/dist-node/loadAndParseTwtxt.d.ts
index 02f5208..c681730 100644
--- a/dist-node/loadAndParseTwtxt.d.ts
+++ b/dist-node/loadAndParseTwtxt.d.ts
@@ -1,14 +1,2 @@
-export default function loadAndParseTwtxtFile(url?: string): Promise<{
- lastModified: string;
- following: import('./types.ts').Twttr[];
- metadata: import('./types.ts').Metadata;
- twts: {
- content: string;
- created: string;
- createdUTC: string;
- hash: string;
- replyHash: string | undefined;
- replyNick: string | undefined;
- replyUrl: string | undefined;
- }[];
-}>;
+import { Twtxt } from './types.ts';
+export default function loadAndParseTwtxtFile(url?: string): Promise;
diff --git a/dist-node/loadAndParseTwtxt.js.map b/dist-node/loadAndParseTwtxt.js.map
index 0b2c74e..d415f1b 100644
--- a/dist-node/loadAndParseTwtxt.js.map
+++ b/dist-node/loadAndParseTwtxt.js.map
@@ -1 +1 @@
-{"version":3,"file":"loadAndParseTwtxt.js","sources":["../src/loadAndParseTwtxt.ts"],"sourcesContent":["import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\") {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":[],"mappings":";;AAIA,eAA8B,sBAAsB,MAAM,IAAI;AAC7D,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iBAAiB;AAE3C,MAAI;AACH,UAAM,WAAW,MAAM,MAAM,GAAG;AAChC,UAAM,YAAY,MAAM,SAAS,KAAA;AACjC,UAAM,eAAe;AAAA,MACpB,SAAS,QAAQ,IAAI,eAAe;AAAA,IAAA,EACnC,YAAA;AAEF,WAAO;AAAA,MACN,GAAG,WAAW,SAAS;AAAA,MACvB;AAAA,IAAA;AAAA,EAEF,SAAS,KAAK;AACb,YAAQ,MAAM,GAAG;AACjB,UAAM;AAAA,EACP;AACD;"}
\ No newline at end of file
+{"version":3,"file":"loadAndParseTwtxt.js","sources":["../src/loadAndParseTwtxt.ts"],"sourcesContent":["import dayjs from \"dayjs\";\n\nimport parseTwtxt from \"./parseTwtxt.js\";\nimport type { Twtxt } from \"./types.ts\";\n\nexport default async function loadAndParseTwtxtFile(url = \"\"): Promise {\n\tif (!url) throw new Error(\"URL is required\");\n\n\ttry {\n\t\tconst response = await fetch(url);\n\t\tconst twtxtFile = await response.text();\n\t\tconst lastModified = dayjs(\n\t\t\tresponse.headers.get(\"Last-Modified\"),\n\t\t).toISOString();\n\n\t\treturn {\n\t\t\t...parseTwtxt(twtxtFile),\n\t\t\tlastModified,\n\t\t};\n\t} catch (err) {\n\t\tconsole.error(err);\n\t\tthrow err;\n\t}\n}\n"],"names":[],"mappings":";;AAKA,eAA8B,sBAAsB,MAAM,IAAoB;AAC7E,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,iBAAiB;AAE3C,MAAI;AACH,UAAM,WAAW,MAAM,MAAM,GAAG;AAChC,UAAM,YAAY,MAAM,SAAS,KAAA;AACjC,UAAM,eAAe;AAAA,MACpB,SAAS,QAAQ,IAAI,eAAe;AAAA,IAAA,EACnC,YAAA;AAEF,WAAO;AAAA,MACN,GAAG,WAAW,SAAS;AAAA,MACvB;AAAA,IAAA;AAAA,EAEF,SAAS,KAAK;AACb,YAAQ,MAAM,GAAG;AACjB,UAAM;AAAA,EACP;AACD;"}
\ No newline at end of file
diff --git a/dist-node/parseTwtxt.d.ts b/dist-node/parseTwtxt.d.ts
index 9b0a8a6..ada4b77 100644
--- a/dist-node/parseTwtxt.d.ts
+++ b/dist-node/parseTwtxt.d.ts
@@ -1,18 +1,6 @@
-import { Metadata, Twttr } from './types.ts';
+import { Twtxt } from './types.ts';
/**
* @param twtxt
* @returns object containing: following, metadata, twts
*/
-export default function parseTwtxt(twtxt: string): {
- following: Twttr[];
- metadata: Metadata;
- twts: {
- content: string;
- created: string;
- createdUTC: string;
- hash: string;
- replyHash: string | undefined;
- replyNick: string | undefined;
- replyUrl: string | undefined;
- }[];
-};
+export default function parseTwtxt(twtxt: string): Twtxt;
diff --git a/dist-node/parseTwtxt.js.map b/dist-node/parseTwtxt.js.map
index ac5a960..6f46e6f 100644
--- a/dist-node/parseTwtxt.js.map
+++ b/dist-node/parseTwtxt.js.map
@@ -1 +1 @@
-{"version":3,"file":"parseTwtxt.js","sources":["../src/parseTwtxt.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc.js\";\n\nimport type { Metadata, Twttr } from \"./types.ts\";\n\nimport hashTwt from \"./hashTwt.js\";\nimport { getValueOrFirstEntry } from \"./utils.ts\";\n\ndayjs.extend(utc);\n\n/**\n * @param twtxt\n * @returns object containing: following, metadata, twts\n */\nexport default function parseTwtxt(twtxt: string) {\n\tconst allLines = twtxt.split(\"\\n\");\n\n\tconst { commentLines = [], contentLines = [] } = allLines.reduce(\n\t\t(\n\t\t\tacc: {\n\t\t\t\tcommentLines: string[];\n\t\t\t\tcontentLines: string[];\n\t\t\t},\n\t\t\toriginalLine,\n\t\t) => {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n"],"names":[],"mappings":";;;;AAQA,MAAM,OAAO,GAAG;AAMhB,SAAwB,WAAW,OAAe;AACjD,QAAM,WAAW,MAAM,MAAM,IAAI;AAEjC,QAAM,EAAE,eAAe,CAAA,GAAI,eAAe,CAAA,EAAC,IAAM,SAAS;AAAA,IACzD,CACC,KAIA,iBACI;AACJ,YAAM,OAAO,aAAa,KAAA;AAC1B,UAAI,SAAS,GAAI,QAAO;AAExB,UAAI,KAAK,WAAW,GAAG,EAAG,KAAI,aAAa,KAAK,IAAI;AAAA,UAC/C,KAAI,aAAa,KAAK,IAAI;AAC/B,aAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,IAAC;AAAA,EAChB;AAGD,QAAM,EAAE,YAAY,CAAA,GAAI,WAAW,CAAA,EAAC,IAAM,aACxC,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,CAAC,EACnC;AAAA,IACA,CACC,KAIA,SACI;AACJ,YAAM,CAAC,KAAK,GAAG,IAAI,IAAI,KAErB,UAAU,CAAC,EACX,MAAM,GAAG,EACT,IAAI,CAAC,UAAU,MAAM,MAAM;AAC7B,YAAM,MAAM,KAAK,KAAK,GAAG;AACzB,UAAI,QAAQ,UAAU;AACrB,cAAM,CAAC,MAAM,GAAG,IAAI,IAAI,KAAA,EAAO,MAAM,KAAK;AAC1C,YAAI,UAAU,KAAK,EAAE,MAAM,KAAK;AAAA,MACjC,OAAO;AACN,YAAI,IAAI,SAAS,GAAG,GAAG;AACtB,cAAI,CAAC,MAAM,QAAQ,IAAI,SAAS,GAAG,CAAC;AACnC,gBAAI,SAAS,GAAG,IAAI,CAAC,IAAI,SAAS,GAAG,GAAG,GAAG;AAAA,cACvC,KAAI,SAAS,GAAG,EAAE,KAAK,GAAG;AAAA,QAChC,MAAO,KAAI,SAAS,GAAG,IAAI;AAAA,MAC5B;AACA,aAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,WAAW,CAAA;AAAA,MACX,UAAU,CAAA;AAAA,IAAC;AAAA,EACZ;AAGF,QAAM,aAAa;AAEnB,QAAM,OAAO,aACX,IAAI,CAAC,SAAS;AACd,UAAM,CAAC,SAAS,OAAO,IAAI,KACzB,MAAM,IAAI,EACV,IAAI,CAAC,QAAQ,IAAI,MAAM;AAEzB,QAAI,OAAO,YAAY;AACtB,YAAM,IAAI,MAAM,yBAAyB,IAAI,EAAE;AAEhD,UAAM,eAAe,MAAM,IAAI,OAAO;AACtC,QAAI,CAAC,aAAa,QAAA;AACjB,YAAM,IAAI,MAAM,oBAAoB,IAAI,EAAE;AAE3C,UAAM,aAAa,aAAa,YAAA;AAEhC,UAAM,eAAe,WAAW,KAAK,OAAO;AAC5C,QAAI,WAAW,WAAW;AAE1B,QAAI,cAAc,QAAQ;AACzB,kBAAY,eAAe,CAAC;AAC5B,kBAAY,eAAe,CAAC;AAC5B,iBAAW,eAAe,CAAC;AAAA,IAC5B;AAEA,UAAM,OAAO,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,qBAAqB,UAAU,OAAO,EAAE;AAAA,IAAA,CAC7C;AAED,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEF,CAAC,EACA,KAAK,CAAC,GAAG,MAAM,MAAM,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;"}
\ No newline at end of file
+{"version":3,"file":"parseTwtxt.js","sources":["../src/parseTwtxt.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc.js\";\n\nimport type { Metadata, Twttr, Twtxt } from \"./types.ts\";\n\nimport hashTwt from \"./hashTwt.js\";\nimport { getValueOrFirstEntry } from \"./utils.ts\";\n\ndayjs.extend(utc);\n\n/**\n * @param twtxt\n * @returns object containing: following, metadata, twts\n */\nexport default function parseTwtxt(twtxt: string): Twtxt {\n\tconst allLines = twtxt.split(\"\\n\");\n\n\tconst { commentLines = [], contentLines = [] } = allLines.reduce(\n\t\t(\n\t\t\tacc: {\n\t\t\t\tcommentLines: string[];\n\t\t\t\tcontentLines: string[];\n\t\t\t},\n\t\t\toriginalLine,\n\t\t) => {\n\t\t\tconst line = originalLine.trim();\n\t\t\tif (line === \"\") return acc;\n\n\t\t\tif (line.startsWith(\"#\")) acc.commentLines.push(line);\n\t\t\telse acc.contentLines.push(line);\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\tcommentLines: [],\n\t\t\tcontentLines: [],\n\t\t},\n\t);\n\n\tconst { following = [], metadata = {} } = commentLines\n\t\t.filter((line) => line.includes(\"=\"))\n\t\t.reduce(\n\t\t\t(\n\t\t\t\tacc: {\n\t\t\t\t\tfollowing: Twttr[];\n\t\t\t\t\tmetadata: Metadata;\n\t\t\t\t},\n\t\t\t\tline,\n\t\t\t) => {\n\t\t\t\tconst [key, ...vals] = line\n\t\t\t\t\t// remove #\n\t\t\t\t\t.substring(1)\n\t\t\t\t\t.split(\"=\")\n\t\t\t\t\t.map((field) => field.trim());\n\t\t\t\tconst val = vals.join(\"=\");\n\t\t\t\tif (key === \"follow\") {\n\t\t\t\t\tconst [nick, url] = val.trim().split(/\\s+/);\n\t\t\t\t\tacc.following.push({ nick, url });\n\t\t\t\t} else {\n\t\t\t\t\tif (acc.metadata[key]) {\n\t\t\t\t\t\tif (!Array.isArray(acc.metadata[key]))\n\t\t\t\t\t\t\tacc.metadata[key] = [acc.metadata[key], val];\n\t\t\t\t\t\telse acc.metadata[key].push(val);\n\t\t\t\t\t} else acc.metadata[key] = val;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{\n\t\t\t\tfollowing: [],\n\t\t\t\tmetadata: {},\n\t\t\t},\n\t\t);\n\n\tconst replyRegEx = /\\(#([\\w]+)\\) (\\<\\@(\\S+) ([^>]+)>)*/;\n\n\tconst twts = contentLines\n\t\t.map((line) => {\n\t\t\tconst [created, content] = line\n\t\t\t\t.split(/\\t/)\n\t\t\t\t.map((val) => val.trim());\n\n\t\t\tif (typeof content === \"undefined\")\n\t\t\t\tthrow new Error(`Content is undefined: ${line}`);\n\n\t\t\tconst createdDayjs = dayjs.utc(created);\n\t\t\tif (!createdDayjs.isValid())\n\t\t\t\tthrow new Error(`Date is invalid: ${line}`);\n\n\t\t\tconst createdUTC = createdDayjs.toISOString();\n\n\t\t\tconst replyMatches = replyRegEx.exec(content);\n\t\t\tlet replyHash, replyNick, replyUrl;\n\n\t\t\tif (replyMatches?.length) {\n\t\t\t\treplyHash = replyMatches?.[1];\n\t\t\t\treplyNick = replyMatches?.[3];\n\t\t\t\treplyUrl = replyMatches?.[4];\n\t\t\t}\n\n\t\t\tconst hash = hashTwt({\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\turl: getValueOrFirstEntry(metadata?.url ?? \"\"),\n\t\t\t});\n\n\t\t\treturn {\n\t\t\t\tcontent,\n\t\t\t\tcreated,\n\t\t\t\tcreatedUTC,\n\t\t\t\thash,\n\t\t\t\treplyHash,\n\t\t\t\treplyNick,\n\t\t\t\treplyUrl,\n\t\t\t};\n\t\t})\n\t\t.sort((a, b) => dayjs(a.created).diff(dayjs(b.created)));\n\n\treturn {\n\t\tfollowing,\n\t\tmetadata,\n\t\ttwts,\n\t};\n}\n"],"names":[],"mappings":";;;;AAQA,MAAM,OAAO,GAAG;AAMhB,SAAwB,WAAW,OAAsB;AACxD,QAAM,WAAW,MAAM,MAAM,IAAI;AAEjC,QAAM,EAAE,eAAe,CAAA,GAAI,eAAe,CAAA,EAAC,IAAM,SAAS;AAAA,IACzD,CACC,KAIA,iBACI;AACJ,YAAM,OAAO,aAAa,KAAA;AAC1B,UAAI,SAAS,GAAI,QAAO;AAExB,UAAI,KAAK,WAAW,GAAG,EAAG,KAAI,aAAa,KAAK,IAAI;AAAA,UAC/C,KAAI,aAAa,KAAK,IAAI;AAC/B,aAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,IAAC;AAAA,EAChB;AAGD,QAAM,EAAE,YAAY,CAAA,GAAI,WAAW,CAAA,EAAC,IAAM,aACxC,OAAO,CAAC,SAAS,KAAK,SAAS,GAAG,CAAC,EACnC;AAAA,IACA,CACC,KAIA,SACI;AACJ,YAAM,CAAC,KAAK,GAAG,IAAI,IAAI,KAErB,UAAU,CAAC,EACX,MAAM,GAAG,EACT,IAAI,CAAC,UAAU,MAAM,MAAM;AAC7B,YAAM,MAAM,KAAK,KAAK,GAAG;AACzB,UAAI,QAAQ,UAAU;AACrB,cAAM,CAAC,MAAM,GAAG,IAAI,IAAI,KAAA,EAAO,MAAM,KAAK;AAC1C,YAAI,UAAU,KAAK,EAAE,MAAM,KAAK;AAAA,MACjC,OAAO;AACN,YAAI,IAAI,SAAS,GAAG,GAAG;AACtB,cAAI,CAAC,MAAM,QAAQ,IAAI,SAAS,GAAG,CAAC;AACnC,gBAAI,SAAS,GAAG,IAAI,CAAC,IAAI,SAAS,GAAG,GAAG,GAAG;AAAA,cACvC,KAAI,SAAS,GAAG,EAAE,KAAK,GAAG;AAAA,QAChC,MAAO,KAAI,SAAS,GAAG,IAAI;AAAA,MAC5B;AACA,aAAO;AAAA,IACR;AAAA,IACA;AAAA,MACC,WAAW,CAAA;AAAA,MACX,UAAU,CAAA;AAAA,IAAC;AAAA,EACZ;AAGF,QAAM,aAAa;AAEnB,QAAM,OAAO,aACX,IAAI,CAAC,SAAS;AACd,UAAM,CAAC,SAAS,OAAO,IAAI,KACzB,MAAM,IAAI,EACV,IAAI,CAAC,QAAQ,IAAI,MAAM;AAEzB,QAAI,OAAO,YAAY;AACtB,YAAM,IAAI,MAAM,yBAAyB,IAAI,EAAE;AAEhD,UAAM,eAAe,MAAM,IAAI,OAAO;AACtC,QAAI,CAAC,aAAa,QAAA;AACjB,YAAM,IAAI,MAAM,oBAAoB,IAAI,EAAE;AAE3C,UAAM,aAAa,aAAa,YAAA;AAEhC,UAAM,eAAe,WAAW,KAAK,OAAO;AAC5C,QAAI,WAAW,WAAW;AAE1B,QAAI,cAAc,QAAQ;AACzB,kBAAY,eAAe,CAAC;AAC5B,kBAAY,eAAe,CAAC;AAC5B,iBAAW,eAAe,CAAC;AAAA,IAC5B;AAEA,UAAM,OAAO,QAAQ;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK,qBAAqB,UAAU,OAAO,EAAE;AAAA,IAAA,CAC7C;AAED,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EAEF,CAAC,EACA,KAAK,CAAC,GAAG,MAAM,MAAM,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;"}
\ No newline at end of file
diff --git a/dist-node/types.d.ts b/dist-node/types.d.ts
index 621a657..40a0b44 100644
--- a/dist-node/types.d.ts
+++ b/dist-node/types.d.ts
@@ -26,6 +26,7 @@ export interface Twttr {
}
export interface Twtxt {
following: Twttr[];
+ lastModified?: string;
metadata: Metadata;
twts: Twt[];
}
diff --git a/dist-node/utils.d.ts b/dist-node/utils.d.ts
index ae257be..cfcd0df 100644
--- a/dist-node/utils.d.ts
+++ b/dist-node/utils.d.ts
@@ -1,2 +1,2 @@
-export declare const base32Encode: (payload: string | Uint8Array) => any;
+export declare const base32Encode: (payload: string | Uint8Array) => string;
export declare const getValueOrFirstEntry: (value: unknown | unknown[]) => any;
diff --git a/dist-node/utils.js.map b/dist-node/utils.js.map
index 22472af..c3f5f3d 100644
--- a/dist-node/utils.js.map
+++ b/dist-node/utils.js.map
@@ -1 +1 @@
-{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import base32 from \"base32.js\";\n\nexport const base32Encode = (payload: string | Uint8Array) => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n"],"names":[],"mappings":";AAEO,MAAM,eAAe,CAAC,YAAkD;AAC9E,QAAM,UAAU,IAAI,OAAO,QAAQ,EAAE,MAAM,WAAW;AACtD,SAAO,QAAQ,MAAM,OAAO,EAAE,SAAA;AAC/B;AAEO,MAAM,uBAAuB,CAAC,UACpC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,MAAM,CAAC,IAAI;"}
\ No newline at end of file
+{"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import base32 from \"base32.js\";\n\nexport const base32Encode = (\n\tpayload: string | Uint8Array,\n): string => {\n\tconst encoder = new base32.Encoder({ type: \"rfc4648\" });\n\treturn encoder.write(payload).finalize();\n};\n\nexport const getValueOrFirstEntry = (value: unknown | unknown[]) =>\n\tArray.isArray(value) && value.length ? value[0] : value;\n"],"names":[],"mappings":";AAEO,MAAM,eAAe,CAC3B,YACY;AACZ,QAAM,UAAU,IAAI,OAAO,QAAQ,EAAE,MAAM,WAAW;AACtD,SAAO,QAAQ,MAAM,OAAO,EAAE,SAAA;AAC/B;AAEO,MAAM,uBAAuB,CAAC,UACpC,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,MAAM,CAAC,IAAI;"}
\ No newline at end of file
diff --git a/index.html b/index.html
index 9b52c7f..c5bea2c 100644
--- a/index.html
+++ b/index.html
@@ -4,6 +4,9 @@
twtxt-lib Demo
+
+
+
@@ -47,32 +50,65 @@
ES6+ library for the browser ,
with NPM and JSR versions coming soon.
Fully typed and source-mapped.
- ESM (and ESM only )
+ Built as an ES6 module (and ESM only )
Includes an interactive demo (you're looking at it) .
+
Installation
-
- Browser
-
- Download library (or
- minified version ).
- Import desired function(s) into your project: `import { hashTwt, loadAndParseTwtxtFile } from "./twtxt-lib.js"`
-
-
-
- JSR
-
-
-
- NPM
-
-
+ This library can be installed in several different ways:
+
+ For the Browser
+
+
+
+ Grab the latest copy of the twtxt-lib.js file, either by
+ downloading it from the
+ git
+ repo , the
+ website , or doing a
+ git clone https://git.itsericwoodward.com/eric/twtxt-lib.git
+ and pulling it out of the dist-browser folder.
+
+
+ Alternatively, you can grab the minified version from the
+ same
+ sources .
+
+
+
+
+ Add the newly acquired file to your static site / progressive web app /
+ over-engineered blog.
+
+
+ Import the desired function(s) via ESM:
+ import { hashTwt, loadAndParseTwtxtFile } from "./twtxt-lib.js";
+
+
+
+ For Node
+
+
+
+ Add the package to your project.
+
+
+ Via NPM :
+ yarn add twtxt-lib
+
+
+ Via JSR :
+ yarn add jsr:@itsericwoodward/twtxt-lib
+
+
+
+
+ Import the desired function(s) into your code:
+ import { hashTwt, loadAndParseTwtxtFile } from "twtxt-lib";
+
+
Use the tabs to learn more.
diff --git a/jsr.json b/jsr.json
new file mode 100644
index 0000000..52643fb
--- /dev/null
+++ b/jsr.json
@@ -0,0 +1,6 @@
+{
+ "name": "@itsericwoodward/twtxt-lib",
+ "version": "0.9.1",
+ "license": "MIT",
+ "exports": "./src/index.ts"
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index d541997..975c2ae 100644
--- a/package.json
+++ b/package.json
@@ -1,30 +1,45 @@
{
"name": "twtxt-lib",
- "version": "0.9.0",
- "description": "",
+ "version": "0.9.1",
+ "description": "An isomorphic TypeScript library of utility functions for parsing and interacting with twtxt.txt files.",
"license": "MIT",
+ "author": {
+ "name": "Eric Woodward",
+ "email": "hey@itsericwoodward.com",
+ "url": "https://www.itsericwoodward.com"
+ },
+ "repository": {
+ "type": "git",
+ "url": ""
+ },
+ "keywords": [],
+ "type": "module",
+ "module": "./dist-node/index.js",
+ "types": "./dist-node/index.d.ts",
"exports": {
".": {
"import": "./dist-node/index.js"
}
},
- "type": "module",
"files": [
"dist-node"
],
- "module": "./dist-node/index.js",
- "types": "./dist-node/index.d.ts",
"scripts": {
- "build:dev": "BUILD_ENV=development node ./build.js",
"build": "BUILD_ENV=production node ./build.js",
+ "build:dev": "BUILD_ENV=development node ./build.js",
"build-tsc": "tsc",
- "ci": "yarn build:release",
+ "ci": "yarn build",
"dev": "vite",
"preview": "vite preview",
"prepublishOnly": "yarn build",
"postpublish": "git push && git push --tags",
"test": "vitest"
},
+ "dependencies": {
+ "@exodus/blakejs": "^1.1.1-exodus.0",
+ "base32.js": "^0.1.0",
+ "dayjs": "^1.11.19"
+ },
"devDependencies": {
"@types/node": "^25.3.0",
"prettier": "^3.8.1",
@@ -35,10 +50,5 @@
"vite-plugin-node-polyfills": "^0.25.0",
"vitest": "^4.0.18"
},
- "packageManager": "yarn@4.12.0",
- "dependencies": {
- "@exodus/blakejs": "^1.1.1-exodus.0",
- "base32.js": "^0.1.0",
- "dayjs": "^1.11.19"
- }
+ "packageManager": "yarn@4.12.0"
}
diff --git a/public/demo/styles.css b/public/demo/styles.css
index cd08422..7462b66 100644
--- a/public/demo/styles.css
+++ b/public/demo/styles.css
@@ -68,6 +68,15 @@ button {
background-color: var(--link-active);
}
+code {
+ background-color: var(--bg-dark);
+ color: var(--fg-main);
+ font-size: smaller;
+ padding: 0 .5rem;
+ white-space: pre-wrap;
+}
+
+
label {
display: inline-block;
border: none;
@@ -182,6 +191,7 @@ summary {
bottom: 0;
display: none;
left: 0;
+ line-height: 1.5rem;
overflow: auto;
padding: 0 1rem 1rem;
right: 0;
diff --git a/public/favicon-16x16.png b/public/favicon-16x16.png
new file mode 100644
index 0000000..03f1088
Binary files /dev/null and b/public/favicon-16x16.png differ
diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png
new file mode 100644
index 0000000..d10b8b2
Binary files /dev/null and b/public/favicon-32x32.png differ
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..03f1088
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/src/loadAndParseTwtxt.ts b/src/loadAndParseTwtxt.ts
index 80eb57d..5c665ed 100644
--- a/src/loadAndParseTwtxt.ts
+++ b/src/loadAndParseTwtxt.ts
@@ -1,8 +1,9 @@
import dayjs from "dayjs";
import parseTwtxt from "./parseTwtxt.js";
+import type { Twtxt } from "./types.ts";
-export default async function loadAndParseTwtxtFile(url = "") {
+export default async function loadAndParseTwtxtFile(url = ""): Promise {
if (!url) throw new Error("URL is required");
try {
diff --git a/src/parseTwtxt.ts b/src/parseTwtxt.ts
index eb71b1e..e01b7b9 100644
--- a/src/parseTwtxt.ts
+++ b/src/parseTwtxt.ts
@@ -1,7 +1,7 @@
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc.js";
-import type { Metadata, Twttr } from "./types.ts";
+import type { Metadata, Twttr, Twtxt } from "./types.ts";
import hashTwt from "./hashTwt.js";
import { getValueOrFirstEntry } from "./utils.ts";
@@ -12,7 +12,7 @@ dayjs.extend(utc);
* @param twtxt
* @returns object containing: following, metadata, twts
*/
-export default function parseTwtxt(twtxt: string) {
+export default function parseTwtxt(twtxt: string): Twtxt {
const allLines = twtxt.split("\n");
const { commentLines = [], contentLines = [] } = allLines.reduce(
diff --git a/src/types.ts b/src/types.ts
index 5b74f1d..bdd6fa6 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -30,6 +30,7 @@ export interface Twttr {
export interface Twtxt {
following: Twttr[];
+ lastModified?: string;
metadata: Metadata;
twts: Twt[];
}
diff --git a/src/utils.ts b/src/utils.ts
index 4630103..335d6d9 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -1,6 +1,8 @@
import base32 from "base32.js";
-export const base32Encode = (payload: string | Uint8Array) => {
+export const base32Encode = (
+ payload: string | Uint8Array,
+): string => {
const encoder = new base32.Encoder({ type: "rfc4648" });
return encoder.write(payload).finalize();
};