grpc-libp2p-client 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/dc-http2/types.ts","../node_modules/multiformats/dist/src/bytes.js","../node_modules/multiformats/dist/src/vendor/base-x.js","../node_modules/multiformats/dist/src/bases/base.js","../node_modules/multiformats/dist/src/bases/base10.js","../node_modules/multiformats/dist/src/bases/base16.js","../node_modules/multiformats/dist/src/bases/base2.js","../node_modules/multiformats/dist/src/bases/base256emoji.js","../node_modules/multiformats/dist/src/bases/base32.js","../node_modules/multiformats/dist/src/bases/base36.js","../node_modules/multiformats/dist/src/bases/base58.js","../node_modules/multiformats/dist/src/bases/base64.js","../node_modules/multiformats/dist/src/bases/base8.js","../node_modules/multiformats/dist/src/bases/identity.js","../node_modules/multiformats/dist/src/codecs/json.js","../node_modules/multiformats/dist/src/basics.js","../node_modules/uint8arrays/dist/src/alloc.js","../node_modules/uint8arrays/dist/src/util/bases.js","../node_modules/uint8arrays/dist/src/to-string.js","../src/dc-http2/hpack.ts","../src/dc-http2/encoder.ts","../src/dc-http2/frame.ts","../src/dc-http2/parser.ts","../src/dc-http2/stream.ts","../src/index.ts"],"sourcesContent":[null,"export const empty = new Uint8Array(0);\nexport function toHex(d) {\n return d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\n}\nexport function fromHex(hex) {\n const hexes = hex.match(/../g);\n return hexes != null ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n}\nexport function equals(aa, bb) {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n}\nexport function coerce(o) {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n}\nexport function isBinary(o) {\n return o instanceof ArrayBuffer || ArrayBuffer.isView(o);\n}\nexport function fromString(str) {\n return new TextEncoder().encode(str);\n}\nexport function toString(b) {\n return new TextDecoder().decode(b);\n}\n//# sourceMappingURL=bytes.js.map","/* eslint-disable */\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n/**\n * @param {string} ALPHABET\n * @param {any} name\n */\nfunction base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n /**\n * @param {any[] | Iterable<number>} source\n */\n function encode(source) {\n // @ts-ignore\n if (source instanceof Uint8Array)\n ;\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n }\n else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n // Skip & count leading zeroes.\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n var b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0;\n b58[it1] = (carry % BASE) >>> 0;\n carry = (carry / BASE) >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n /**\n * @param {string | string[]} source\n */\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n // Skip leading spaces.\n if (source[psz] === ' ') {\n return;\n }\n // Skip and count leading '1's.\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size);\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)];\n // Invalid character\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0;\n b256[it3] = (carry % 256) >>> 0;\n carry = (carry / 256) >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') {\n return;\n }\n // Skip leading zeroes in b256.\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n /**\n * @param {string | string[]} string\n */\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${name} character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;\n//# sourceMappingURL=base-x.js.map","import { coerce } from '../bytes.js';\nimport basex from '../vendor/base-x.js';\n/**\n * Class represents both BaseEncoder and MultibaseEncoder meaning it\n * can be used to encode to multibase or base encode without multibase\n * prefix.\n */\nclass Encoder {\n name;\n prefix;\n baseEncode;\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${this.prefix}${this.baseEncode(bytes)}`;\n }\n else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\n/**\n * Class represents both BaseDecoder and MultibaseDecoder so it could be used\n * to decode multibases (with matching prefix) or just base decode strings\n * with corresponding base encoding.\n */\nclass Decoder {\n name;\n prefix;\n baseDecode;\n prefixCodePoint;\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n const prefixCodePoint = prefix.codePointAt(0);\n /* c8 ignore next 3 */\n if (prefixCodePoint === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefixCodePoint;\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n }\n else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n decoders;\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder != null) {\n return decoder.decode(input);\n }\n else {\n throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);\n }\n }\n}\nexport function or(left, right) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return new ComposedDecoder({\n ...(left.decoders ?? { [left.prefix]: left }),\n ...(right.decoders ?? { [right.prefix]: right })\n });\n}\nexport class Codec {\n name;\n prefix;\n baseEncode;\n baseDecode;\n encoder;\n decoder;\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport function from({ name, prefix, encode, decode }) {\n return new Codec(name, prefix, encode, decode);\n}\nexport function baseX({ name, prefix, alphabet }) {\n const { encode, decode } = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: (text) => coerce(decode(text))\n });\n}\nfunction decode(string, alphabet, bitsPerChar, name) {\n // Build the character lookup table:\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n // Count the padding bytes:\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n // Allocate the output:\n const out = new Uint8Array((end * bitsPerChar / 8) | 0);\n // Parse the data:\n let bits = 0; // Number of bits currently in the buffer\n let buffer = 0; // Bits waiting to be written out, MSB first\n let written = 0; // Next byte to write\n for (let i = 0; i < end; ++i) {\n // Read one character from the string:\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${name} character`);\n }\n // Append the bits to the buffer:\n buffer = (buffer << bitsPerChar) | value;\n bits += bitsPerChar;\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 0xff & (buffer >> bits);\n }\n }\n // Verify that we have received just enough bits:\n if (bits >= bitsPerChar || (0xff & (buffer << (8 - bits))) !== 0) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n}\nfunction encode(data, alphabet, bitsPerChar) {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0; // Number of bits currently in the buffer\n let buffer = 0; // Bits waiting to be written out, MSB first\n for (let i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = (buffer << 8) | data[i];\n bits += 8;\n // Write out as much as we can:\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & (buffer >> bits)];\n }\n }\n // Partial character:\n if (bits !== 0) {\n out += alphabet[mask & (buffer << (bitsPerChar - bits))];\n }\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (((out.length * bitsPerChar) & 7) !== 0) {\n out += '=';\n }\n }\n return out;\n}\n/**\n * RFC4648 Factory\n */\nexport function rfc4648({ name, prefix, bitsPerChar, alphabet }) {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n}\n//# sourceMappingURL=base.js.map","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});\n//# sourceMappingURL=base10.js.map","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});\n//# sourceMappingURL=base16.js.map","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});\n//# sourceMappingURL=base2.js.map","import { from } from './base.js';\nconst alphabet = Array.from('๐Ÿš€๐Ÿชโ˜„๐Ÿ›ฐ๐ŸŒŒ๐ŸŒ‘๐ŸŒ’๐ŸŒ“๐ŸŒ”๐ŸŒ•๐ŸŒ–๐ŸŒ—๐ŸŒ˜๐ŸŒ๐ŸŒ๐ŸŒŽ๐Ÿ‰โ˜€๐Ÿ’ป๐Ÿ–ฅ๐Ÿ’พ๐Ÿ’ฟ๐Ÿ˜‚โค๐Ÿ˜๐Ÿคฃ๐Ÿ˜Š๐Ÿ™๐Ÿ’•๐Ÿ˜ญ๐Ÿ˜˜๐Ÿ‘๐Ÿ˜…๐Ÿ‘๐Ÿ˜๐Ÿ”ฅ๐Ÿฅฐ๐Ÿ’”๐Ÿ’–๐Ÿ’™๐Ÿ˜ข๐Ÿค”๐Ÿ˜†๐Ÿ™„๐Ÿ’ช๐Ÿ˜‰โ˜บ๐Ÿ‘Œ๐Ÿค—๐Ÿ’œ๐Ÿ˜”๐Ÿ˜Ž๐Ÿ˜‡๐ŸŒน๐Ÿคฆ๐ŸŽ‰๐Ÿ’žโœŒโœจ๐Ÿคท๐Ÿ˜ฑ๐Ÿ˜Œ๐ŸŒธ๐Ÿ™Œ๐Ÿ˜‹๐Ÿ’—๐Ÿ’š๐Ÿ˜๐Ÿ’›๐Ÿ™‚๐Ÿ’“๐Ÿคฉ๐Ÿ˜„๐Ÿ˜€๐Ÿ–ค๐Ÿ˜ƒ๐Ÿ’ฏ๐Ÿ™ˆ๐Ÿ‘‡๐ŸŽถ๐Ÿ˜’๐Ÿคญโฃ๐Ÿ˜œ๐Ÿ’‹๐Ÿ‘€๐Ÿ˜ช๐Ÿ˜‘๐Ÿ’ฅ๐Ÿ™‹๐Ÿ˜ž๐Ÿ˜ฉ๐Ÿ˜ก๐Ÿคช๐Ÿ‘Š๐Ÿฅณ๐Ÿ˜ฅ๐Ÿคค๐Ÿ‘‰๐Ÿ’ƒ๐Ÿ˜ณโœ‹๐Ÿ˜š๐Ÿ˜๐Ÿ˜ด๐ŸŒŸ๐Ÿ˜ฌ๐Ÿ™ƒ๐Ÿ€๐ŸŒท๐Ÿ˜ป๐Ÿ˜“โญโœ…๐Ÿฅบ๐ŸŒˆ๐Ÿ˜ˆ๐Ÿค˜๐Ÿ’ฆโœ”๐Ÿ˜ฃ๐Ÿƒ๐Ÿ’โ˜น๐ŸŽŠ๐Ÿ’˜๐Ÿ˜ โ˜๐Ÿ˜•๐ŸŒบ๐ŸŽ‚๐ŸŒป๐Ÿ˜๐Ÿ–•๐Ÿ’๐Ÿ™Š๐Ÿ˜น๐Ÿ—ฃ๐Ÿ’ซ๐Ÿ’€๐Ÿ‘‘๐ŸŽต๐Ÿคž๐Ÿ˜›๐Ÿ”ด๐Ÿ˜ค๐ŸŒผ๐Ÿ˜ซโšฝ๐Ÿค™โ˜•๐Ÿ†๐Ÿคซ๐Ÿ‘ˆ๐Ÿ˜ฎ๐Ÿ™†๐Ÿป๐Ÿƒ๐Ÿถ๐Ÿ’๐Ÿ˜ฒ๐ŸŒฟ๐Ÿงก๐ŸŽโšก๐ŸŒž๐ŸŽˆโŒโœŠ๐Ÿ‘‹๐Ÿ˜ฐ๐Ÿคจ๐Ÿ˜ถ๐Ÿค๐Ÿšถ๐Ÿ’ฐ๐Ÿ“๐Ÿ’ข๐ŸคŸ๐Ÿ™๐Ÿšจ๐Ÿ’จ๐Ÿคฌโœˆ๐ŸŽ€๐Ÿบ๐Ÿค“๐Ÿ˜™๐Ÿ’Ÿ๐ŸŒฑ๐Ÿ˜–๐Ÿ‘ถ๐Ÿฅดโ–ถโžกโ“๐Ÿ’Ž๐Ÿ’ธโฌ‡๐Ÿ˜จ๐ŸŒš๐Ÿฆ‹๐Ÿ˜ท๐Ÿ•บโš ๐Ÿ™…๐Ÿ˜Ÿ๐Ÿ˜ต๐Ÿ‘Ž๐Ÿคฒ๐Ÿค ๐Ÿคง๐Ÿ“Œ๐Ÿ”ต๐Ÿ’…๐Ÿง๐Ÿพ๐Ÿ’๐Ÿ˜—๐Ÿค‘๐ŸŒŠ๐Ÿคฏ๐Ÿทโ˜Ž๐Ÿ’ง๐Ÿ˜ฏ๐Ÿ’†๐Ÿ‘†๐ŸŽค๐Ÿ™‡๐Ÿ‘โ„๐ŸŒด๐Ÿ’ฃ๐Ÿธ๐Ÿ’Œ๐Ÿ“๐Ÿฅ€๐Ÿคข๐Ÿ‘…๐Ÿ’ก๐Ÿ’ฉ๐Ÿ‘๐Ÿ“ธ๐Ÿ‘ป๐Ÿค๐Ÿคฎ๐ŸŽผ๐Ÿฅต๐Ÿšฉ๐ŸŽ๐ŸŠ๐Ÿ‘ผ๐Ÿ’๐Ÿ“ฃ๐Ÿฅ‚');\nconst alphabetBytesToChars = (alphabet.reduce((p, c, i) => { p[i] = c; return p; }, ([])));\nconst alphabetCharsToBytes = (alphabet.reduce((p, c, i) => {\n const codePoint = c.codePointAt(0);\n if (codePoint == null) {\n throw new Error(`Invalid character: ${c}`);\n }\n p[codePoint] = i;\n return p;\n}, ([])));\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const codePoint = char.codePointAt(0);\n if (codePoint == null) {\n throw new Error(`Invalid character: ${char}`);\n }\n const byt = alphabetCharsToBytes[codePoint];\n if (byt == null) {\n throw new Error(`Non-base256emoji character: ${char}`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '๐Ÿš€',\n name: 'base256emoji',\n encode,\n decode\n});\n//# sourceMappingURL=base256emoji.js.map","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});\n//# sourceMappingURL=base32.js.map","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});\n//# sourceMappingURL=base36.js.map","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});\n//# sourceMappingURL=base58.js.map","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});\n//# sourceMappingURL=base64.js.map","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});\n//# sourceMappingURL=base8.js.map","import { fromString, toString } from '../bytes.js';\nimport { from } from './base.js';\nexport const identity = from({\n prefix: '\\x00',\n name: 'identity',\n encode: (buf) => toString(buf),\n decode: (str) => fromString(str)\n});\n//# sourceMappingURL=identity.js.map","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 0x0200;\nexport function encode(node) {\n return textEncoder.encode(JSON.stringify(node));\n}\nexport function decode(data) {\n return JSON.parse(textDecoder.decode(data));\n}\n//# sourceMappingURL=json.js.map","import * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base2 from './bases/base2.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base8 from './bases/base8.js';\nimport * as identityBase from './bases/identity.js';\nimport * as json from './codecs/json.js';\nimport * as raw from './codecs/raw.js';\nimport * as identity from './hashes/identity.js';\nimport * as sha2 from './hashes/sha2.js';\nimport { CID, hasher, digest, varint, bytes } from './index.js';\nexport const bases = { ...identityBase, ...base2, ...base8, ...base10, ...base16, ...base32, ...base36, ...base58, ...base64, ...base256emoji };\nexport const hashes = { ...sha2, ...identity };\nexport const codecs = { raw, json };\nexport { CID, hasher, digest, varint, bytes };\n//# sourceMappingURL=basics.js.map","/**\n * Returns a `Uint8Array` of the requested size. Referenced memory will\n * be initialized to 0.\n */\nexport function alloc(size = 0) {\n return new Uint8Array(size);\n}\n/**\n * Where possible returns a Uint8Array of the requested size that references\n * uninitialized memory. Only use if you are certain you will immediately\n * overwrite every value in the returned `Uint8Array`.\n */\nexport function allocUnsafe(size = 0) {\n return new Uint8Array(size);\n}\n//# sourceMappingURL=alloc.js.map","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '#alloc';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: {\n decode\n }\n };\n}\nconst string = createCodec('utf8', 'u', (buf) => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, (str) => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', (buf) => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, (str) => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;\n//# sourceMappingURL=bases.js.map","import bases, {} from './util/bases.js';\n/**\n * Turns a `Uint8Array` into a string.\n *\n * Supports `utf8`, `utf-8` and any encoding supported by the multibase module.\n *\n * Also `ascii` which is similar to node's 'binary' encoding.\n */\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (base == null) {\n throw new Error(`Unsupported encoding \"${encoding}\"`);\n }\n // strip multibase prefix\n return base.encoder.encode(array).substring(1);\n}\n//# sourceMappingURL=to-string.js.map",null,null,null,null,null,null],"names":["toString","basex","decode","encode","base2","base8","base10","base16","base32","base36","base64","base256emoji","bases","uint8ArrayToString"],"mappings":"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EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtD,gBAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACjD,gBAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/C,gBAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAClD,gBAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/C,gBAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnD,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9D,gBAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;aAC/D;SACJ;;AAEL;;;;AAIG;AACI,IAAA,MAAM,CAAC,KAAiB,EAAA;QAC3B,IAAI,MAAM,GAAG,EAAE;QACf,IAAI,WAAW,GAAG,CAAC;QACnB,IAAI,IAAI,GAAG,CAAC;AAEZ,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC;YACrB,WAAW,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,IAAI;YACvC,IAAI,IAAI,CAAC;AAET,YAAA,OAAO,IAAI,IAAI,CAAC,EAAE;gBACd,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;gBAClD,IAAI,CAAC,OAAO,EAAE;oBACV;;AAGJ,gBAAA,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;AAChC,gBAAA,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;AACrC,gBAAA,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACzC,IAAI,IAAI,MAAM;;;;AAKtB,QAAA,IAAI,IAAI,GAAG,CAAC,EAAE;YACV,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,IAAI,EAAE;AAC/B,gBAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;;;AAIlD,QAAA,OAAO,MAAM;;AAGjB;;AAEG;IACK,UAAU,CAAC,KAAa,EAAE,IAAY,EAAA;AAC1C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,IAAI,GAAG,MAAM;gBAAE;YAEnB,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC;YAC7D,IAAI,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AACrC,gBAAA,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;;;AAG1B,QAAA,OAAO,IAAI;;;AAGf,IAAA,aAAa,CAAC,KAAiB,EAAA;QAC3B,IAAI,MAAM,GAAc,EAAE;QAC1B,IAAI,OAAO,GAAG,CAAC;QACf,IAAI,IAAI,GAAG,CAAC;AAEZ,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAE3C,IAAI,IAAI,MAAM;YACd,OAAO,GAAG,CAAC,OAAO,IAAI,MAAM,IAAI,IAAI;AAEpC,YAAA,OAAO,IAAI,IAAI,CAAC,EAAE;gBACd,IAAI,IAAI,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC;;;;AAK7C,QAAA,IAAI,IAAI,GAAG,CAAC,EAAE;YACV,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;AAG/B,QAAA,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;;AAKjC,IAAA,kBAAkB,CAAC,MAAiB,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE;QACzB,IAAI,KAAK,GAAG,CAAC;AACb,QAAA,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE;AAC1B,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;;YAG/B,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,EAAE;AAC1B,gBAAA,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;gBACvE,IAAI,IAAI,IAAI,KAAK;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC3C,KAAK,GAAG,QAAQ;;iBAEf,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,EAAE;AAC/B,gBAAA,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,MAAM,EAAE,KAAK,CAAC;gBACnF,IAAI,IAAI,IAAI,KAAK;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC3C,KAAK,GAAG,QAAQ;;iBAEf,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,EAAE;gBAC/B,KAAK,EAAE,CAAC;;iBAEP,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,EAAE;AAC/B,gBAAA,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,kCAAkC,CAAC,MAAM,EAAE,KAAK,CAAC;gBACtF,IAAI,IAAI,IAAI,KAAK;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC3C,KAAK,GAAG,QAAQ;;AAEf,iBAAA;AACD,gBAAA,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,kCAAkC,CAAC,MAAM,EAAE,KAAK,CAAC;gBACtF,IAAI,IAAI,IAAI,KAAK;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;gBAC3C,KAAK,GAAG,QAAQ;;;AAIxB,QAAA,OAAO,OAAO;;AAIlB,IAAA,aAAa,CAAC,MAAiB,EAAE,UAAiB,EAAE,UAAiB,EAAA;QACjE,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,UAAU,IAAI,CAAC;AACpC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,KAAK,GAAG,UAAU;AACtB,QAAA,IAAI,KAAK,GAAG,SAAS,GAAG,MAAM;AAE9B,QAAA,IAAI,KAAK,GAAG,MAAM,EAAE;AAChB,YAAA,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC;;AAG7B,QAAA,KAAK,EAAE;QACP,IAAI,KAAK,GAAG,CAAC;AACb,QAAA,OAAO,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE;AAC1B,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YAC5B,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,KAAK;YAC/B,KAAK,IAAI,CAAC;YACV,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC,EAAE;gBACrB;;;AAIR,QAAA,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;;IAGxB,mBAAmB,CAAC,MAAiB,EAAE,UAAiB,EAAA;AACrD,QAAA,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE;AAC7B,YAAA,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC;;AAG3B,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,MAAM,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC;AAC1C,QAAA,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAEjE,IAAI,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;AAChC,YAAA,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC;;AAGtB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;AACjD,QAAA,IAAI,MAAM;QAEV,IAAI,SAAS,EAAE;AAEX,YAAA,IAAI;AACA,gBAAA,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;YAC7B,OAAO,CAAC,EAAE;gBACR,MAAM,GAAG,EAAE;;;aAEZ;AACH,YAAA,IAAI;;AAEA,gBAAA,MAAM,GAAGC,QAAkB,CAAC,KAAK,CAAC;;YACpC,OAAO,CAAC,EAAE;gBACR,MAAM,GAAG,EAAE;;;AAInB,QAAA,OAAO,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;;IAGnC,mBAAmB,CAAC,MAAiB,EAAE,KAAY,EAAA;AAC/C,QAAA,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACpE,QAAA,IAAI,WAAW,IAAI,CAAC,EAAE;AAClB,YAAA,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC;;QAG7B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC;;AAG7B,QAAA,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;;IAGrD,+BAA+B,CAAC,MAAiB,EAAE,KAAY,EAAA;AAC3D,QAAA,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,KAAK,GAAG,SAAS;AAEjB,QAAA,IAAI,IAAI;AACR,QAAA,IAAI,WAAW,GAAG,CAAC,EAAE;YACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;AACjD,YAAA,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE;;aACrC;AACH,YAAA,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;YACvE,IAAI,GAAG,WAAW;YAClB,KAAK,GAAG,QAAQ;;AAGpB,QAAA,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC;AACnE,QAAA,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC;;IAGnC,kCAAkC,CAAC,MAAiB,EAAE,KAAY,EAAA;QAC/D,OAAO,IAAI,CAAC,+BAA+B,CAAC,MAAM,EAAE,KAAK,CAAC;;;AAK9D,IAAA,qBAAqB,CAAC,KAAiB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;;AAIhC;;AC/iBD,MAAM,YAAY,CAAA;;IAEf,OAAO,mBAAmB,CAAC,KAAW,EAAA;;QAElC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;;QAE9C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,aAAa,CAAC;;QAEhD,kBAAkB,CAAC,MAAM,EAAE;AACvB,YAAA,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC;AACnB,SAAA,CAAC;;AAEF,QAAA,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC;AAC7C,QAAA,OAAO,MAAM;;;AAGjB,IAAA,OAAO,sBAAsB,GAAA;QACzB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,kBAAkB,CAAC,MAAM,EAAE;AACvB,YAAA,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,GAAG;AACV,YAAA,QAAQ,EAAE;AACb,SAAA,CAAC;AACF,QAAA,OAAO,MAAM;;AAEnB;AAED;AACA,SAAS,kBAAkB,CAAC,MAAiB,EAAE,MAAkB,EAAA;;AAE7D,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC;IACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI;IACjC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI;AAChC,IAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI;;AAEzB,IAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI;;AAEvB,IAAA,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK;;IAExB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,GAAG,UAAU,EAAE,CAAC,CAAC;AAC3D;AAEA;AACA,SAAS,sBAAsB,CAAC,MAAiB,EAAE,OAA2B,EAAA;AAC1E,IAAA,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,IAAA,OAAO,CAAC,OAAO,CAAC,OAAO,IAAG;;QAEtB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;QAClD,MAAM,IAAI,CAAC;;QAEX,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QAC7C,MAAM,IAAI,CAAC;AACf,KAAC,CAAC;AACN;AAEA;AACA,SAAS,cAAc,CAAC,MAAiB,EAAE,KAAY,EAAE,MAAa,EAAA;IAClE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI;IACpC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AACrC;AAEA;AACA,SAAS,cAAc,CAAC,MAAiB,EAAE,KAAY,EAAE,MAAa,EAAA;IAClE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI;AACrC,IAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,IAAI,IAAI;AACzC,IAAA,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI;IACxC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI;AACrC;;ACtEA,MAAO,mBAAmB,GAAG;AACzB,IAAA,iBAAiB,EAAE,GAAG;AACtB,IAAA,WAAW,EAAE,GAAG;AAChB,IAAA,sBAAsB,EAAE,GAAG;AAC3B,IAAA,mBAAmB,EAAE,GAAG;AACxB,IAAA,cAAc,EAAE,GAAG;AACnB,IAAA,oBAAoB,EAAE;CACzB;AAED,MAAM,eAAe,GAAG;AACpB,IAAA,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,IAAI;AAC7C,IAAA,CAAC,mBAAmB,CAAC,WAAW,GAAG,CAAC;AACpC,IAAA,CAAC,mBAAmB,CAAC,sBAAsB,GAAG,GAAG;AACjD,IAAA,CAAC,mBAAmB,CAAC,mBAAmB,GAAG,CAAC,IAAE,EAAE;IAChD,CAAC,mBAAmB,CAAC,cAAc,GAAE,CAAC,IAAE,EAAE;AAC1C,IAAA,CAAC,mBAAmB,CAAC,oBAAoB,GAAG;CAC/C;AAED,MAAM,aAAa,GAAG,kCAAkC;MAE3C,UAAU,CAAA;;AAKnB,IAAA,OAAO,aAAa,GAAA;QAChB,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC;;IAElD,OAAO,eAAe,CAAC,OAAkB,EAAA;AACrC,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC;;;AAGvD,IAAA,OAAO,mBAAmB,CAAC,QAAQ,GAAG,EAAE,EAAA;;QAEpC,MAAM,KAAK,GAAG,UAAU,CAAC,yBAAyB,CAAC,QAAQ,CAAC;;AAE5D,QAAA,OAAO,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC;;;AAGlD,IAAA,OAAO,sBAAsB,GAAA;AACzB,QAAA,OAAO,YAAY,CAAC,sBAAsB,EAAE;;IAIhD,OAAO,gBAAgB,CAAC,QAAgB,EAAE,IAAgB,EAAC,SAAqB,GAAA,KAAK,EAAE,YAAA,GAAuB,IAAI,EAAA;QAC9G,MAAM,MAAM,GAAiB,EAAE;QAC/B,IAAI,MAAM,GAAG,CAAC;AAEd,QAAA,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9D,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;AACpD,YAAA,IAAI,WAAW,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;AACnE,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC;AACtE,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAClB,MAAM,IAAI,SAAS;;AAGvB,QAAA,OAAO,MAAM;;IAGlB,OAAO,eAAe,CAAE,QAAe,EAAC,IAAe,EAAC,YAAoB,IAAI,EAAA;;AAE3E,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;QAC9B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,CAAC,GAAC,UAAU,CAAC;;AAG/C,QAAA,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;;QAGjB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,IAAI,IAAI;QACzC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,IAAI,IAAI;QACzC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,IAAI,IAAI;AACxC,QAAA,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,IAAI;;AAGjC,QAAA,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAEvB,QAAA,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,CAAA;AACpC,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC;;IAGnE,OAAO,kBAAkB,CAAC,QAAe,EAAC,IAAW,EAAE,UAAA,GAAqB,IAAI,EAAC,KAAa,EAAA;;AAE1F,QAAA,MAAM,WAAW,GAA8B;AAC3C,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,YAAY,EAAE,WAAW;AACzB,YAAA,cAAc,EAAE,wBAAwB;AACxC,YAAA,YAAY,EAAE,qBAAqB;AACnC,YAAA,QAAQ,EAAE,wBAAwB;AAClC,YAAA,cAAc,EAAE;SACnB;QACD,IAAI,KAAK,EAAE;AACP,YAAA,WAAW,CAAC,eAAe,CAAC,GAAG,CAAU,OAAA,EAAA,KAAK,EAAE;;;AAGpD,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;QACzB,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;AAChD,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC;;QAEvC,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI;AACtC,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC;;IAGxE,OAAO,0BAA0B,CAAC,QAAe,EAAC,WAAqC,EAAE,aAAqB,IAAI,EAAA;;AAE9G,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;QACzB,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;AAChD,QAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC;;QAEvC,MAAM,KAAK,GAAG,UAAU,GAAG,IAAI,GAAG,IAAI;AACtC,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC;;AAIxE,IAAA,OAAO,mBAAmB,CAAC,QAAgB,EAAE,QAAmC,EAAA;;AAE5E,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;QACzB,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;;AAG9C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC;AACnB,QAAA,OAAO,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,CAAC;;;AAKzE,IAAA,OAAO,yBAAyB,CAAC,QAAQ,GAAG,EAAE,EAAA;;QAI1C,MAAM,aAAa,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,QAAQ,EAAE;;QAEzD,iBAAiB,CAAC,aAAa,CAAC;;AAEhC,QAAA,MAAM,KAAK,GAAG;YACV,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,CAAC;AACX,YAAA,OAAO,EAAE,cAAc,CAAC,aAAa;SACxC;AACD,QAAA,OAAO,KAAK;;;AAIhB,IAAA,OAAO,4BAA4B,GAAA;QAC/B,OAAO;YACH,IAAI,EAAE,GAAG;YACT,KAAK,EAAE,GAAG;AACV,YAAA,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,EAAE;SACd;;IAGL,OAAO,WAAW,CAAC,IAAS,EAAE,KAAU,EAAE,QAAe,EAAE,OAAkB,EAAA;AACzE,QAAA,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;;QAGxC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI;QAChC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI;AAC/B,QAAA,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI;;AAGxB,QAAA,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI;;AAGf,QAAA,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;;QAGhB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI;QAClC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,IAAI,IAAI;QAClC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI;AACjC,QAAA,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,IAAI;AAE1B,QAAA,IAAI,OAAO,IAAI,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;;AAEzB,QAAA,OAAO,KAAK;;AAEnB;AAEA;AACA,SAAS,iBAAiB,CAAC,QAAiC,EAAA;AACzD,IAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAChD,QAAA,QAAQ,MAAM,CAAC,EAAE,CAAC;YACd,KAAK,mBAAmB,CAAC,iBAAiB;AACtC,gBAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,oBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;gBAE7D;YAEJ,KAAK,mBAAmB,CAAC,WAAW;gBAChC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;AAC5B,oBAAA,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;;gBAEjD;YAEJ,KAAK,mBAAmB,CAAC,mBAAmB;gBACxC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,UAAU,EAAE;AACjC,oBAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;;gBAEvE;YAEJ,KAAK,mBAAmB,CAAC,cAAc;gBACnC,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,QAAQ,EAAE;AACnC,oBAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;;gBAE3E;YAEJ,KAAK,mBAAmB,CAAC,sBAAsB;YAC/C,KAAK,mBAAmB,CAAC,oBAAoB;AACzC,gBAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACX,oBAAA,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAA,qBAAA,CAAuB,CAAC;;gBAE3D;AAEJ,YAAA;AACI,gBAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAA,CAAE,CAAC;;;AAGjE;AAEA;AACC,SAAS,cAAc,CAAC,QAAiC,EAAA;IACtD,MAAM,OAAO,GAAwB,EAAE;AACvC,IAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAChD,OAAO,CAAC,IAAI,CAAC;AACT,YAAA,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC;AACtB,YAAA,KAAK,EAAE;AACV,SAAA,CAAC;;AAEN,IAAA,OAAO,OAAO;AAClB;;MCxOa,WAAW,CAAA;AAatB,IAAA,WAAA,CAAY,MAAoB,EAAA;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;;AAEhC,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAE,EAAE;;AAEjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE;;AAExB,QAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,IAAE,EAAE;;AAEpC,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AAEpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;;;IAItB,MAAM,aAAa,CAAC,MAAc,EAAA;AAChC,QAAA,IAAI;YACF,WAAW,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;AACvC,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE;;AAGhC,gBAAA,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;AACrE,gBAAA,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC1B,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1C,gBAAA,IAAI,CAAC,MAAM,GAAG,SAAS;;gBAEvB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;;AAE9B,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AAChE,wBAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;wBACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;;AAEnC,wBAAA,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,EAAE;AACpD,wBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;wBAC9B;;oBAEF,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;AACvD,oBAAA,MAAM,gBAAgB,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM;;oBAG/C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,gBAAgB,EAAE;wBACzC;;;AAGF,oBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;;oBAGxD,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC;;oBAG/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;;QAGrD,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAChD,YAAA,MAAM,KAAK;;;AAIP,IAAA,cAAc,CAAC,MAAkB,EAAA;QACvC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,kCAAkC,CAAC;AAC5E,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;AAChD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC;AAAE,gBAAA,OAAO,KAAK;;AAE5C,QAAA,OAAO,IAAI;;;IAIb,kBAAkB,GAAA;QAChB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,gBAAA,OAAO,EAAE;gBACT;;AAEF,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,gBAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;oBAC5B,aAAa,CAAC,QAAQ,CAAC;oBACvB,YAAY,CAAC,OAAO,CAAC;AACrB,oBAAA,OAAO,EAAE;;aAEZ,EAAE,GAAG,CAAC;AAEP,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,MAAK;gBAC9B,aAAa,CAAC,QAAQ,CAAC;AACvB,gBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;aAC1C,EAAE,KAAK,CAAC;AACX,SAAC,CAAC;;;AAIJ,IAAA,MAAM,YAAY,CAAC,WAAkB,EAAE,SAAqB,EAAA;AAC1D,QAAA,QAAQ,WAAW,CAAC,IAAI;YACtB,KAAK,WAAW,CAAC,QAAQ;AACvB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;AAC7D,oBAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,oBAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;;qBAC/B;;oBAEL,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1C,MAAM,QAAQ,GAAG,EAAE;AACnB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAClD,wBAAA,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC;wBAC7B,MAAM,KAAK,GACT,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;6BAC5B,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;AAC7B,4BAAA,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;AACxB,wBAAA,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK;;AAEtB,oBAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC;;AAG3C,oBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,wBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;;;gBAGhC;YAEF,KAAK,WAAW,CAAC,IAAI;;AAEnB,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;;;gBAG/C,IACE,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,UAAU;oBAC3C,WAAW,CAAC,UAAU,EACtB;AACA,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,oBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;wBACd,IAAI,CAAC,KAAK,EAAE;;oBAEd;;gBAEF;YACF,KAAK,WAAW,CAAC,OAAO;;AAEtB,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,oBAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;;;gBAGjD,IACE,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,UAAU;oBAC3C,WAAW,CAAC,UAAU,EACtB;AACA,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,oBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;wBACd,IAAI,CAAC,KAAK,EAAE;;oBAEd;;gBAEF;YACF,KAAK,WAAW,CAAC,aAAa;;gBAE5B,IAAI,CAAC,uBAAuB,CAC1B,WAAW,EACX,SAAS,EACT,WAAW,CAAC,QAAQ,CACrB;gBACD;YACF,KAAK,WAAW,CAAC,IAAI;;AAEnB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC;gBAC7C;;;;;YAMF,KAAK,WAAW,CAAC,UAAU;AACzB,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;oBACd,IAAI,CAAC,KAAK,EAAE;;gBAEd;AACF,YAAA;gBACE,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,WAAW,CAAC,IAAI,CAAC;;;AAI5D,IAAA,iBAAiB,CAAC,MAAkB,EAAA;QAClC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AAC/D,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;AACtB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AACvB,QAAA,MAAM,QAAQ,GACZ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QAEtE,OAAO;YACL,MAAM;YACN,IAAI;YACJ,KAAK;YACL,QAAQ;YACR,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5B;;;IAGH,gBAAgB,CAAC,WAAkB,EAAE,SAAqB,EAAA;;AAExD,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;;AAG7D,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;;QAC5B,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;AACjD,YAAA,MAAM,KAAK;;;;AAKf,IAAA,kBAAkB,CAAC,QAAgB,EAAA;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;;AAErC,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,OAAO,EAAE;gBACT;;;YAGF,IAAI,OAAO,GAA0B,IAAI;AACzC,YAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;AAChB,gBAAA,OAAO,GAAG,UAAU,CAAC,MAAK;oBACxB,aAAa,CAAC,QAAQ,CAAC;AACvB,oBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBAC3C,EAAE,QAAQ,CAAC;;;AAId,YAAA,MAAM,aAAa,GAAG,GAAG,CAAC;;AAE1B,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,IAAI,OAAO,KAAK,IAAI,EAAE;wBACpB,YAAY,CAAC,OAAO,CAAC;;oBAEvB,aAAa,CAAC,QAAQ,CAAC;AACvB,oBAAA,OAAO,EAAE;;aAEZ,EAAE,aAAa,CAAC;;AAGjB,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK;AAChC,YAAA,IAAI,CAAC,KAAK,GAAG,MAAK;AAChB,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;;AAEjB,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;AAErB,gBAAA,IAAI,OAAO,KAAK,IAAI,EAAE;oBACpB,YAAY,CAAC,OAAO,CAAC;;gBAEvB,aAAa,CAAC,QAAQ,CAAC;AACvB,gBAAA,OAAO,EAAE;gBACT,IAAI,aAAa,EAAE;oBACjB,aAAa,EAAE,CAAC;;AAEpB,aAAC;AACH,SAAC,CAAC;;;IAIJ,sBAAsB,CAAC,WAAuB,EAAE,WAAkB,EAAA;;AAEhE,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;;;AAItE,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;;;AAI1C,QAAA,MAAM,mBAAmB,GACvB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE;AACzB,aAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACjB,aAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAChB,MAAM,CAAC,CAAC,CAAC;;AAGX,QAAA,IAAI,mBAAmB,KAAK,CAAC,EAAE;AAC7B,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;QAG7D,OAAO;AACL,YAAA,mBAAmB,EAAE,mBAAmB;SACzC;;;AAIH,IAAA,uBAAuB,CACrB,WAAkB,EAClB,OAAmB,EACnB,QAAgB,EAAA;AAEhB,QAAA,IAAI;YACF,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC;AAEtE,YAAA,IAAI,CAAC,oBAAoB,IAAI,YAAY,CAAC,mBAAmB;YAC7D,OAAO,CAAC,GAAG,CAAC,CAAA,oCAAA,EAAuC,YAAY,CAAC,mBAAmB,CAAE,CAAA,CAAC;AAEtF,YAAA,OAAO,YAAY;;QACnB,OAAO,KAAK,EAAE;;AAEd,YAAA,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC;AAC3D,YAAA,MAAM,KAAK;;;AAGhB;;AC5SD,MAAM,YAAY,GAAG,CAAC,GAAC,IAAI,GAAE,CAAC;MACjB,YAAY,CAAA;IAcvB,WACU,CAAA,IAAS,EACT,OAAA,GAA+B,EAAE,EAAA;QADjC,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAO,CAAA,OAAA,GAAP,OAAO;;QAZT,IAAY,CAAA,YAAA,GAAG,CAAC;AAChB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,EAAE;;QAGvC,IAAmB,CAAA,mBAAA,GAAa,EAAE;QAClC,IAAc,CAAA,cAAA,GAAG,KAAK;QACtB,IAAU,CAAA,UAAA,GAA4B,EAAE;QACxC,IAAiB,CAAA,iBAAA,GAAG,KAAK;;AAgQzB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAsB;QAxP/C,IAAI,OAAO,EAAC;YACR,IAAI,CAAC,OAAO,GAAG;AACX,gBAAA,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,YAAY;gBAC5C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;AACjD,gBAAA,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI;aAC7B;;aACF;YACD,IAAI,CAAC,OAAO,GAAG;AACX,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;AAC3B,gBAAA,OAAO,EAAE;aACZ;;AAGL,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,YAAY,EAAE;AACnE,YAAA,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,YAAY;;QAEvC,MAAM,YAAY,GAAG,QAAQ,CAAa,EAAE,UAAU,EAAE,KAAK,EAAE,CAAiC;;QAG/F,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9D,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AACpE,QAAA,YAAY,CAAC,UAAU,GAAG,CAAC;;AAE5B,QAAA,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;YACxC,KAAK,EAAE,YAAW;AAClB,gBAAA,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,aAAa,EAAE;gBACjD,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;oBAC9B,YAAY,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU;;AAEtD,gBAAA,OAAO,MAAM;aACZ;AACD,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,YAAY,EAAE;AACjB,SAAA,CAAC;;AAED,QAAA,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE;AAC1C,YAAA,KAAK,EAAE,CAAC,KAAiB,KAAI;AAC3B,gBAAA,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU;AAC3C,gBAAA,OAAO,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC;aACzC;AACD,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,YAAY,EAAE;AACf,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,CAAC,GAAG,YAAY;QACtB,IAAI,CAAC,aAAa,EAAE;;AAItB,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU;;;AAIlB,IAAA,MAAM,QAAQ,GAAA;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AAClC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU;;AAE9C,QAAA,OAAO,MAAM;;AAGP,IAAA,WAAW,CAAC,GAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;;IAIjB,aAAa,GAAA;AACnB,QAAA,IAAI,CACF,IAAI,CAAC,CAAC,EACN,IAAI,CAAC,eAAe,EAAE,EACtB,IAAI,CAAC,IAAI,CACV,CAAC,KAAK,CAAC,CAAC,GAAU,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;;IAGxC,eAAe,GAAA;AACrB,QAAA,OAAO,iBAAiB,MAAiC,EAAA;AACvD,YAAA,WAAW,MAAM,KAAK,IAAI,MAAM,EAAE;AAChC,gBAAA,MAAM,KAAK;;AAEf,SAAC;;IAGH,MAAM,KAAK,CAAC,IAAiC,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;YAAE;QAEzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,IAAI,GAAG,YAAW;AACtB,gBAAA,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC/C,oBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC9B,oBAAA,OAAO,EAAE;;gBACT,OAAO,GAAG,EAAE;oBACZ,MAAM,CAAC,GAAG,CAAC;;AAEf,aAAC;AAED,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE;AACrB,SAAC,CAAC;;IAGI,MAAM,eAAe,CAAC,IAAiC,EAAA;QAC7D,IAAI,IAAI,YAAY,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE;QACnD,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM;AAC1E,QAAA,OAAO,IAAI;;IAGL,MAAM,WAAW,CAAC,MAAmB,EAAA;AAC3C,QAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAU,EAAE;AAClF,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YACzE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAE,GAAG,GAAG,MAAM,CAAC;AAC3C,YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEpD,YAAA,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;;;AAIjC,IAAA,MAAM,cAAc,CAAC,KAAiB,EAAE,OAAO,GAAG,CAAC,EAAA;AACzD,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,mBAAmB,EAAE;YAEhC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;AAC1C,gBAAA,IAAI;AACA,oBAAA,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;;gBACrB,OAAM,GAAG,EAAC;oBACP,MAAM,CAAC,GAAG,CAAC;;AAEf,gBAAA,OAAO,EAAE;AACX,aAAC,CAAC;;QACF,OAAO,GAAG,EAAE;YACZ,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAQ,EAAE;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;AAC/C,gBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC;;AAEhD,YAAA,MAAM,GAAG;;;AAIL,IAAA,MAAM,mBAAmB,GAAA;QAC/B,MAAM,aAAa,GAAG,EAAE;QACxB,MAAM,WAAW,GAAG,EAAE;QAEtB,OAAO,IAAI,EAAE;AACT,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAA;AAClC,YAAA,IAAI,WAAW,GAAC,CAAC,EAAC;AAChB,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;;YAE9C,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,WAAW,EAAE;AACjD,gBAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;;YAGlC,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW;AAC7E,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,IAAI,CAAC,OAAO,CAAC,UAAW,GAAG,GAAG,EAC9B,GAAG,GAAG,GAAG,CACV;YAED,IAAI,WAAW,GAAG,gBAAgB,IAAI,WAAW,KAAK,CAAC,EAAG;AACxD,gBAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE;AACjD,wBAAA,MAAM,EAAE;4BACN,WAAW;AACX,4BAAA,WAAW,EAAE,GAAG;AAChB,4BAAA,SAAS,EAAE,gBAAgB;AAC3B,4BAAA,WAAW,EAAE;AACd;AACF,qBAAA,CAAC,CAAC;;gBAEL;;AAGF,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,EAAE;AACjD,oBAAA,MAAM,EAAE;wBACN,WAAW;AACX,wBAAA,WAAW,EAAE,GAAG;AAChB,wBAAA,SAAS,EAAE,gBAAgB;AAC3B,wBAAA,WAAW,EAAE;AACd;AACF,iBAAA,CAAC,CAAC;;YAGL,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,EAAE,EACF,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,gBAAgB,CAAC,CAC5D;AACD,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAE/C,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;gBAAE;;;AAKrC,IAAA,mBAAmB,CAAC,OAAe,EAAA;QACzC,MAAM,SAAS,GAAG,EAAE;QACpB,MAAM,QAAQ,GAAG,GAAG;QACpB,OAAO,IAAI,CAAC,GAAG,CACb,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EACtD,QAAQ,CACT;;AAGK,IAAA,MAAM,YAAY,GAAA;QACxB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;YAAE;AACnE,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAE7B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACjC,YAAA,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO;gBAAE;AACzC,YAAA,MAAM,IAAI,CAAC,mBAAmB,EAAE;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAG;YACrC,MAAM,IAAI,EAAE;;AAGd,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;;AAGxB,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,YAAY,IAAI,KAAK;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;AAC7C,YAAA,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY;AACpC,SAAA,CAAC,CAAC;;AAGL,IAAA,MAAM,GAAG,GAAA;AACP,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACZ,QAAA,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI;QAC1B,IAAI,CAAC,OAAO,EAAE;;IAGhB,KAAK,CAAC,MAAM,GAAG,cAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,OAAO,EAAE;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;;IAG1D,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;IAMtB,gBAAgB,CAAC,IAAY,EAAE,QAAsC,EAAA;AACnE,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;AAC/C,QAAA,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;;;AAI9B,IAAA,aAAa,CAAC,KAAkB,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;AACrD,QAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;;;AAIrC,IAAA,yBAAyB,CAAC,MAA+B,EAAA;AAC/D,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAA0B,cAAc,EAAE;YAC1E;AACD,SAAA,CAAC,CAAC;;AAGN;;AChTD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;AAGtB,MAAM,aAAa,CAAA;AAGf,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;;IAG3B,uBAAuB,GAAA;AACrB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe;AAC/B,QAAA,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;AAC1B,QAAA,OAAO,EAAE;;AAEZ;MAGU,gBAAgB,CAAA;AAQzB,IAAA,WAAA,CAAY,IAAW,EAAC,QAAkB,EAAC,KAAY,EAAC,QAAgB,EAAA;AACpE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,QAAQ,EAAE;AACV,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;aACvB;AACA,YAAA,IAAI,CAAC,QAAQ,GAAG,kBAAkB;;AAEvC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,EAAE;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGtB,IAAA,QAAQ,CAAC,KAAY,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAItB,IAAA,MAAM,SAAS,CAAC,MAAa,EAAE,WAAsB,EAAC,OAAc,EAAA;QAChE,IAAI,MAAM,GAAe,IAAI;QAC7B,IAAI,YAAY,GAAsB,IAAI;AAC1C,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;QACzB,IAAI,QAAQ,GAAG,KAAK;QACpB,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,IAAI;;AAGA,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtD,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;AACjD,gBAAA,kBAAkB,EAAE;AACrB,aAAA,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE;YAC5D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,YAAA,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC;YAEtC,MAAM,CAAC,MAAM,GAAG,CAAC,OAAO,EAAC,WAAW,KAAI;AACpC,gBAAA,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtC,aAAC;AACD,YAAA,MAAM,CAAC,UAAU,GAAG,MAAK;AACrB,gBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAChC,gBAAA,MAAM,eAAe,GAAG,UAAU,CAAC,sBAAsB,EAAE;AAC3D,gBAAA,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;AACjC,aAAC;YACD,MAAM,CAAC,SAAS,GAAG,CAAC,OAAO,EAAC,MAAM,KAAI;gBAClC,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACtD,gBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC;gBAC9C,IAAI,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;AACzC,oBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;;qBAC7B,IAAI,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE;oBACtD,QAAQ,GAAG,IAAI;oBACf,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB;;AAEvE,aAAC;AACD,YAAA,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;;AAE5B,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,EAAE;AAC1C,YAAA,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;;AAE3B,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,mBAAmB,EAAE;AACpD,YAAA,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AAC/B,YAAA,MAAM,MAAM,CAAC,kBAAkB,EAAE;;AAEjC,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,kBAAkB,CAAE,QAAQ,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,CAAC,KAAK,CAAC;AACnF,YAAA,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;;AAE/B,YAAA,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAE,QAAQ,EAAC,WAAW,EAAE,IAAI,CAAC;;AAEzE,YAAA,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;;YAE7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AAClC,gBAAA,MAAM,CAAC,GAAG,UAAU,CAAC,MAAK;AACtB,oBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBAC7C,EAAE,OAAO,CAAC;gBACX,MAAM,aAAa,GAAG,MAAK;AACvB,oBAAA,IAAI,YAAY,IAAI,QAAQ,EAAE;wBAC1B,YAAY,CAAC,CAAC,CAAC;wBACf,OAAO,CAAC,YAAY,CAAC;;yBAClB;AACH,wBAAA,UAAU,CAAC,aAAa,EAAE,EAAE,CAAC;;AAErC,iBAAC;AACD,gBAAA,aAAa,EAAE;AACnB,aAAC,CAAC;AACF,YAAA,MAAM,MAAM,CAAC,GAAG,EAAE;;QACpB,OAAO,GAAG,EAAE;AACV,YAAA,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC;AACtC,YAAA,MAAM,GAAG;;gBACL;YACJ,IAAI,MAAM,EAAE;AACR,gBAAA,MAAM,MAAM,CAAC,KAAK,EAAE;;;QAG5B,IAAI,QAAQ,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;;QAE3B,IAAI,CAAC,YAAY,EAAE;AAChB,YAAA,YAAY,GAAG,IAAI,UAAU,EAAE;;AAElC,QAAA,OAAO,YAAY;;AAGvB,IAAA,MAAO,IAAI,CACP,MAAc,EACd,WAAuB,EACvB,OAAe,EACf,IAAyE,EACzE,cAA6C,EAC7C,kBAAoD,EACpD,aAA0B,EAC1B,eAA0C,EAAA;AAE1C,QAAA,MAAM,cAAc,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,KAClD,UAAU,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,CACpE;QACD,IAAI,QAAQ,GAAG,KAAK;QACpB,IAAI,MAAM,GAAG,EAAE;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE;AACzB,QAAA,MAAM,gBAAgB,GAAG,CAAC,YAAW;YACnC,IAAI,MAAM,GAAkB,IAAI;AAChC,YAAA,IAAI;AACF,gBAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACtD,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,EAAE;gBAC5D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,gBAAA,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC;;gBAGtC,MAAM,CAAC,MAAM,GAAG,OAAO,OAAO,EAAE,WAAW,KAAmB;AAC5D,oBAAA,IAAI;wBACF,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;;oBACnC,OAAO,KAAc,EAAE;AACvB,wBAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC;wBAC9C,IAAI,eAAe,EAAE;4BACnB,eAAe,CAAC,KAAK,CAAC;;6BACjB;AACL,4BAAA,MAAM,KAAK;;;AAGjB,iBAAC;AACD,gBAAA,MAAM,CAAC,UAAU,GAAG,MAAK;AACrB,oBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAChC,oBAAA,MAAM,eAAe,GAAG,UAAU,CAAC,sBAAsB,EAAE;AAC3D,oBAAA,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;AACjC,iBAAC;gBACD,MAAM,CAAC,SAAS,GAAG,CAAC,OAAO,EAAC,MAAM,KAAI;oBAClC,MAAM,YAAY,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACtD,oBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC;oBAC9C,IAAI,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;AACzC,wBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;;yBAC7B,IAAI,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE;wBACtD,QAAQ,GAAG,IAAI;wBACf,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,kBAAkB;;AAEvE,iBAAC;AACD,gBAAA,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;;AAE5B,gBAAA,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,EAAE;AAC1C,gBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;;AAG3B,gBAAA,MAAM,YAAY,GAAG,UAAU,CAAC,mBAAmB,EAAE;AACrD,gBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;;AAEhC,gBAAA,MAAM,MAAM,CAAC,kBAAkB,EAAE;;AAEjC,gBAAA,MAAM,eAAe,GAAG,UAAU,CAAC,sBAAsB,EAAE;AAC3D,gBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;;AAInC,gBAAA,MAAM,WAAW,GAAG,UAAU,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAC,IAAI,CAAC,KAAK,CAAC;gBACpF,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,kBAAkB,EAAE;AACnD,oBAAA,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAC,WAAW,EAAG,IAAI,CAAC;AACzE,oBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;;AAC7D,qBAAA,IAAI,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,KAAK,eAAe,KAAK,kBAAkB,EAAE;AAC1F,oBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AAC/B,oBAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,wBAAA,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAC,WAAW,EAAG,KAAK,CAAC;AAC1E,wBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;;oBAE/B,WAAW,MAAM,KAAK,IAAI,kBAAkB,EAAE,EAAE;AAC9C,wBAAA,MAAM,SAAS,GAAG,UAAU,CAAC,eAAe,CAAE,QAAQ,EAAC,KAAK,EAAE,KAAK,CAAC;AACpE,wBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;;AAE/B,oBAAA,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAC,IAAI,UAAU,EAAE,EAAG,IAAI,CAAC;AAC/E,oBAAA,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;AAC9B,oBAAA,MAAM,MAAM,CAAC,GAAG,EAAE;;AAEpB,gBAAA,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAClC,IAAI,aAAa,EAAE;AACjB,oBAAA,aAAa,EAAE;;;YAEjB,OAAO,GAAY,EAAE;gBACrB,IAAI,eAAe,EAAE;oBACnB,eAAe,CAAC,GAAG,CAAC;;qBACf;AACL,oBAAA,IAAI,GAAG,YAAY,KAAK,EAAE;wBACxB,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC;;yBACzC;AACL,wBAAA,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC;;;;oBAGlC;gBACR,IAAI,MAAM,EAAE;AACR,oBAAA,MAAM,MAAM,CAAC,KAAK,EAAE;;;SAG3B,GAAG;QACJ,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;;AAG9D;;;;","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "grpc-libp2p-client",
3
+ "version": "0.0.1",
4
+ "type": "module",
5
+ "description": "grpc-libp2p-client",
6
+ "main": "./dist/index.cjs.js",
7
+ "module": "./dist/index.esm.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.esm.js",
12
+ "require": "./dist/index.cjs.js",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./dc-http2/stream": {
16
+ "import": "./dist/dc-http2/stream.esm.js",
17
+ "require": "./dist/dc-http2/stream.cjs.js",
18
+ "types": "./dist/dc-http2/stream.d.ts"
19
+ },
20
+ "./dc-http2/frame": {
21
+ "import": "./dist/dc-http2/frame.esm.js",
22
+ "require": "./dist/dc-http2/frame.cjs.js",
23
+ "types": "./dist/dc-http2/frame.d.ts"
24
+ },
25
+ "./dc-http2/parser": {
26
+ "import": "./dist/dc-http2/parser.esm.js",
27
+ "require": "./dist/dc-http2/parser.cjs.js",
28
+ "types": "./dist/dc-http2/parser.d.ts"
29
+ },
30
+ "./dc-http2/hpack": {
31
+ "import": "./dist/dc-http2/hpack.esm.js",
32
+ "require": "./dist/dc-http2/hpack.cjs.js",
33
+ "types": "./dist/dc-http2/hpack.d.ts"
34
+ }
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "src"
39
+ ],
40
+ "scripts": {
41
+ "build:w": "rollup -c -w",
42
+ "build": "rollup -c",
43
+ "test": "echo \"Error: no test specified\" && exit 1",
44
+ "dev": "nodemon --watch ./ --ext ts,tsx,js,jsx,json --ignore 'src/**/*.test.ts' --exec 'npx yalc push'"
45
+ },
46
+ "author": "",
47
+ "license": "ISC",
48
+ "dependencies": {
49
+ "@libp2p/interface": "^2.9.0",
50
+ "it-pipe": "^3.0.1",
51
+ "it-pushable": "^3.2.3",
52
+ "libp2p": "^2.8.1",
53
+ "@multiformats/multiaddr": "^12.4.0"
54
+ },
55
+ "devDependencies": {
56
+ "@rollup/plugin-commonjs": "^28.0.3",
57
+ "@rollup/plugin-json": "^6.1.0",
58
+ "@rollup/plugin-node-resolve": "^16.0.1",
59
+ "@rollup/plugin-typescript": "^12.1.2",
60
+ "nodemon": "^3.1.9",
61
+ "rollup-plugin-dts": "^6.2.1",
62
+ "tslib": "^2.8.1",
63
+ "typescript": "^5.8.3"
64
+ }
65
+ }
@@ -0,0 +1,79 @@
1
+ import type { FrameHeader,Frame,FrameSettingPayload } from './types';
2
+
3
+
4
+ class FrameEncoder {
5
+ // ็ผ–็ SETTINGSๅธง
6
+ static encodeSettingsFrame(frame:Frame):Uint8Array {
7
+ // ่ฎก็ฎ—payloadๆ€ป้•ฟๅบฆ๏ผšๆฏไธช่ฎพ็ฝฎ้กนๅ 6ๅญ—่Š‚
8
+ const payloadLength = frame.payload.length * 6;
9
+ // ๅˆ†้…็ผ“ๅ†ฒๅŒบ๏ผš9ๅญ—่Š‚ๅคด้ƒจ + payload้•ฟๅบฆ
10
+ const buffer = new Uint8Array(9 + payloadLength);
11
+ // ็ผ–็ ๅธงๅคด้ƒจ๏ผˆๅ‰9ไธชๅญ—่Š‚๏ผ‰
12
+ _encodeFrameHeader(buffer, {
13
+ length: payloadLength,
14
+ type: frame.type,
15
+ flags: frame.flags,
16
+ streamId: frame.streamId
17
+ });
18
+ // ็ผ–็ payload
19
+ _encodeSettingsPayload(buffer, frame.payload);
20
+ return buffer;
21
+ }
22
+ // ็ผ–็ SETTINGS ACKๅธง
23
+ static encodeSettingsAckFrame():Uint8Array {
24
+ const buffer = new Uint8Array(9); // ACKๅธงๅชๆœ‰ๅคด้ƒจ
25
+ _encodeFrameHeader(buffer, {
26
+ length: 0,
27
+ type: 0x4, // SETTINGS
28
+ flags: 0x1, // ACK
29
+ streamId: 0
30
+ });
31
+ return buffer;
32
+ }
33
+ }
34
+
35
+ // ็ผ–็ ๅธงๅคด้ƒจ๏ผˆ9ๅญ—่Š‚๏ผ‰
36
+ function _encodeFrameHeader(buffer:Uint8Array, header:FrameHeader) {
37
+ // Length: 3 bytes
38
+ const length = header.length ?? 0;
39
+ buffer[0] = (length >> 16) & 0xFF;
40
+ buffer[1] = (length >> 8) & 0xFF;
41
+ buffer[2] = length & 0xFF;
42
+ // Type: 1 byte
43
+ buffer[3] = header.type;
44
+ // Flags: 1 byte
45
+ buffer[4] = header.flags;
46
+ // Stream Identifier: 4 bytes
47
+ _writeUInt32BE(buffer, header.streamId & 0x7FFFFFFF, 5);
48
+ }
49
+
50
+ // ็ผ–็ SETTINGS payload
51
+ function _encodeSettingsPayload(buffer:Uint8Array, payload:FrameSettingPayload) {
52
+ let offset = 9; // ไปŽ็ฌฌ9ไธชๅญ—่Š‚ๅผ€ๅง‹
53
+ payload.forEach(setting => {
54
+ // ๅ†™ๅ…ฅ2ๅญ—่Š‚็š„ๆ ‡่ฏ†็ฌฆ
55
+ _writeUInt16BE(buffer, setting.identifier, offset);
56
+ offset += 2;
57
+ // ๅ†™ๅ…ฅ4ๅญ—่Š‚็š„ๅ€ผ
58
+ _writeUInt32BE(buffer, setting.value, offset);
59
+ offset += 4;
60
+ });
61
+ }
62
+
63
+ // ๅ†™ๅ…ฅ16ไฝๆ— ็ฌฆๅทๆ•ดๆ•ฐ๏ผˆๅคง็ซฏๅบ๏ผ‰
64
+ function _writeUInt16BE(buffer:Uint8Array, value:number, offset:number ) {
65
+ buffer[offset] = (value >> 8) & 0xFF;
66
+ buffer[offset + 1] = value & 0xFF;
67
+ }
68
+
69
+ // ๅ†™ๅ…ฅ32ไฝๆ— ็ฌฆๅทๆ•ดๆ•ฐ๏ผˆๅคง็ซฏๅบ๏ผ‰
70
+ function _writeUInt32BE(buffer:Uint8Array, value:number, offset:number) {
71
+ buffer[offset] = (value >> 24) & 0xFF;
72
+ buffer[offset + 1] = (value >> 16) & 0xFF;
73
+ buffer[offset + 2] = (value >> 8) & 0xFF;
74
+ buffer[offset + 3] = value & 0xFF;
75
+ }
76
+
77
+
78
+
79
+ export {FrameEncoder};
@@ -0,0 +1,239 @@
1
+ import { HPACK } from './hpack'
2
+ import type {Byte,Frame,FrameSettingPayload} from './types'
3
+ import {FrameEncoder} from './encoder'
4
+
5
+ const SETTINGS_PARAMETERS = {
6
+ HEADER_TABLE_SIZE: 0x1,
7
+ ENABLE_PUSH: 0x2,
8
+ MAX_CONCURRENT_STREAMS: 0x3,
9
+ INITIAL_WINDOW_SIZE: 0x4,
10
+ MAX_FRAME_SIZE: 0x5,
11
+ MAX_HEADER_LIST_SIZE: 0x6
12
+ };
13
+
14
+ const defaultSettings = {
15
+ [SETTINGS_PARAMETERS.HEADER_TABLE_SIZE]: 4096,
16
+ [SETTINGS_PARAMETERS.ENABLE_PUSH]: 1,
17
+ [SETTINGS_PARAMETERS.MAX_CONCURRENT_STREAMS]: 100,
18
+ [SETTINGS_PARAMETERS.INITIAL_WINDOW_SIZE]: 4<<20,
19
+ [SETTINGS_PARAMETERS.MAX_FRAME_SIZE]:4<<20 , // 4MB
20
+ [SETTINGS_PARAMETERS.MAX_HEADER_LIST_SIZE]: 8192
21
+ };
22
+
23
+ const HTTP2_PREFACE = 'PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n'
24
+
25
+ export class Http2Frame {
26
+
27
+
28
+
29
+ // ๅˆ›ๅปบๅนถ็ผ–็ PREFACEๅธง
30
+ static createPreface():Uint8Array {
31
+ return new TextEncoder().encode(HTTP2_PREFACE);
32
+ }
33
+ static createPongFrame(payload:Uint8Array):Uint8Array {
34
+ return Http2Frame.createFrame(0x6, 0x1, 0, payload)
35
+ }
36
+ // ๅˆ›ๅปบๅนถ็ผ–็ SETTINGSๅธง
37
+ static createSettingsFrame(settings = {}) {
38
+ // ๅ…ˆๅˆ›ๅปบๅธงๅฏน่ฑก
39
+ const frame = Http2Frame.createOriginSettingsFrame(settings);
40
+ // ็„ถๅŽ็ผ–็ 
41
+ return FrameEncoder.encodeSettingsFrame(frame);
42
+ }
43
+ // ๅˆ›ๅปบๅนถ็ผ–็ SETTINGS ACKๅธง
44
+ static createSettingsAckFrame() {
45
+ return FrameEncoder.encodeSettingsAckFrame();
46
+ }
47
+
48
+
49
+ static createDataFrames(streamId: number, data: Uint8Array,shouldEnd: boolean = false, maxFrameSize: number = 1024): Uint8Array[] {
50
+ const frames: Uint8Array[] = [];
51
+ let offset = 0;
52
+
53
+ while (offset < data.length) {
54
+ const chunkSize = Math.min(maxFrameSize, data.length - offset);
55
+ const chunk = data.slice(offset, offset + chunkSize);
56
+ let isEndStream = shouldEnd && (offset + chunkSize >= data.length); // ๆœ€ๅŽไธ€ๅธง่ฎพ็ฝฎ END_STREAM
57
+ const frame = Http2Frame.createDataFrame(streamId, chunk, isEndStream);
58
+ frames.push(frame);
59
+ offset += chunkSize;
60
+ }
61
+
62
+ return frames;
63
+ }
64
+
65
+ static createDataFrame( streamId:number,data:Uint8Array,endStream:boolean = true):Uint8Array {
66
+ // gRPC ๆถˆๆฏๆ ผๅผ: ๅŽ‹็ผฉๆ ‡ๅฟ—(1ๅญ—่Š‚) + ๆถˆๆฏ้•ฟๅบฆ(4ๅญ—่Š‚) + ๆถˆๆฏๅ†…ๅฎน
67
+ const messageLen = data.length
68
+ const framedData = new Uint8Array(5+messageLen)
69
+
70
+ // Compression flag (0 = ไธๅŽ‹็ผฉ)
71
+ framedData[0] = 0
72
+
73
+ // Message length (4 bytes)
74
+ framedData[1] = (messageLen >> 24) & 0xFF
75
+ framedData[2] = (messageLen >> 16) & 0xFF
76
+ framedData[3] = (messageLen >> 8) & 0xFF
77
+ framedData[4] = messageLen & 0xFF
78
+
79
+ // Message content
80
+ framedData.set(data, 5)
81
+
82
+ const flags = endStream ? 0x01 : 0x0 // END_STREAM flag
83
+ return Http2Frame.createFrame(0x0, flags, streamId, framedData)
84
+ }
85
+
86
+ static createHeadersFrame(streamId:number,path:string, endHeaders:boolean = true,token?:string):Uint8Array {
87
+ // gRPC-Web ้œ€่ฆ็š„ๆ ‡ๅ‡† headers
88
+ const headersList: { [key: string]: string } = {
89
+ ':path': path,
90
+ ':method': 'POST',
91
+ ':scheme': 'http',
92
+ ':authority': 'localhost',
93
+ 'content-type': 'application/grpc+proto',
94
+ 'user-agent': 'grpc-web-client/0.1',
95
+ 'accept': 'application/grpc+proto',
96
+ 'grpc-timeout': '20S'
97
+ };
98
+ if (token) {
99
+ headersList['authorization'] = `Bearer ${token}`
100
+ }
101
+ // ๅฐ† headers ็ผ–็ ไธบ HPACK ๆ ผๅผ
102
+ const hpack = new HPACK();
103
+ const encodedHeaders = hpack.encode(headersList);
104
+ console.log('Encoded:', encodedHeaders);
105
+ // HEADERS frame flags: END_HEADERS | END_STREAM
106
+ const flags = endHeaders ? 0x04 : 0x00
107
+ return Http2Frame.createFrame(0x01, flags, streamId, encodedHeaders)
108
+ }
109
+
110
+ static createResponseHeadersFrame(streamId:number,headersList:{ [key: string]: string }, endHeaders:boolean = true):Uint8Array {
111
+ // ๅฐ† headers ็ผ–็ ไธบ HPACK ๆ ผๅผ
112
+ const hpack = new HPACK();
113
+ const encodedHeaders = hpack.encode(headersList);
114
+ console.log('Encoded:', encodedHeaders);
115
+ // HEADERS frame flags: END_HEADERS | END_STREAM
116
+ const flags = endHeaders ? 0x04 : 0x00
117
+ return Http2Frame.createFrame(0x01, flags, streamId, encodedHeaders)
118
+ }
119
+
120
+
121
+ static createTrailersFrame(streamId: number, trailers: { [key: string]: string }): Uint8Array {
122
+ // ๅฐ† trailers ็ผ–็ ไธบ HPACK ๆ ผๅผ
123
+ const hpack = new HPACK();
124
+ const encodedTrailers = hpack.encode(trailers);
125
+
126
+ // HEADERS frame flags: END_HEADERS | END_STREAM
127
+ const flags = 0x05; // 0x04 (END_HEADERS) | 0x01 (END_STREAM)
128
+ return Http2Frame.createFrame(0x01, flags, streamId, encodedTrailers);
129
+ }
130
+
131
+
132
+ // ๅˆ›ๅปบ SETTINGS ๅธง
133
+ static createOriginSettingsFrame(settings = {}):Frame {
134
+
135
+
136
+ // ๅˆๅนถ้ป˜่ฎคๅ€ผๅ’Œ็”จๆˆทๆไพ›็š„่ฎพ็ฝฎ
137
+ const finalSettings = { ...defaultSettings, ...settings };
138
+ // ้ชŒ่ฏ่ฎพ็ฝฎๅ€ผ
139
+ _validateSettings(finalSettings);
140
+ // ๅˆ›ๅปบๅธง
141
+ const frame = {
142
+ type: 0x4, // SETTINGS frame type
143
+ flags: 0x0, // ๆ— ๆ ‡ๅฟ—
144
+ streamId: 0, // SETTINGS ๆ€ปๆ˜ฏๅœจ stream 0 ไธŠๅ‘้€
145
+ payload: _createPayload(finalSettings)
146
+ };
147
+ return frame;
148
+ }
149
+
150
+ // ๅˆ›ๅปบ็กฎ่ฎคๅธง๏ผˆSETTINGS ACK๏ผ‰
151
+ static createOriginSettingsAckFrame() {
152
+ return {
153
+ type: 0x4, // SETTINGS frame type
154
+ flags: 0x1, // ACK flag
155
+ streamId: 0,
156
+ payload: [] // ACK ๅธงๆฒกๆœ‰payload
157
+ };
158
+ }
159
+
160
+ static createFrame(type:Byte, flags:Byte, streamId:number, payload:Uint8Array):Uint8Array {
161
+ const length = payload ? payload.length : 0
162
+ const frame = new Uint8Array(9 + length) // 9 bytes for header + payload
163
+
164
+ // Length (24 bits)
165
+ frame[0] = (length >> 16) & 0xFF
166
+ frame[1] = (length >> 8) & 0xFF
167
+ frame[2] = length & 0xFF
168
+
169
+ // Type (8 bits)
170
+ frame[3] = type
171
+
172
+ // Flags (8 bits)
173
+ frame[4] = flags
174
+
175
+ // Stream Identifier (32 bits)
176
+ frame[5] = (streamId >> 24) & 0xFF
177
+ frame[6] = (streamId >> 16) & 0xFF
178
+ frame[7] = (streamId >> 8) & 0xFF
179
+ frame[8] = streamId & 0xFF
180
+
181
+ if (payload && length > 0) {
182
+ frame.set(payload, 9)
183
+ }
184
+ return frame
185
+ }
186
+ }
187
+
188
+ // ้ชŒ่ฏ่ฎพ็ฝฎๅ€ผ
189
+ function _validateSettings(settings: { [key: Byte]: number }) {
190
+ for (const [id, value] of Object.entries(settings)) {
191
+ switch (Number(id)) {
192
+ case SETTINGS_PARAMETERS.HEADER_TABLE_SIZE:
193
+ if (value < 0) {
194
+ throw new Error('HEADER_TABLE_SIZE must be non-negative');
195
+ }
196
+ break;
197
+
198
+ case SETTINGS_PARAMETERS.ENABLE_PUSH:
199
+ if (value !== 0 && value !== 1) {
200
+ throw new Error('ENABLE_PUSH must be 0 or 1');
201
+ }
202
+ break;
203
+
204
+ case SETTINGS_PARAMETERS.INITIAL_WINDOW_SIZE:
205
+ if (value < 0 || value > 2147483647) { // 2^31 - 1
206
+ throw new Error('INITIAL_WINDOW_SIZE must be between 0 and 2^31-1');
207
+ }
208
+ break;
209
+
210
+ case SETTINGS_PARAMETERS.MAX_FRAME_SIZE:
211
+ if (value < 16384 || value > 16777215) { // 2^14 to 2^24-1
212
+ throw new Error('MAX_FRAME_SIZE must be between 16,384 and 16,777,215');
213
+ }
214
+ break;
215
+
216
+ case SETTINGS_PARAMETERS.MAX_CONCURRENT_STREAMS:
217
+ case SETTINGS_PARAMETERS.MAX_HEADER_LIST_SIZE:
218
+ if (value < 0) {
219
+ throw new Error(`Parameter ${id} must be non-negative`);
220
+ }
221
+ break;
222
+
223
+ default:
224
+ console.warn(`Unknown settings parameter: ${id}`);
225
+ }
226
+ }
227
+ }
228
+
229
+ // ๅˆ›ๅปบpayload
230
+ function _createPayload(settings: { [key: Byte]: number }) {
231
+ const payload: FrameSettingPayload = [];
232
+ for (const [id, value] of Object.entries(settings)) {
233
+ payload.push({
234
+ identifier: Number(id),
235
+ value: value
236
+ });
237
+ }
238
+ return payload;
239
+ }