minotor 11.2.2 → 11.2.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"router.umd.js","sources":["../src/timetable/time.ts","../src/routing/plotter.ts","../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js","../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js","../src/timetable/proto/v1/timetable.ts","../src/timetable/route.ts","../src/timetable/tripStopId.ts","../src/timetable/io.ts","../src/timetable/timetable.ts","../src/routing/query.ts","../src/routing/route.ts","../src/routing/result.ts","../src/routing/access.ts","../src/routing/state.ts","../src/routing/plainRouter.ts","../src/routing/rangeResult.ts","../src/routing/rangeState.ts","../src/routing/rangeRouter.ts","../src/routing/raptor.ts","../node_modules/tinyqueue/index.js","../node_modules/geokdbush/index.js","../node_modules/kdbush/index.js","../node_modules/slimsearch/dist/index.js","../src/stops/i18n.ts","../src/stops/proto/v1/stops.ts","../src/stops/io.ts","../src/stops/stopsIndex.ts","../src/routing/router.ts"],"sourcesContent":[null,null,"// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./wire/varint.js\";\n/**\n * Int64Support for the current environment.\n */\nexport const protoInt64 = /*@__PURE__*/ makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (!!globalThis.Deno ||\n typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\");\n const MAX = BigInt(\"9223372036854775807\");\n const UMIN = BigInt(\"0\");\n const UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nexport function configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nexport function getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (_) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./varint.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { getTextEncoding } from \"./text-encoding.js\";\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexport const UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MIN = -0x80000000;\nexport class BinaryWriter {\n constructor(encodeUtf8 = getTextEncoding().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n this.buf = [];\n }\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n const tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n const tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, decodeUtf8 = getTextEncoding().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true\n case WireType.Bit64:\n this.pos += 4;\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > INT32_MAX ||\n arg < INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (Number.isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > FLOAT32_MAX || arg < FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\nexport default class TinyQueue {\n constructor(data = [], compare = defaultCompare) {\n this.data = data;\n this.length = this.data.length;\n this.compare = compare;\n\n if (this.length > 0) {\n for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n }\n }\n\n push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.data[0];\n const bottom = this.data.pop();\n this.length--;\n\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n\n return top;\n }\n\n peek() {\n return this.data[0];\n }\n\n _up(pos) {\n const {data, compare} = this;\n const item = data[pos];\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const current = data[parent];\n if (compare(item, current) >= 0) break;\n data[pos] = current;\n pos = parent;\n }\n\n data[pos] = item;\n }\n\n _down(pos) {\n const {data, compare} = this;\n const halfLength = this.length >> 1;\n const item = data[pos];\n\n while (pos < halfLength) {\n let left = (pos << 1) + 1;\n let best = data[left];\n const right = left + 1;\n\n if (right < this.length && compare(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare(best, item) >= 0) break;\n\n data[pos] = best;\n pos = left;\n }\n\n data[pos] = item;\n }\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","\nimport TinyQueue from 'tinyqueue';\n\nconst earthRadius = 6371;\nconst rad = Math.PI / 180;\n\nexport function around(index, lng, lat, maxResults = Infinity, maxDistance = Infinity, predicate) {\n let maxHaverSinDist = 1;\n const result = [];\n\n if (maxResults === undefined) maxResults = Infinity;\n if (maxDistance !== undefined) maxHaverSinDist = haverSin(maxDistance / earthRadius);\n\n // a distance-sorted priority queue that will contain both points and kd-tree nodes\n const q = new TinyQueue([], compareDist);\n\n // an object that represents the top kd-tree node (the whole Earth)\n let node = {\n left: 0, // left index in the kd-tree array\n right: index.ids.length - 1, // right index\n axis: 0, // 0 for longitude axis and 1 for latitude axis\n dist: 0, // will hold the lower bound of children's distances to the query point\n minLng: -180, // bounding box of the node\n minLat: -90,\n maxLng: 180,\n maxLat: 90\n };\n\n const cosLat = Math.cos(lat * rad);\n\n while (node) {\n const right = node.right;\n const left = node.left;\n\n if (right - left <= index.nodeSize) { // leaf node\n\n // add all points of the leaf node to the queue\n for (let i = left; i <= right; i++) {\n const id = index.ids[i];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, index.coords[2 * i], index.coords[2 * i + 1], cosLat);\n q.push({id, dist});\n }\n }\n\n } else { // not a leaf node (has child nodes)\n\n const m = (left + right) >> 1; // middle index\n const midLng = index.coords[2 * m];\n const midLat = index.coords[2 * m + 1];\n\n // add middle point to the queue\n const id = index.ids[m];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, midLng, midLat, cosLat);\n q.push({id, dist});\n }\n\n const nextAxis = (node.axis + 1) % 2;\n\n // first half of the node\n const leftNode = {\n left,\n right: m - 1,\n axis: nextAxis,\n minLng: node.minLng,\n minLat: node.minLat,\n maxLng: node.axis === 0 ? midLng : node.maxLng,\n maxLat: node.axis === 1 ? midLat : node.maxLat,\n dist: 0\n };\n // second half of the node\n const rightNode = {\n left: m + 1,\n right,\n axis: nextAxis,\n minLng: node.axis === 0 ? midLng : node.minLng,\n minLat: node.axis === 1 ? midLat : node.minLat,\n maxLng: node.maxLng,\n maxLat: node.maxLat,\n dist: 0\n };\n\n leftNode.dist = boxDist(lng, lat, cosLat, leftNode);\n rightNode.dist = boxDist(lng, lat, cosLat, rightNode);\n\n // add child nodes to the queue\n q.push(leftNode);\n q.push(rightNode);\n }\n\n // fetch closest points from the queue; they're guaranteed to be closer\n // than all remaining points (both individual and those in kd-tree nodes),\n // since each node's distance is a lower bound of distances to its children\n while (q.length && q.peek().id != null) {\n const candidate = q.pop();\n if (candidate.dist > maxHaverSinDist) return result;\n result.push(candidate.id);\n if (result.length === maxResults) return result;\n }\n\n // the next closest kd-tree node\n node = q.pop();\n }\n\n return result;\n}\n\n// lower bound for distance from a location to points inside a bounding box\nfunction boxDist(lng, lat, cosLat, node) {\n const minLng = node.minLng;\n const maxLng = node.maxLng;\n const minLat = node.minLat;\n const maxLat = node.maxLat;\n\n // query point is between minimum and maximum longitudes\n if (lng >= minLng && lng <= maxLng) {\n if (lat < minLat) return haverSin((lat - minLat) * rad);\n if (lat > maxLat) return haverSin((lat - maxLat) * rad);\n return 0;\n }\n\n // query point is west or east of the bounding box;\n // calculate the extremum for great circle distance from query point to the closest longitude;\n const haverSinDLng = Math.min(haverSin((lng - minLng) * rad), haverSin((lng - maxLng) * rad));\n const extremumLat = vertexLat(lat, haverSinDLng);\n\n // if extremum is inside the box, return the distance to it\n if (extremumLat > minLat && extremumLat < maxLat) {\n return haverSinDistPartial(haverSinDLng, cosLat, lat, extremumLat);\n }\n // otherwise return the distan e to one of the bbox corners (whichever is closest)\n return Math.min(\n haverSinDistPartial(haverSinDLng, cosLat, lat, minLat),\n haverSinDistPartial(haverSinDLng, cosLat, lat, maxLat)\n );\n}\n\nfunction compareDist(a, b) {\n return a.dist - b.dist;\n}\n\nfunction haverSin(theta) {\n const s = Math.sin(theta / 2);\n return s * s;\n}\n\nfunction haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2) {\n return cosLat1 * Math.cos(lat2 * rad) * haverSinDLng + haverSin((lat1 - lat2) * rad);\n}\n\nfunction haverSinDist(lng1, lat1, lng2, lat2, cosLat1) {\n const haverSinDLng = haverSin((lng1 - lng2) * rad);\n return haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2);\n}\n\nexport function distance(lng1, lat1, lng2, lat2) {\n const h = haverSinDist(lng1, lat1, lng2, lat2, Math.cos(lat1 * rad));\n return 2 * earthRadius * Math.asin(Math.sqrt(h));\n}\n\nfunction vertexLat(lat, haverSinDLng) {\n const cosDLng = 1 - 2 * haverSinDLng;\n if (cosDLng <= 0) return lat > 0 ? 90 : -90;\n return Math.atan(Math.tan(lat * rad) / cosDLng) / rad;\n}\n","\nconst ARRAY_TYPES = [\n Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array,\n Int32Array, Uint32Array, Float32Array, Float64Array\n];\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nconst VERSION = 1; // serialized format version\nconst HEADER_SIZE = 8;\n\nexport default class KDBush {\n\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(data) {\n if (!(data instanceof ArrayBuffer)) {\n throw new Error('Data must be an instance of ArrayBuffer.');\n }\n const [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xdb) {\n throw new Error('Data does not appear to be in a KDBush format.');\n }\n const version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(`Got v${version} data when expected v${VERSION}.`);\n }\n const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n const [nodeSize] = new Uint16Array(data, 2, 1);\n const [numItems] = new Uint32Array(data, 4, 1);\n\n return new KDBush(numItems, nodeSize, ArrayType, data);\n }\n\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(numItems, nodeSize = 64, ArrayType = Float64Array, data) {\n if (isNaN(numItems) || numItems < 0) throw new Error(`Unpexpected numItems value: ${numItems}.`);\n\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n this.ArrayType = ArrayType;\n this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array;\n\n const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n const coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT;\n const idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT;\n const padCoords = (8 - idsByteSize % 8) % 8;\n\n if (arrayTypeIndex < 0) {\n throw new Error(`Unexpected typed array class: ${ArrayType}.`);\n }\n\n if (data && (data instanceof ArrayBuffer)) { // reconstruct an index from a buffer\n this.data = data;\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = numItems * 2;\n this._finished = true;\n } else { // initialize a new index\n this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords);\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = 0;\n this._finished = false;\n\n // set header\n new Uint8Array(this.data, 0, 2).set([0xdb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n }\n\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(x, y) {\n const index = this._pos >> 1;\n this.ids[index] = index;\n this.coords[this._pos++] = x;\n this.coords[this._pos++] = y;\n return index;\n }\n\n /**\n * Perform indexing of the added points.\n */\n finish() {\n const numAdded = this._pos >> 1;\n if (numAdded !== this.numItems) {\n throw new Error(`Added ${numAdded} items when expected ${this.numItems}.`);\n }\n // kd-sort both arrays for efficient search\n sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0);\n\n this._finished = true;\n return this;\n }\n\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(minX, minY, maxX, maxY) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n\n // recursively search for items in range in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(qx, qy, r) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n // recursively search for items within radius in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} nodeSize\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction sort(ids, coords, nodeSize, left, right, axis) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1; // middle index\n\n // sort ids and coords around the middle index so that the halves lie\n // either left/right or top/bottom correspondingly (taking turns)\n select(ids, coords, m, left, right, axis);\n\n // recursively kd-sort first half and second half on the opposite axis\n sort(ids, coords, nodeSize, left, m - 1, 1 - axis);\n sort(ids, coords, nodeSize, m + 1, right, 1 - axis);\n}\n\n/**\n * Custom Floyd-Rivest selection algorithm: sort ids and coords so that\n * [left..k-1] items are smaller than k-th item (on either x or y axis)\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} k\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction select(ids, coords, k, left, right, axis) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, axis);\n }\n\n const t = coords[2 * k + axis];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + axis] < t) i++;\n while (coords[2 * j + axis] > t) j--;\n }\n\n if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} i\n * @param {number} j\n */\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\n/**\n * @param {InstanceType<TypedArrayConstructor>} arr\n * @param {number} i\n * @param {number} j\n */\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\n/**\n * @param {number} ax\n * @param {number} ay\n * @param {number} bx\n * @param {number} by\n */\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n","const It=\"ENTRIES\",U=\"KEYS\",B=\"VALUES\",Bt=\"\";class L{set;_type;_path;constructor(e,n){const o=e._tree,s=Array.from(o.keys());this.set=e,this._type=n,this._path=s.length>0?[{node:o,keys:s}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:n}=x(this._path);if(x(n)===\"\")return{done:!1,value:this.result()};const o=e.get(x(n));return this._path.push({node:o,keys:Array.from(o.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=x(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>x(e)).filter(e=>e!==\"\").join(\"\")}value(){return x(this._path).node.get(\"\")}result(){switch(this._type){case B:return this.value();case U:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const x=t=>t[t.length-1],xt=(t,e,n)=>{const o=new Map;if(typeof e!=\"string\")return o;const s=e.length+1,r=s+n,i=new Uint8Array(r*s).fill(n+1);for(let c=0;c<s;++c)i[c]=c;for(let c=1;c<r;++c)i[c*s]=c;return G(t,e,n,o,i,1,s,\"\"),o},G=(t,e,n,o,s,r,i,c)=>{const a=r*i;t:for(const d of t.keys())if(d===\"\"){const u=s[a-1];u<=n&&o.set(c,[t.get(d),u])}else{let u=r;for(let f=0;f<d.length;++f,++u){const m=d[f],_=i*u,g=_-i;let h=s[_];const l=Math.max(0,u-n-1),p=Math.min(i-1,u+n);for(let w=l;w<p;++w){const k=m!==e[w],C=s[g+w]+ +k,z=s[g+w+1]+1,I=s[_+w]+1,F=s[_+w+1]=Math.min(C,z,I);F<h&&(h=F)}if(h>n)continue t}G(t.get(d),e,n,o,s,u,i,c+d)}};class y{_tree;_prefix;_size=void 0;constructor(e=new Map,n=\"\"){this._tree=e,this._prefix=n}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error(\"Mismatched prefix\");const[n,o]=S(this._tree,e.slice(this._prefix.length));if(n===void 0){const[s,r]=A(o);for(const i of s.keys())if(i!==\"\"&&i.startsWith(r)){const c=new Map;return c.set(i.slice(r.length),s.get(i)),new y(c,e)}}return new y(n,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ft(this._tree,e)}entries(){return new L(this,It)}forEach(e){for(const[n,o]of this)e(n,o,this)}fuzzyGet(e,n){return xt(this._tree,e,n)}get(e){const n=O(this._tree,e);return n!==void 0?n.get(\"\"):void 0}has(e){return O(this._tree,e)?.has(\"\")??!1}keys(){return new L(this,U)}set(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");return this._size=void 0,E(this._tree,e).set(\"\",n),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);return o.set(\"\",n(o.get(\"\"))),this}fetch(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);let s=o.get(\"\");return s===void 0&&o.set(\"\",s=n()),s}values(){return new L(this,B)}[Symbol.iterator](){return this.entries()}static from(e){const n=new y;for(const[o,s]of e)n.set(o,s);return n}static fromObject(e){return y.from(Object.entries(e))}}const S=(t,e,n=[])=>{if(e.length===0||t==null)return[t,n];for(const o of t.keys())if(o!==\"\"&&e.startsWith(o))return n.push([t,o]),S(t.get(o),e.slice(o.length),n);return n.push([t,e]),S(void 0,\"\",n)},O=(t,e)=>{if(e.length===0||!t)return t;for(const n of t.keys())if(n!==\"\"&&e.startsWith(n))return O(t.get(n),e.slice(n.length))},E=(t,e)=>{const n=e.length;t:for(let o=0;t&&o<n;){for(const r of t.keys())if(r!==\"\"&&e[o]===r[0]){const i=Math.min(n-o,r.length);let c=1;for(;c<i&&e[o+c]===r[c];)++c;const a=t.get(r);if(c===r.length)t=a;else{const d=new Map;d.set(r.slice(c),a),t.set(e.slice(o,o+c),d),t.delete(r),t=d}o+=c;continue t}const s=new Map;return t.set(e.slice(o),s),s}return t},Ft=(t,e)=>{const[n,o]=S(t,e);if(n!==void 0){if(n.delete(\"\"),n.size===0)K(o);else if(n.size===1){const[s,r]=n.entries().next().value;Q(o,s,r)}}},K=t=>{if(t.length===0)return;const[e,n]=A(t);if(e.delete(n),e.size===0)K(t.slice(0,-1));else if(e.size===1){const[o,s]=e.entries().next().value;o!==\"\"&&Q(t.slice(0,-1),o,s)}},Q=(t,e,n)=>{if(t.length===0)return;const[o,s]=A(t);o.set(s+e,n),o.delete(s)},A=t=>t[t.length-1],Y=(t,e)=>t._idToShortId.has(e),zt=(t,e)=>{const n=t._idToShortId.get(e);if(n!=null)return t._storedFields.get(n)},St=/[\\n\\r\\p{Z}\\p{P}]+/u,V=\"or\",Z=\"and\",bt=\"and_not\",H=t=>new Promise(e=>setTimeout(e,t)),vt=(t,e)=>{t.includes(e)||t.push(e)},X=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},tt=({score:t},{score:e})=>e-t,et=()=>new Map,b=t=>{const e=new Map;for(const n of Object.keys(t))e.set(parseInt(n,10),t[n]);return e},v=async t=>{const e=new Map;let n=0;for(const o of Object.keys(t))e.set(parseInt(o,10),t[o]),++n%1e3===0&&await H(0);return e},T=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,nt={[V]:(t,e)=>{for(const n of e.keys()){const o=t.get(n);if(o==null)t.set(n,e.get(n));else{const{score:s,terms:r,match:i}=e.get(n);o.score=o.score+s,o.match=Object.assign(o.match,i),X(o.terms,r)}}return t},[Z]:(t,e)=>{const n=new Map;for(const o of e.keys()){const s=t.get(o);if(s==null)continue;const{score:r,terms:i,match:c}=e.get(o);X(s.terms,i),n.set(o,{score:s.score+r,terms:s.terms,match:Object.assign(s.match,c)})}return n},[bt]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},kt=(t,e,n,o,s,r)=>{const{k:i,b:c,d:a}=r;return Math.log(1+(n-e+.5)/(e+.5))*(a+t*(i+1)/(t+i*(1-c+c*o/s)))},Ct=t=>(e,n,o)=>({term:e,fuzzy:typeof t.fuzzy==\"function\"?t.fuzzy(e,n,o):t.fuzzy??!1,prefix:typeof t.prefix==\"function\"?t.prefix(e,n,o):t.prefix===!0,termBoost:typeof t.boostTerm==\"function\"?t.boostTerm(e,n,o):1}),ot=(t,e,n,o)=>{for(const s of Object.keys(t._fieldIds))if(t._fieldIds[s]===n){t._options.logger(\"warn\",`SlimSearch: document with ID ${t._documentIds.get(e)} has changed before removal: term \"${o}\" was not present in field \"${s}\". Removing a document after it has changed can corrupt the index!`,\"version_conflict\");return}},st=(t,e,n,o)=>{const s=t._index.fetch(o,et);let r=s.get(e);if(r==null)r=new Map,r.set(n,1),s.set(e,r);else{const i=r.get(n);r.set(n,(i??0)+1)}},M=(t,e,n,o)=>{if(!t._index.has(o)){ot(t,n,e,o);return}const s=t._index.fetch(o,et),r=s.get(e),i=r?.get(n);!r||typeof i>\"u\"?ot(t,n,e,o):i<=1?r.size<=1?s.delete(e):r.delete(n):r.set(n,i-1),t._index.get(o).size===0&&t._index.delete(o)},Lt=(t,e,n,o,s)=>{let r=t._fieldLength.get(e);r==null&&t._fieldLength.set(e,r=[]),r[n]=s;const i=(t._avgFieldLength[n]||0)*o+s;t._avgFieldLength[n]=i/(o+1)},Ot=(t,e)=>{const n=t._nextId;return t._idToShortId.set(e,n),t._documentIds.set(n,e),t._documentCount+=1,t._nextId+=1,n},Et=(t,e,n)=>{const{storeFields:o,extractField:s}=t._options;if(o?.length===0)return;let r=t._storedFields.get(e);r===void 0&&t._storedFields.set(e,r={});for(const i of o){const c=s(n,i);c!=null&&(r[i]=c)}},D=(t,e)=>{const{extractField:n,stringifyField:o,tokenize:s,processTerm:r,fields:i,idField:c}=t._options,a=n(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);if(Y(t,a))throw new Error(`SlimSearch: duplicate ID ${a}`);const d=Ot(t,a);Et(t,d,e);for(const u of i){const f=n(e,u);if(f==null)continue;const m=s(o(f,u),u),_=t._fieldIds[u],g=new Set(m).size;Lt(t,d,_,t._documentCount-1,g);for(const h of m){const l=r(h,u);if(Array.isArray(l))for(const p of l)st(t,_,d,p);else l&&st(t,_,d,l)}}},j=(t,e)=>{for(const n of e)D(t,n)},At=(t,e,n={})=>{const{chunkSize:o=10}=n,s={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:c,promise:a},d,u)=>(c.push(d),(u+1)%o===0?{chunk:[],promise:a.then(()=>new Promise(f=>setTimeout(f,0))).then(()=>j(t,c))}:{chunk:c,promise:a}),s);return i.then(()=>j(t,r))},Vt={k:1.2,b:.7,d:.5},q={idField:\"id\",extractField:(t,e)=>t[e],stringifyField:t=>t.toString(),tokenize:t=>t.split(St),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{console?.[t]?.(e)},autoVacuum:!0},it={combineWith:V,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Vt},Tt={combineWith:Z,prefix:(t,e,n)=>e===n.length-1},$={batchSize:1e3,batchWait:10},N={minDirtFactor:.1,minDirtCount:20},W={...$,...N},Mt=t=>{if(q.hasOwnProperty(t))return T(q,t);throw new Error(`SlimSearch: unknown option \"${t}\"`)},P=Symbol(\"*\"),Dt=(t,e)=>{const n=new Map,o={...t._options.searchOptions,...e};for(const[s,r]of t._documentIds){const i=o.boostDocument?o.boostDocument(r,\"\",t._storedFields.get(s)):1;n.set(s,{score:i,terms:[],match:{}})}return n},rt=(t,e=V)=>{if(t.length===0)return new Map;const n=e.toLowerCase();if(!(n in nt))throw new Error(`Invalid combination operator: ${e}`);return t.reduce(nt[n])},R=(t,e,n,o,s,r,i,c,a,d=new Map)=>{if(r==null)return d;for(const u of Object.keys(i)){const f=i[u],m=t._fieldIds[u],_=r.get(m);if(_==null)continue;let g=_.size;const h=t._avgFieldLength[m];for(const l of _.keys()){if(!t._documentIds.has(l)){M(t,m,l,n),g-=1;continue}const p=c?c(t._documentIds.get(l),n,t._storedFields.get(l)):1;if(!p)continue;const w=_.get(l),k=t._fieldLength.get(l)[m],C=kt(w,g,t._documentCount,k,h,a),z=o*s*f*p*C,I=d.get(l);if(I){I.score+=z,vt(I.terms,e);const F=T(I.match,n);F?F.push(u):I.match[n]=[u]}else d.set(l,{score:z,terms:[e],match:{[n]:[u]}})}}return d},jt=(t,e,n)=>{const o={...t._options.searchOptions,...n},s=(o.fields??t._options.fields).reduce((h,l)=>({...h,[l]:T(o.boost,l)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:c,bm25:a}=o,{fuzzy:d,prefix:u}={...it.weights,...i},f=t._index.get(e.term),m=R(t,e.term,e.term,1,e.termBoost,f,s,r,a);let _,g;if(e.prefix&&(_=t._index.atPrefix(e.term)),e.fuzzy){const h=e.fuzzy===!0?.2:e.fuzzy,l=h<1?Math.min(c,Math.round(e.term.length*h)):h;l&&(g=t._index.fuzzyGet(e.term,l))}if(_)for(const[h,l]of _){const p=h.length-e.term.length;if(!p)continue;g?.delete(h);const w=u*h.length/(h.length+.3*p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}if(g)for(const h of g.keys()){const[l,p]=g.get(h);if(!p)continue;const w=d*h.length/(h.length+p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}return m},ct=(t,e,n={})=>{if(e===P)return Dt(t,n);if(typeof e!=\"string\"){const u={...n,...e,queries:void 0},f=e.queries.map(m=>ct(t,m,u));return rt(f,u.combineWith)}const{tokenize:o,processTerm:s,searchOptions:r}=t._options,i={tokenize:o,processTerm:s,...r,...n},{tokenize:c,processTerm:a}=i,d=c(e).flatMap(u=>a(u)).filter(u=>!!u).map(Ct(i)).map(u=>jt(t,u,i));return rt(d,i.combineWith)},ut=(t,e,n={})=>{const{searchOptions:o}=t._options,s={...o,...n},r=ct(t,e,n),i=[];for(const[c,{score:a,terms:d,match:u}]of r){const f=d.length||1,m={id:t._documentIds.get(c),score:a*f,terms:Object.keys(u),queryTerms:d,match:u};Object.assign(m,t._storedFields.get(c)),(s.filter==null||s.filter(m))&&i.push(m)}return e===P&&s.boostDocument==null||i.sort(tt),i},qt=(t,e,n={})=>{n={...t._options.autoSuggestOptions,...n};const o=new Map;for(const{score:r,terms:i}of ut(t,e,n)){const c=i.join(\" \"),a=o.get(c);a!=null?(a.score+=r,a.count+=1):o.set(c,{score:r,terms:i,count:1})}const s=[];for(const[r,{score:i,terms:c,count:a}]of o)s.push({suggestion:r,terms:c,score:i/a});return s.sort(tt),s};class $t{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(e){if(!e?.fields)throw new Error('SlimSearch: option \"fields\" must be provided');const n=e.autoVacuum==null||e.autoVacuum===!0?W:e.autoVacuum;this._options={...q,...e,autoVacuum:n,searchOptions:{...it,...e.searchOptions},autoSuggestOptions:{...Tt,...e.autoSuggestOptions}},this._index=new y,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=N,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const e=[];for(const[n,o]of this._index){const s={};for(const[r,i]of o)s[r]=Object.fromEntries(i);e.push([n,s])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,version:2}}addFields(e){for(let n=0;n<e.length;n++)this._fieldIds[e[n]]=n}}const dt=t=>`SlimSearch: ${t} should be given the same options used when serializing the index`,at=t=>new $t(t),lt=({documentCount:t,nextId:e,fieldIds:n,averageFieldLength:o,dirtCount:s,version:r},i)=>{if(r!==2)throw new Error(\"SlimSearch: cannot deserialize an index created with an incompatible version\");const c=at(i);return c._documentCount=t,c._nextId=e,c._idToShortId=new Map,c._fieldIds=n,c._avgFieldLength=o,c._dirtCount=s??0,c._index=new y,c},ht=(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=b(o),i._fieldLength=b(s),i._storedFields=b(r);for(const[c,a]of i._documentIds)i._idToShortId.set(a,c);for(const[c,a]of n){const d=new Map;for(const u of Object.keys(a))d.set(parseInt(u,10),b(a[u]));i._index.set(c,d)}return i},ft=async(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=await v(o),i._fieldLength=await v(s),i._storedFields=await v(r);for(const[a,d]of i._documentIds)i._idToShortId.set(d,a);let c=0;for(const[a,d]of n){const u=new Map;for(const f of Object.keys(d))u.set(parseInt(f,10),await v(d[f]));++c%1e3===0&&await H(0),i._index.set(a,u)}return i},Nt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndex\"));return ht(JSON.parse(t),e)},Wt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndexAsync\"));return ft(JSON.parse(t),e)},mt=(t,e)=>{if(e==null)return!0;const{minDirtCount:n=W.minDirtCount,minDirtFactor:o=W.minDirtFactor}=e;return t.dirtCount>=n&&t.dirtFactor>=o},_t=async(t,e,n)=>{const o=t._dirtCount;if(mt(t,n)){const s=e.batchSize??$.batchSize,r=e.batchWait??$.batchWait;let i=1;for(const[c,a]of t._index){for(const[d,u]of a)for(const[f]of u)t._documentIds.has(f)||(u.size<=1?a.delete(d):u.delete(f));t._index.get(c).size===0&&t._index.delete(c),i%s===0&&await new Promise(d=>setTimeout(d,r)),i+=1}t._dirtCount-=o}await null,t._currentVacuum=t._enqueuedVacuum,t._enqueuedVacuum=null},gt=(t,e,n)=>t._currentVacuum?(t._enqueuedVacuumConditions=t._enqueuedVacuumConditions&&n,t._enqueuedVacuum!=null||(t._enqueuedVacuum=t._currentVacuum.then(()=>{const o=t._enqueuedVacuumConditions;return t._enqueuedVacuumConditions=N,_t(t,e,o)})),t._enqueuedVacuum):mt(t,n)?(t._currentVacuum=_t(t,e),t._currentVacuum):Promise.resolve(),pt=t=>{if(t._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:n,batchSize:o,batchWait:s}=t._options.autoVacuum;gt(t,{batchSize:o,batchWait:s},{minDirtCount:n,minDirtFactor:e})},Pt=(t,e={})=>gt(t,e),wt=(t,e,n,o)=>{if(n===1){t._avgFieldLength[e]=0;return}const s=t._avgFieldLength[e]*n-o;t._avgFieldLength[e]=s/(n-1)},J=(t,e)=>{const n=t._idToShortId.get(e);if(n==null)throw new Error(`SlimSearch: cannot discard document with ID ${e}: it is not in the index`);t._idToShortId.delete(e),t._documentIds.delete(n),t._storedFields.delete(n),t._fieldLength.get(n)?.forEach((o,s)=>{wt(t,s,t._documentCount,o)}),t._fieldLength.delete(n),t._documentCount-=1,t._dirtCount+=1,pt(t)},Rt=(t,e)=>{const n=t._options.autoVacuum;try{t._options.autoVacuum=!1;for(const o of e)J(t,o)}finally{t._options.autoVacuum=n}pt(t)},yt=(t,e)=>{const{tokenize:n,processTerm:o,extractField:s,stringifyField:r,fields:i,idField:c}=t._options,a=s(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);const d=t._idToShortId.get(a);if(d==null)throw new Error(`SlimSearch: cannot remove document with ID ${a}: it is not in the index`);for(const u of i){const f=s(e,u);if(f==null)continue;const m=n(r(f,u),u),_=t._fieldIds[u],g=new Set(m).size;wt(t,_,t._documentCount,g);for(const h of m){const l=o(h,u);if(Array.isArray(l))for(const p of l)M(t,_,d,p);else l&&M(t,_,d,l)}}t._storedFields.delete(d),t._documentIds.delete(d),t._idToShortId.delete(a),t._fieldLength.delete(d),t._documentCount-=1},Jt=function(t,e){if(e)for(const n of e)yt(t,n);else{if(arguments.length>1)throw new Error(\"Expected documents to be present. Omit the argument to remove all documents.\");t._index=new y,t._documentCount=0,t._documentIds=new Map,t._idToShortId=new Map,t._fieldLength=new Map,t._avgFieldLength=[],t._storedFields=new Map,t._nextId=0}},Ut=(t,e)=>{const{idField:n,extractField:o}=t._options,s=o(e,n);J(t,s),D(t,e)};export{y as SearchableMap,P as WILDCARD,D as add,j as addAll,At as addAllAsync,qt as autoSuggest,at as createIndex,J as discard,Rt as discardAll,Mt as getDefaultValue,zt as getStoredFields,Y as has,ht as loadIndex,ft as loadIndexAsync,Nt as loadJSONIndex,Wt as loadJSONIndexAsync,yt as remove,Jt as removeAll,Ut as replace,ut as search,Pt as vacuum};\n//# sourceMappingURL=index.js.map\n",null,null,null,null,null],"names":["timeToString","time","hours","Math","floor","minutes","toString","padStart","durationToString","duration","DOT_CONFIG","colors","rounds","defaultRound","originStation","destinationStation","defaultStation","continuationFill","penWidth","continuation","continuationEdge","isVehicleEdge","edge","isTransferEdge","isAccessEdge","DotBuilder","constructor","this","lines","addHeader","push","addComment","comment","addNode","id","attrs","attrStr","Object","entries","map","k","v","join","addEdge","from","to","attrPart","addRaw","build","varint64read","lowBits","highBits","shift","b","buf","pos","assertBounds","middleByte","Error","varint64write","lo","hi","bytes","i","hasNext","byte","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","dec","minus","slice","base","add1e6digit","begin","end","digit1e6","Number","negate","newBits","uInt64ToString","toUnsigned","String","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","length","varint32write","value","varint32read","result","readBytes","protoInt64","makeInt64Support","dv","DataView","ArrayBuffer","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","globalThis","Deno","process","env","BUF_BIGINT_DISABLE","MIN","MAX","UMIN","UMAX","zero","supported","parse","bi","uParse","enc","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","bits","negative","int64ToString","test","symbol","Symbol","for","getTextEncoding","undefined","te","TextEncoder","td","TextDecoder","encodeUtf8","text","encode","decodeUtf8","decode","checkUtf8","encodeURIComponent","_","WireType","FLOAT32_MAX","FLOAT32_MIN","BinaryWriter","stack","chunks","finish","Uint8Array","len","offset","set","fork","chunk","prev","pop","uint32","byteLength","raw","tag","fieldNo","type","assertUInt32","int32","assertInt32","bool","string","float","arg","o","isNaN","isFinite","assertFloat32","buffer","setFloat32","double","setFloat64","fixed32","setUint32","sfixed32","sint32","sfixed64","view","tc","fixed64","int64","sint64","sign","uint64","BinaryReader","varint64","byteOffset","wireType","skip","start","Varint","Bit64","Bit32","LengthDelimited","StartGroup","fn","wt","EndGroup","subarray","RangeError","zze","s","getUint32","getFloat32","getFloat64","isInteger","TransferType","RouteType","transferTypeFromJSON","object","TRANSFER_TYPE_UNSPECIFIED","TRANSFER_TYPE_RECOMMENDED_TRANSFER_POINT","TRANSFER_TYPE_TIMED_TRANSFER","TRANSFER_TYPE_REQUIRES_MINIMAL_TIME","TRANSFER_TYPE_IN_SEAT_TRANSFER","UNRECOGNIZED","routeTypeFromJSON","ROUTE_TYPE_UNSPECIFIED","ROUTE_TYPE_TRAM","ROUTE_TYPE_SUBWAY","ROUTE_TYPE_RAIL","ROUTE_TYPE_BUS","ROUTE_TYPE_FERRY","ROUTE_TYPE_CABLE_TRAM","ROUTE_TYPE_AERIAL_LIFT","ROUTE_TYPE_FUNICULAR","ROUTE_TYPE_TROLLEYBUS","ROUTE_TYPE_MONORAIL","createBaseRoute","stopTimes","pickupDropOffTypes","stops","serviceRouteId","Route","message","writer","input","reader","fromJSON","isSet","bytesFromBase64","toJSON","obj","base64FromBytes","round","create","fromPartial","_a","_b","_c","_d","Transfer","destination","minTransferTime","transferTypeToJSON","TripStop","stopIndex","routeId","tripIndex","TripTransferEntry","origin","destinations","Array","isArray","e","StopAdjacency","routes","transfers","end2","ServiceRoute","name","routeTypeToJSON","Timetable","stopsAdjacency","routesAdjacency","serviceRoutes","tripContinuations","guaranteedTripTransfers","_e","b64","Buffer","bin","atob","arr","charCodeAt","forEach","fromCharCode","btoa","nbStops","nbTrips","stopIndices","Map","stopId","existingIndices","get","of","params","trips","firstTrip","stopIds","Uint32Array","stop","numStops","trip","Uint16Array","baseIndex","arrivalTime","departureTime","totalStopEntries","ceil","globalIndex","pickUp","pickUpType","dropOff","dropOffType","byteIndex","isSecondPair","serialize","getNbStops","getNbTrips","serviceRoute","arrivalAt","arrivalIndex","arrival","tripStopOffset","arrivalAtOffset","departureAtOffset","dropOffTypeAtOffset","departureFrom","departureIndex","departure","pickUpTypeFrom","dropOffTypeAt","findEarliestTrip","after","beforeTrip","min","lb","stopRouteIndices","stopRouteIndex","VALUE_MASK","MAX_VALUE","TRIP_INDEX_SHIFT","ROUTE_ID_SHIFT","STOP_INDEX_SHIFT","validateValue","isLittleEndian","STANDARD_ENDIANNESS","uint32ArrayToBytes","array","bytesToUint32Array","uint16ArrayToBytes","setUint16","bytesToUint16Array","getUint16","serializeRoutesAdjacency","protoRoutesAdjacency","route","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","serializeTripTransfers","tripTransfers","tripBoardingId","originStopIndex","originRouteId","originTripIndex","tripStopId","tripStop","deserializeTripTransfers","protoTripTransfer","entry","protoTripStop","ALL_TRANSPORT_MODES","Set","EMPTY_TRIP_BOARDINGS","activeStops","add","protoTimetable","transfer","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","stopAdjacency","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getRoute","getTransfers","getContinuousTrips","getServiceRouteInfo","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","filterByMode","originStop","existingHopOnStopIndex","isTripTransferGuaranteed","fromTripStop","toTripStop","guaranteedTransfers","findFirstBoardableTrip","earliestTrip","transferTime","t","getGuaranteedTripTransfers","Query","builder","fromValue","toValue","departureTimeValue","options","optionsValue","Builder","seconds","maxTransfers","maxInitialWaitingTime","RangeQuery","super","lastDepartureTime","lastDepartureTimeValue","rangeOptions","rangeOptionsValue","optimizeBeyondLatestDeparture","legs","cumulativeAccessTime","leg","lastVehicleArrivalTime","totalTransferTime","totalDuration","abs","index","fromStop","platform","toStop","transferDetails","accessDetails","travelDetails","filter","line","trim","pickUpDropOffTypeMap","toPickupDropOffType","rawType","Result","routingState","stopsIndex","timetable","expandDestinations","targets","expanded","target","equivalentStop","equivalentStops","bestRouteToSourceStopId","sourceId","found","findStopBySourceStopId","size","bestRoute","destinationStops","fastestDestination","fastestArrivalTime","fastestLegNumber","arrivalData","getArrival","legNumber","previousVehicleEdge","currentStop","graph","boardingEdge","vehicleLeg","continuationOf","vehicleEdge","chainedEdges","buildVehicleLeg","hopOffStopIndex","buildGuaranteedTransferLeg","buildTransferLeg","buildAccessLeg","reverse","edges","firstEdge","lastEdge","firstRoute","lastRoute","findStopById","fromEdge","toEdge","fromRoute","toRoute","fromStopId","toStopId","earliestArrival","arrivalEdge","AccessFinder","collectAccessPaths","queryOrigin","fallbackMinTransferTime","equivalentOrigins","accessPaths","existingAccess","values","collectDepartureTimes","slotMap","path","searchFrom","searchTo","dep","paths","sort","a","depTime","UNREACHED_TIME","RoutingState","maxRounds","_destinationBest","reachedStops","destinationSet","earliestArrivalTimes","fill","earliestArrivalLegs","origins","r","seedAccessPaths","seededOrigins","access","destinationBest","improvementBound","_round","initRound","updateArrival","resetFor","arrivals","earliestArrivalAtAnyDestination","isDestination","fromTestData","state","dest","denseRounds","splice","PlainRouter","accessFinder","raptor","query","accessLegs","flatMap","run","RangeResult","runs","_runs","_destinations","normalizeTargets","getRoutes","targetStops","bestRun","bestArrival","latestDepartureRoute","fastestRoute","fastestRun","shortestDuration","Infinity","earliestArrivalAt","best","shortestDurationTo","shortest","allShortestDurations","durations","existing","allEarliestArrivals","iterator","RangeRaptorState","latestDeparture","roundLabels","changedInRound","setCurrentRun","currentRun","round0","currentRunArrival","changed","curr","RangeRouter","rangeRoute","earliest","latest","noDestinations","departureSlots","rangeState","paretoRuns","paretoDestBest","trivialDests","includes","trivialDestCovered","isParetoOptimal","Raptor","markedStops","edgesAtCurrentRound","clear","hopOnStopIndex","scanRoute","continuations","findTripContinuations","stopsFromContinuations","scanRouteContinuation","considerTransfers","continuousTrips","previousEdge","tripContinuation","newlyMarkedStops","currentStopIndex","edgesAtPreviousRound","activeTripIndex","activeTripBoardStopIndex","activeTripStopOffset","earliestArrivalOnPreviousRound","firstBoardableTrip","arrivalsAtCurrentRound","currentArrival","arrivalAfterTransfer","TinyQueue","compare","defaultCompare","_down","item","_up","top","bottom","peek","parent","current","halfLength","left","right","rad","PI","boxDist","lng","lat","cosLat","node","minLng","maxLng","minLat","maxLat","haverSin","haverSinDLng","extremumLat","cosDLng","atan","tan","vertexLat","haverSinDistPartial","compareDist","dist","theta","sin","cosLat1","lat1","lat2","cos","haverSinDist","lng1","lng2","ARRAY_TYPES","Int8Array","Uint8ClampedArray","Int16Array","Int32Array","Float32Array","Float64Array","KDBush","magic","versionAndType","version","ArrayType","nodeSize","numItems","max","IndexArrayType","arrayTypeIndex","indexOf","coordsByteSize","BYTES_PER_ELEMENT","idsByteSize","padCoords","ids","coords","_pos","_finished","x","y","numAdded","range","minX","minY","maxX","maxY","axis","m","within","qx","qy","r2","sqDist","select","n","z","log","exp","sd","sqrt","swapItem","swap","tmp","ax","ay","bx","by","dx","dy","U","B","L","_type","_path","_tree","keys","next","dive","backtrack","done","key","_prefix","G","c","d","u","f","g","h","l","p","w","C","I","F","_size","atPrefix","startsWith","S","A","Ft","fuzzyGet","xt","O","E","update","fetch","fromObject","delete","K","Q","St","V","Z","bt","vt","X","tt","score","et","T","prototype","hasOwnProperty","call","nt","terms","match","kt","ot","_fieldIds","_options","logger","_documentIds","st","_index","M","Lt","_fieldLength","_avgFieldLength","D","extractField","stringifyField","tokenize","processTerm","fields","idField","_idToShortId","Y","_nextId","_documentCount","Ot","storeFields","_storedFields","Et","q","split","toLowerCase","searchOptions","console","autoVacuum","it","combineWith","prefix","fuzzy","maxFuzzy","boost","weights","bm25","Tt","N","minDirtFactor","minDirtCount","W","batchSize","batchWait","P","rt","reduce","R","ct","boostDocument","Dt","queries","term","termBoost","boostTerm","Ct","jt","$t","_dirtCount","_currentVacuum","_enqueuedVacuum","_enqueuedVacuumConditions","autoSuggestOptions","addFields","isVacuuming","dirtCount","dirtFactor","documentCount","termCount","fromEntries","nextId","documentIds","fieldIds","fieldLength","averageFieldLength","storedFields","generateAccentVariants","lowerCaseTerm","alternatives","accentMap","ae","oe","ue","accents","accent","replace","LocationType","locationTypeFromJSON","LOCATION_TYPE_UNSPECIFIED","LOCATION_TYPE_SIMPLE_STOP_OR_PLATFORM","LOCATION_TYPE_STATION","LOCATION_TYPE_ENTRANCE_EXIT","LOCATION_TYPE_GENERIC_NODE","LOCATION_TYPE_BOARDING_AREA","Stop","sourceStopId","lon","children","locationType","locationTypeToJSON","_f","_g","_h","StopsMap","serializeStopsMap","serializeStop","serializeLocationType","deserializeStopsMap","protoStopsMap","intKey","deserializeStop","protoStop","parseProtoLocationType","protoLocationType","ProtoLocationType","StopsIndex","sourceStopsMap","stopsSet","stopPoints","effectiveStopId","textIndex","stopsArray","addAll","geoIndex","KDTree","ProtoStopsMap","findStopsByName","maxResults","queryTerms","search","findStopsByLocation","radius","nearestStops","maxDistance","maxHaverSinDist","midLng","midLat","nextAxis","leftNode","rightNode","candidate","around","stopPoint","stationNodeId","vehicleEdgeNodeId","transferEdgeNodeId","accessEdgeNodeId","continuationNodeId","getRoundColor","colorIndex","getStationFillColor","isOrigin","escapeDotString","str","formatStopName","escapedName","escapedPlatform","getStationInfo","getVehicleEdgeFromStopId","getVehicleEdgeToStopId","createStationNode","displayName","stopIdStr","nodeId","stationInfo","createVehicleEdge","fromNodeId","toNodeId","roundColor","routeOvalId","serviceRouteInfo","routeName","routeType","escapedRouteName","createAccessEdge","color","ovalId","createTransferEdge","transferOvalId","createContinuationEdge","fromStationId","toStationId","continuationOvalId","fromServiceRouteInfo","toServiceRouteInfo","fromRouteName","toRouteName","fromRouteType","toRouteType","fromArrivalTime","toDepartureTime","escapedFromRouteName","escapedToRouteName","escapedFromRouteType","escapedToRouteType","ovalLabel","edgePenWidth","collectStations","stations","roundEdges","collectContinuationChain","continuationEdges","currentEdge","edgeParts","collectEdges","plotDotGraph","stationNode","plainRouter","rangeRouter"],"mappings":"+OAYO,MA+FMA,EAAgBC,IAC3B,IAAIC,EAAQC,KAAKC,MAAMH,EAAO,IAC9B,MAAMI,EAAUF,KAAKC,MAAMH,EAAO,IAIlC,OAHIC,GAAS,KACXA,GAAgB,IAEX,GAAGA,EAAMI,WAAWC,SAAS,EAAG,QAAQF,EAAQC,WAAWC,SAAS,EAAG,MAAM,EAkBzEC,EAAoBC,IAC/B,MAAMP,EAAQC,KAAKC,MAAMK,EAAW,IAC9BJ,EAAUI,EAAW,GAC3B,OAAIP,EAAQ,EACH,GAAGA,EAAMI,WAAWC,SAAS,EAAG,QAAQF,EAAQC,WAAWC,SAAS,EAAG,OAEvE,GAAGF,MACZ,EC7HIK,EAAa,CACjBC,OAAQ,CACNC,OAAQ,CACN,UACA,UACA,UACA,UACA,UACA,UACA,WAEFC,aAAc,UACdC,cAAe,UACfC,mBAAoB,UACpBC,eAAgB,QAChBC,iBAAkB,WAEpBC,SAAU,CAERC,aAAc,EACdC,iBAAkB,IAOtB,SAASC,EAAcC,GACrB,MAAO,YAAaA,GAAQ,cAAeA,GAAQ,oBAAqBA,CAC1E,CAKA,SAASC,EAAeD,GACtB,MAAO,SAAUA,GAAQ,OAAQA,GAAQ,SAAUA,CACrD,CAKA,SAASE,EAAaF,GACpB,MAAO,SAAUA,GAAQ,aAAcA,CACzC,CAKA,MAAMG,EAAN,WAAAC,GACUC,KAAAC,MAAkB,EA6D5B,CAxDE,SAAAC,GAOE,OANAF,KAAKC,MAAME,KACT,yBACA,gHACA,wCACA,0CAEKH,IACT,CAKA,UAAAI,CAAWC,GAET,OADAL,KAAKC,MAAME,KAAK,GAAI,QAAQE,KACrBL,IACT,CAKA,OAAAM,CAAQC,EAAYC,GAClB,MAAMC,EAAUC,OAAOC,QAAQH,GAC5BI,KAAI,EAAEC,EAAGC,KAAO,GAAGD,MAAMC,OACzBC,KAAK,KAER,OADAf,KAAKC,MAAME,KAAK,MAAMI,OAAQE,OACvBT,IACT,CAKA,OAAAgB,CAAQC,EAAcC,EAAYV,EAAgC,CAAA,GAChE,MAAMC,EAAUC,OAAOC,QAAQH,GAC5BI,KAAI,EAAEC,EAAGC,KAAO,GAAGD,MAAMC,OACzBC,KAAK,KACFI,EAAWV,EAAU,KAAKA,KAAa,GAE7C,OADAT,KAAKC,MAAME,KAAK,MAAMc,UAAaC,KAAMC,MAClCnB,IACT,CAKA,MAAAoB,CAAOnB,GAEL,OADAD,KAAKC,MAAME,QAAQF,GACZD,IACT,CAKA,KAAAqB,GAEE,OADArB,KAAKC,MAAME,KAAK,KACTH,KAAKC,MAAMc,KAAK,KACzB,EC/EK,SAASO,IACZ,IAAIC,EAAU,EACVC,EAAW,EACf,IAAK,IAAIC,EAAQ,EAAGA,EAAQ,GAAIA,GAAS,EAAG,CACxC,IAAIC,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OAEtB,GADAL,IAAgB,IAAJG,IAAaD,IAChB,IAAJC,GAED,OADA1B,KAAK6B,eACE,CAACN,EAASC,EAEzB,CACA,IAAIM,EAAa9B,KAAK2B,IAAI3B,KAAK4B,OAK/B,GAHAL,IAAyB,GAAbO,IAAsB,GAElCN,GAAyB,IAAbM,IAAsB,IAChB,IAAbA,GAED,OADA9B,KAAK6B,eACE,CAACN,EAASC,GAErB,IAAK,IAAIC,EAAQ,EAAGA,GAAS,GAAIA,GAAS,EAAG,CACzC,IAAIC,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OAEtB,GADAJ,IAAiB,IAAJE,IAAaD,IACjB,IAAJC,GAED,OADA1B,KAAK6B,eACE,CAACN,EAASC,EAEzB,CACA,MAAM,IAAIO,MAAM,iBACpB,CAQO,SAASC,EAAcC,EAAIC,EAAIC,GAClC,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,GAAQ,EAAG,CAC/B,MAAMX,EAAQQ,IAAOG,EACfC,IAAYZ,IAAU,GAAK,GAAW,GAANS,GAChCI,EAA0C,KAAlCD,EAAkB,IAARZ,EAAeA,GAEvC,GADAU,EAAMhC,KAAKmC,IACND,EACD,MAER,CACA,MAAME,EAAcN,IAAO,GAAM,IAAe,EAALC,IAAc,EACnDM,KAAgBN,GAAM,GAE5B,GADAC,EAAMhC,KAAoD,KAA9CqC,EAA0B,IAAZD,EAAmBA,IACxCC,EAAL,CAGA,IAAK,IAAIJ,EAAI,EAAGA,EAAI,GAAIA,GAAQ,EAAG,CAC/B,MAAMX,EAAQS,IAAOE,EACfC,IAAYZ,IAAU,GAAK,GAC3Ba,EAA0C,KAAlCD,EAAkB,IAARZ,EAAeA,GAEvC,GADAU,EAAMhC,KAAKmC,IACND,EACD,MAER,CACAF,EAAMhC,KAAM+B,IAAO,GAAM,EAVzB,CAWJ,CAEA,MAAMO,EAAiB,WAQhB,SAASC,EAAgBC,GAE5B,MAAMC,EAAmB,MAAXD,EAAI,GACdC,IACAD,EAAMA,EAAIE,MAAM,IAKpB,MAAMC,EAAO,IACb,IAAIvB,EAAU,EACVC,EAAW,EACf,SAASuB,EAAYC,EAAOC,GAExB,MAAMC,EAAWC,OAAOR,EAAIE,MAAMG,EAAOC,IACzCzB,GAAYsB,EACZvB,EAAUA,EAAUuB,EAAOI,EAEvB3B,GAAWkB,IACXjB,GAAwBD,EAAUkB,EAAkB,EACpDlB,GAAoBkB,EAE5B,CAKA,OAJAM,GAAY,QACZA,GAAY,QACZA,GAAY,OACZA,GAAY,GACLH,EAAQQ,EAAO7B,EAASC,GAAY6B,EAAQ9B,EAASC,EAChE,CA4BO,SAAS8B,EAAerB,EAAIC,GAQ/B,KAPGD,KAAIC,MA6CX,SAAoBD,EAAIC,GACpB,MAAO,CAAED,GAAIA,IAAO,EAAGC,GAAIA,IAAO,EACtC,CA/CkBqB,CAAWtB,EAAIC,IAOzBA,GAAM,QACN,OAAOsB,OAAOf,EAAiBP,EAAKD,GAWxC,MACMwB,EAAkC,UAA1BxB,IAAO,GAAOC,GAAM,GAC5BwB,EAAQxB,GAAM,GAAM,MAI1B,IAAIyB,GANa,SAAL1B,GAMa,QAANwB,EAAuB,QAAPC,EAC/BE,EAASH,EAAa,QAAPC,EACfG,EAAgB,EAAPH,EAEb,MAAMZ,EAAO,IAYb,OAXIa,GAAUb,IACVc,GAAUpF,KAAKC,MAAMkF,EAASb,GAC9Ba,GAAUb,GAEVc,GAAUd,IACVe,GAAUrF,KAAKC,MAAMmF,EAASd,GAC9Bc,GAAUd,GAKNe,EAAOlF,WACXmF,EAA+BF,GAC/BE,EAA+BH,EACvC,CAIA,SAASN,EAAQpB,EAAIC,GACjB,MAAO,CAAED,GAAS,EAALA,EAAQC,GAAS,EAALA,EAC7B,CAKA,SAASkB,EAAO7B,EAASC,GAWrB,OAVAA,GAAYA,EACRD,EACAA,EAAqB,GAAVA,EAMXC,GAAY,EAET6B,EAAQ9B,EAASC,EAC5B,CAIA,MAAMsC,EAAkCC,IACpC,MAAMC,EAAUR,OAAOO,GACvB,MAAO,UAAUlB,MAAMmB,EAAQC,QAAUD,CAAO,EAS7C,SAASE,EAAcC,EAAOhC,GACjC,GAAIgC,GAAS,EAAG,CAEZ,KAAOA,EAAQ,KACXhC,EAAMhC,KAAc,IAARgE,EAAgB,KAC5BA,KAAkB,EAEtBhC,EAAMhC,KAAKgE,EACf,KACK,CACD,IAAK,IAAI/B,EAAI,EAAGA,EAAI,EAAGA,IACnBD,EAAMhC,KAAc,IAARgE,EAAe,KAC3BA,IAAiB,EAErBhC,EAAMhC,KAAK,EACf,CACJ,CAMO,SAASiE,IACZ,IAAI1C,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OAClByC,EAAa,IAAJ3C,EACb,KAAS,IAAJA,GAED,OADA1B,KAAK6B,eACEwC,EAIX,GAFA3C,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OAClByC,IAAe,IAAJ3C,IAAa,IACf,IAAJA,GAED,OADA1B,KAAK6B,eACEwC,EAIX,GAFA3C,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OAClByC,IAAe,IAAJ3C,IAAa,KACf,IAAJA,GAED,OADA1B,KAAK6B,eACEwC,EAIX,GAFA3C,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OAClByC,IAAe,IAAJ3C,IAAa,KACf,IAAJA,GAED,OADA1B,KAAK6B,eACEwC,EAGX3C,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OAClByC,IAAe,GAAJ3C,IAAa,GACxB,IAAK,IAAI4C,EAAY,EAAQ,IAAJ5C,GAAmB4C,EAAY,GAAIA,IACxD5C,EAAI1B,KAAK2B,IAAI3B,KAAK4B,OACtB,GAAS,IAAJF,EACD,MAAM,IAAIK,MAAM,kBAGpB,OAFA/B,KAAK6B,eAEEwC,IAAW,CACtB,CCvSO,MAAME,EAA2BC,IACxC,SAASA,IACL,MAAMC,EAAK,IAAIC,SAAS,IAAIC,YAAY,IAWxC,GAT6B,mBAAXC,QACY,mBAAnBH,EAAGI,aACiB,mBAApBJ,EAAGK,cACgB,mBAAnBL,EAAGM,aACiB,mBAApBN,EAAGO,iBACPC,WAAWC,MACQ,iBAAXC,SACe,iBAAfA,QAAQC,KACoB,MAAnCD,QAAQC,IAAIC,oBACZ,CACJ,MAAMC,EAAMV,OAAO,wBACbW,EAAMX,OAAO,uBACbY,EAAOZ,OAAO,KACda,EAAOb,OAAO,wBACpB,MAAO,CACHc,KAAMd,OAAO,GACbe,WAAW,EACX,KAAAC,CAAMzB,GACF,MAAM0B,EAAqB,iBAAT1B,EAAoBA,EAAQS,OAAOT,GACrD,GAAI0B,EAAKN,GAAOM,EAAKP,EACjB,MAAM,IAAIvD,MAAM,kBAAkBoC,KAEtC,OAAO0B,CACX,EACA,MAAAC,CAAO3B,GACH,MAAM0B,EAAqB,iBAAT1B,EAAoBA,EAAQS,OAAOT,GACrD,GAAI0B,EAAKJ,GAAQI,EAAKL,EAClB,MAAM,IAAIzD,MAAM,mBAAmBoC,KAEvC,OAAO0B,CACX,EACA,GAAAE,CAAI5B,GAEA,OADAM,EAAGM,YAAY,EAAG/E,KAAK4F,MAAMzB,IAAQ,GAC9B,CACHlC,GAAIwC,EAAGuB,SAAS,GAAG,GACnB9D,GAAIuC,EAAGuB,SAAS,GAAG,GAE3B,EACA,IAAAC,CAAK9B,GAED,OADAM,EAAGM,YAAY,EAAG/E,KAAK8F,OAAO3B,IAAQ,GAC/B,CACHlC,GAAIwC,EAAGuB,SAAS,GAAG,GACnB9D,GAAIuC,EAAGuB,SAAS,GAAG,GAE3B,EACArD,IAAG,CAACV,EAAIC,KACJuC,EAAGyB,SAAS,EAAGjE,GAAI,GACnBwC,EAAGyB,SAAS,EAAGhE,GAAI,GACZuC,EAAGI,YAAY,GAAG,IAE7BsB,KAAI,CAAClE,EAAIC,KACLuC,EAAGyB,SAAS,EAAGjE,GAAI,GACnBwC,EAAGyB,SAAS,EAAGhE,GAAI,GACZuC,EAAGK,aAAa,GAAG,IAGtC,CACA,MAAO,CACHY,KAAM,IACNC,WAAW,EACXC,MAAMzB,IACkB,iBAATA,IACPA,EAAQA,EAAMxF,YAElByH,EAAkBjC,GACXA,GAEX2B,OAAO3B,IACiB,iBAATA,IACPA,EAAQA,EAAMxF,YAElB0H,EAAmBlC,GACZA,GAEX4B,IAAI5B,IACoB,iBAATA,IACPA,EAAQA,EAAMxF,YAElByH,EAAkBjC,GACXzB,EAAgByB,IAE3B8B,KAAK9B,IACmB,iBAATA,IACPA,EAAQA,EAAMxF,YAElB0H,EAAmBlC,GACZzB,EAAgByB,IAE3BxB,IAAG,CAACV,EAAIC,ID4CT,SAAuBD,EAAIC,GAC9B,IAAIoE,EAAOjD,EAAQpB,EAAIC,GAGvB,MAAMqE,EAAqB,WAAVD,EAAKpE,GAClBqE,IACAD,EAAOlD,EAAOkD,EAAKrE,GAAIqE,EAAKpE,KAEhC,MAAMmC,EAASf,EAAegD,EAAKrE,GAAIqE,EAAKpE,IAC5C,OAAOqE,EAAW,IAAMlC,EAASA,CACrC,CCrDmBmC,CAAcvE,EAAIC,GAE7BiE,KAAI,CAAClE,EAAIC,IACEoB,EAAerB,EAAIC,GAGtC,CACA,SAASkE,EAAkBjC,GACvB,IAAK,aAAasC,KAAKtC,GACnB,MAAM,IAAIpC,MAAM,kBAAoBoC,EAE5C,CACA,SAASkC,EAAmBlC,GACxB,IAAK,WAAWsC,KAAKtC,GACjB,MAAM,IAAIpC,MAAM,mBAAqBoC,EAE7C,CCjHA,MAAMuC,EAASC,OAAOC,IAAI,oCAanB,SAASC,IACZ,GAA0BC,MAAtB7B,WAAWyB,GAAsB,CACjC,MAAMK,EAAK,IAAI9B,WAAW+B,YACpBC,EAAK,IAAIhC,WAAWiC,YAC1BjC,WAAWyB,GAAU,CACjBS,WAAWC,GACAL,EAAGM,OAAOD,GAErBE,WAAWnF,GACA8E,EAAGM,OAAOpF,GAErB,SAAAqF,CAAUJ,GACN,IAEI,OADAK,mBAAmBL,IACZ,CACX,CACA,MAAOM,GACH,OAAO,CACX,CACJ,EAER,CACA,OAAOzC,WAAWyB,EACtB,CCzBO,IAAIiB,GACX,SAAWA,GAIPA,EAASA,EAAiB,OAAI,GAAK,SAKnCA,EAASA,EAAgB,MAAI,GAAK,QAQlCA,EAASA,EAA0B,gBAAI,GAAK,kBAK5CA,EAASA,EAAqB,WAAI,GAAK,aAIvCA,EAASA,EAAmB,SAAI,GAAK,WAKrCA,EAASA,EAAgB,MAAI,GAAK,OACrC,CAhCD,CAgCGA,IAAaA,EAAW,CAAA,IAIpB,MAAMC,EAAc,qBAIdC,GAAc,qBAapB,MAAMC,EACT,WAAA/H,CAAYoH,EAAaN,IAAkBM,YACvCnH,KAAKmH,WAAaA,EAIlBnH,KAAK+H,MAAQ,GACb/H,KAAKgI,OAAS,GACdhI,KAAK2B,IAAM,EACf,CAIA,MAAAsG,GACQjI,KAAK2B,IAAIsC,SACTjE,KAAKgI,OAAO7H,KAAK,IAAI+H,WAAWlI,KAAK2B,MACrC3B,KAAK2B,IAAM,IAEf,IAAIwG,EAAM,EACV,IAAK,IAAI/F,EAAI,EAAGA,EAAIpC,KAAKgI,OAAO/D,OAAQ7B,IACpC+F,GAAOnI,KAAKgI,OAAO5F,GAAG6B,OAC1B,IAAI9B,EAAQ,IAAI+F,WAAWC,GACvBC,EAAS,EACb,IAAK,IAAIhG,EAAI,EAAGA,EAAIpC,KAAKgI,OAAO/D,OAAQ7B,IACpCD,EAAMkG,IAAIrI,KAAKgI,OAAO5F,GAAIgG,GAC1BA,GAAUpI,KAAKgI,OAAO5F,GAAG6B,OAG7B,OADAjE,KAAKgI,OAAS,GACP7F,CACX,CAOA,IAAAmG,GAII,OAHAtI,KAAK+H,MAAM5H,KAAK,CAAE6H,OAAQhI,KAAKgI,OAAQrG,IAAK3B,KAAK2B,MACjD3B,KAAKgI,OAAS,GACdhI,KAAK2B,IAAM,GACJ3B,IACX,CAKA,IAAAe,GAEI,IAAIwH,EAAQvI,KAAKiI,SAEbO,EAAOxI,KAAK+H,MAAMU,MACtB,IAAKD,EACD,MAAM,IAAIzG,MAAM,mCAKpB,OAJA/B,KAAKgI,OAASQ,EAAKR,OACnBhI,KAAK2B,IAAM6G,EAAK7G,IAEhB3B,KAAK0I,OAAOH,EAAMI,YACX3I,KAAK4I,IAAIL,EACpB,CAQA,GAAAM,CAAIC,EAASC,GACT,OAAO/I,KAAK0I,QAASI,GAAW,EAAKC,KAAU,EACnD,CAIA,GAAAH,CAAIL,GAMA,OALIvI,KAAK2B,IAAIsC,SACTjE,KAAKgI,OAAO7H,KAAK,IAAI+H,WAAWlI,KAAK2B,MACrC3B,KAAK2B,IAAM,IAEf3B,KAAKgI,OAAO7H,KAAKoI,GACVvI,IACX,CAIA,MAAA0I,CAAOvE,GAGH,IAFA6E,EAAa7E,GAENA,EAAQ,KACXnE,KAAK2B,IAAIxB,KAAc,IAARgE,EAAgB,KAC/BA,KAAkB,EAGtB,OADAnE,KAAK2B,IAAIxB,KAAKgE,GACPnE,IACX,CAIA,KAAAiJ,CAAM9E,GAGF,OAFA+E,EAAY/E,GACZD,EAAcC,EAAOnE,KAAK2B,KACnB3B,IACX,CAIA,IAAAmJ,CAAKhF,GAED,OADAnE,KAAK2B,IAAIxB,KAAKgE,EAAQ,EAAI,GACnBnE,IACX,CAIA,KAAAmC,CAAMgC,GAEF,OADAnE,KAAK0I,OAAOvE,EAAMwE,YACX3I,KAAK4I,IAAIzE,EACpB,CAIA,MAAAiF,CAAOjF,GACH,IAAIoE,EAAQvI,KAAKmH,WAAWhD,GAE5B,OADAnE,KAAK0I,OAAOH,EAAMI,YACX3I,KAAK4I,IAAIL,EACpB,CAIA,KAAAc,CAAMlF,IAmSV,SAAuBmF,GACnB,GAAkB,iBAAPA,EAAiB,CACxB,MAAMC,EAAID,EAEV,GADAA,EAAMnG,OAAOmG,GACTnG,OAAOqG,MAAMF,IAAc,QAANC,EACrB,MAAM,IAAIxH,MAAM,oBAAsBwH,EAE9C,MACK,GAAkB,iBAAPD,EACZ,MAAM,IAAIvH,MAAM,2BAA6BuH,GAEjD,GAAInG,OAAOsG,SAASH,KACfA,EAAM1B,GAAe0B,EAAMzB,GAC5B,MAAM,IAAI9F,MAAM,oBAAsBuH,EAC9C,CAhTQI,CAAcvF,GACd,IAAIoE,EAAQ,IAAIL,WAAW,GAE3B,OADA,IAAIxD,SAAS6D,EAAMoB,QAAQC,WAAW,EAAGzF,GAAO,GACzCnE,KAAK4I,IAAIL,EACpB,CAIA,MAAAsB,CAAO1F,GACH,IAAIoE,EAAQ,IAAIL,WAAW,GAE3B,OADA,IAAIxD,SAAS6D,EAAMoB,QAAQG,WAAW,EAAG3F,GAAO,GACzCnE,KAAK4I,IAAIL,EACpB,CAIA,OAAAwB,CAAQ5F,GACJ6E,EAAa7E,GACb,IAAIoE,EAAQ,IAAIL,WAAW,GAE3B,OADA,IAAIxD,SAAS6D,EAAMoB,QAAQK,UAAU,EAAG7F,GAAO,GACxCnE,KAAK4I,IAAIL,EACpB,CAIA,QAAA0B,CAAS9F,GACL+E,EAAY/E,GACZ,IAAIoE,EAAQ,IAAIL,WAAW,GAE3B,OADA,IAAIxD,SAAS6D,EAAMoB,QAAQzD,SAAS,EAAG/B,GAAO,GACvCnE,KAAK4I,IAAIL,EACpB,CAIA,MAAA2B,CAAO/F,GAKH,OAJA+E,EAAY/E,GAGZD,EADAC,GAAUA,GAAS,EAAMA,GAAS,MAAS,EACtBnE,KAAK2B,KACnB3B,IACX,CAIA,QAAAmK,CAAShG,GACL,IAAIoE,EAAQ,IAAIL,WAAW,GAAIkC,EAAO,IAAI1F,SAAS6D,EAAMoB,QAASU,EAAK9F,EAAWwB,IAAI5B,GAGtF,OAFAiG,EAAKlE,SAAS,EAAGmE,EAAGpI,IAAI,GACxBmI,EAAKlE,SAAS,EAAGmE,EAAGnI,IAAI,GACjBlC,KAAK4I,IAAIL,EACpB,CAIA,OAAA+B,CAAQnG,GACJ,IAAIoE,EAAQ,IAAIL,WAAW,GAAIkC,EAAO,IAAI1F,SAAS6D,EAAMoB,QAASU,EAAK9F,EAAW0B,KAAK9B,GAGvF,OAFAiG,EAAKlE,SAAS,EAAGmE,EAAGpI,IAAI,GACxBmI,EAAKlE,SAAS,EAAGmE,EAAGnI,IAAI,GACjBlC,KAAK4I,IAAIL,EACpB,CAIA,KAAAgC,CAAMpG,GACF,IAAIkG,EAAK9F,EAAWwB,IAAI5B,GAExB,OADAnC,EAAcqI,EAAGpI,GAAIoI,EAAGnI,GAAIlC,KAAK2B,KAC1B3B,IACX,CAIA,MAAAwK,CAAOrG,GACH,MAAMkG,EAAK9F,EAAWwB,IAAI5B,GAE1BsG,EAAOJ,EAAGnI,IAAM,GAEhB,OADAF,EAD0BqI,EAAGpI,IAAM,EAAKwI,GAAaJ,EAAGnI,IAAM,EAAMmI,EAAGpI,KAAO,IAAOwI,EAC/DzK,KAAK2B,KACpB3B,IACX,CAIA,MAAA0K,CAAOvG,GACH,MAAMkG,EAAK9F,EAAW0B,KAAK9B,GAE3B,OADAnC,EAAcqI,EAAGpI,GAAIoI,EAAGnI,GAAIlC,KAAK2B,KAC1B3B,IACX,EAEG,MAAM2K,EACT,WAAA5K,CAAY4B,EAAK2F,EAAaT,IAAkBS,YAC5CtH,KAAKsH,WAAaA,EAClBtH,KAAK4K,SAAWtJ,EAIhBtB,KAAK0I,OAAStE,EACdpE,KAAK2B,IAAMA,EACX3B,KAAKmI,IAAMxG,EAAIsC,OACfjE,KAAK4B,IAAM,EACX5B,KAAKoK,KAAO,IAAI1F,SAAS/C,EAAIgI,OAAQhI,EAAIkJ,WAAYlJ,EAAIgH,WAC7D,CAIA,GAAAE,GACI,IAAIA,EAAM7I,KAAK0I,SAAUI,EAAUD,IAAQ,EAAGiC,EAAiB,EAANjC,EACzD,GAAIC,GAAW,GAAKgC,EAAW,GAAKA,EAAW,EAC3C,MAAM,IAAI/I,MAAM,yBAA2B+G,EAAU,cAAgBgC,GACzE,MAAO,CAAChC,EAASgC,EACrB,CAOA,IAAAC,CAAKD,EAAUhC,GACX,IAAIkC,EAAQhL,KAAK4B,IACjB,OAAQkJ,GACJ,KAAKnD,EAASsD,OACV,KAA8B,IAAvBjL,KAAK2B,IAAI3B,KAAK4B,SAGrB,MAEJ,KAAK+F,EAASuD,MACVlL,KAAK4B,KAAO,EAChB,KAAK+F,EAASwD,MACVnL,KAAK4B,KAAO,EACZ,MACJ,KAAK+F,EAASyD,gBACV,IAAIjD,EAAMnI,KAAK0I,SACf1I,KAAK4B,KAAOuG,EACZ,MACJ,KAAKR,EAAS0D,WACV,OAAS,CACL,MAAOC,EAAIC,GAAMvL,KAAK6I,MACtB,GAAI0C,IAAO5D,EAAS6D,SAAU,CAC1B,QAAgB1E,IAAZgC,GAAyBwC,IAAOxC,EAChC,MAAM,IAAI/G,MAAM,yBAEpB,KACJ,CACA/B,KAAK+K,KAAKQ,EAAID,EAClB,CACA,MACJ,QACI,MAAM,IAAIvJ,MAAM,uBAAyB+I,GAGjD,OADA9K,KAAK6B,eACE7B,KAAK2B,IAAI8J,SAAST,EAAOhL,KAAK4B,IACzC,CAIA,YAAAC,GACI,GAAI7B,KAAK4B,IAAM5B,KAAKmI,IAChB,MAAM,IAAIuD,WAAW,gBAC7B,CAIA,KAAAzC,GACI,OAAuB,EAAhBjJ,KAAK0I,QAChB,CAIA,MAAAwB,GACI,IAAIyB,EAAM3L,KAAK0I,SAEf,OAAQiD,IAAQ,IAAa,EAANA,EAC3B,CAIA,KAAApB,GACI,OAAOhG,EAAW5B,OAAO3C,KAAK4K,WAClC,CAIA,MAAAF,GACI,OAAOnG,EAAW4B,QAAQnG,KAAK4K,WACnC,CAIA,MAAAJ,GACI,IAAKvI,EAAIC,GAAMlC,KAAK4K,WAEhBgB,IAAW,EAAL3J,GAGV,OAFAA,GAAOA,IAAO,GAAY,EAALC,IAAW,IAAO0J,EACvC1J,EAAMA,IAAO,EAAK0J,EACXrH,EAAW5B,IAAIV,EAAIC,EAC9B,CAIA,IAAAiH,GACI,IAAKlH,EAAIC,GAAMlC,KAAK4K,WACpB,OAAc,IAAP3I,GAAmB,IAAPC,CACvB,CAIA,OAAA6H,GAEI,OAAO/J,KAAKoK,KAAKyB,WAAW7L,KAAK4B,KAAO,GAAK,GAAG,EACpD,CAIA,QAAAqI,GAEI,OAAOjK,KAAKoK,KAAKpE,UAAUhG,KAAK4B,KAAO,GAAK,GAAG,EACnD,CAIA,OAAA0I,GACI,OAAO/F,EAAW4B,KAAKnG,KAAKiK,WAAYjK,KAAKiK,WACjD,CAIA,QAAAE,GACI,OAAO5F,EAAW5B,IAAI3C,KAAKiK,WAAYjK,KAAKiK,WAChD,CAIA,KAAAZ,GAEI,OAAOrJ,KAAKoK,KAAK0B,YAAY9L,KAAK4B,KAAO,GAAK,GAAG,EACrD,CAIA,MAAAiI,GAEI,OAAO7J,KAAKoK,KAAK2B,YAAY/L,KAAK4B,KAAO,GAAK,GAAG,EACrD,CAIA,KAAAO,GACI,IAAIgG,EAAMnI,KAAK0I,SAAUsC,EAAQhL,KAAK4B,IAGtC,OAFA5B,KAAK4B,KAAOuG,EACZnI,KAAK6B,eACE7B,KAAK2B,IAAI8J,SAAST,EAAOA,EAAQ7C,EAC5C,CAIA,MAAAiB,GACI,OAAOpJ,KAAKsH,WAAWtH,KAAKmC,QAChC,EAKJ,SAAS+G,EAAYI,GACjB,GAAkB,iBAAPA,EACPA,EAAMnG,OAAOmG,QAEZ,GAAkB,iBAAPA,EACZ,MAAM,IAAIvH,MAAM,yBAA2BuH,GAE/C,IAAKnG,OAAO6I,UAAU1C,IAClBA,EAhZiB,YAiZjBA,GA7YiB,WA8YjB,MAAM,IAAIvH,MAAM,kBAAoBuH,EAC5C,CAIA,SAASN,EAAaM,GAClB,GAAkB,iBAAPA,EACPA,EAAMnG,OAAOmG,QAEZ,GAAkB,iBAAPA,EACZ,MAAM,IAAIvH,MAAM,0BAA4BuH,GAEhD,IAAKnG,OAAO6I,UAAU1C,IAClBA,EAnakB,YAoalBA,EAAM,EACN,MAAM,IAAIvH,MAAM,mBAAqBuH,EAC7C,CCheA,IAAY2C,EAmDAC,EA1CN,SAAUC,EAAqBC,GACnC,OAAQA,GACN,KAAK,EACL,IAAK,4BACH,OAAOH,EAAaI,0BACtB,KAAK,EACL,IAAK,2CACH,OAAOJ,EAAaK,yCACtB,KAAK,EACL,IAAK,+BACH,OAAOL,EAAaM,6BACtB,KAAK,EACL,IAAK,sCACH,OAAON,EAAaO,oCACtB,KAAK,EACL,IAAK,iCACH,OAAOP,EAAaQ,+BAGtB,QACE,OAAOR,EAAaS,aAE1B,CAmCM,SAAUC,EAAkBP,GAChC,OAAQA,GACN,KAAK,EACL,IAAK,yBACH,OAAOF,EAAUU,uBACnB,KAAK,EACL,IAAK,kBACH,OAAOV,EAAUW,gBACnB,KAAK,EACL,IAAK,oBACH,OAAOX,EAAUY,kBACnB,KAAK,EACL,IAAK,kBACH,OAAOZ,EAAUa,gBACnB,KAAK,EACL,IAAK,iBACH,OAAOb,EAAUc,eACnB,KAAK,EACL,IAAK,mBACH,OAAOd,EAAUe,iBACnB,KAAK,EACL,IAAK,wBACH,OAAOf,EAAUgB,sBACnB,KAAK,EACL,IAAK,yBACH,OAAOhB,EAAUiB,uBACnB,KAAK,EACL,IAAK,uBACH,OAAOjB,EAAUkB,qBACnB,KAAK,EACL,IAAK,wBACH,OAAOlB,EAAUmB,sBACnB,KAAK,GACL,IAAK,sBACH,OAAOnB,EAAUoB,oBAGnB,QACE,OAAOpB,EAAUQ,aAEvB,CA6FA,SAASa,IACP,MAAO,CACLC,UAAW,IAAItF,WAAW,GAC1BuF,mBAAoB,IAAIvF,WAAW,GACnCwF,MAAO,IAAIxF,WAAW,GACtByF,eAAgB,EAEpB,EA9MA,SAAY1B,GACVA,EAAAA,EAAA,0BAAA,GAAA,4BACAA,EAAAA,EAAA,yCAAA,GAAA,2CACAA,EAAAA,EAAA,6BAAA,GAAA,+BACAA,EAAAA,EAAA,oCAAA,GAAA,sCACAA,EAAAA,EAAA,+BAAA,GAAA,iCACAA,EAAAA,EAAA,cAAA,GAAA,cACD,CAPD,CAAYA,IAAAA,EAAY,CAAA,IAmDxB,SAAYC,GACVA,EAAAA,EAAA,uBAAA,GAAA,yBACAA,EAAAA,EAAA,gBAAA,GAAA,kBACAA,EAAAA,EAAA,kBAAA,GAAA,oBACAA,EAAAA,EAAA,gBAAA,GAAA,kBACAA,EAAAA,EAAA,eAAA,GAAA,iBACAA,EAAAA,EAAA,iBAAA,GAAA,mBACAA,EAAAA,EAAA,sBAAA,GAAA,wBACAA,EAAAA,EAAA,uBAAA,GAAA,yBACAA,EAAAA,EAAA,qBAAA,GAAA,uBACAA,EAAAA,EAAA,sBAAA,GAAA,wBACAA,EAAAA,EAAA,oBAAA,IAAA,sBACAA,EAAAA,EAAA,cAAA,GAAA,cACD,CAbD,CAAYA,IAAAA,EAAS,CAAA,IA6Jd,MAAM0B,EAA2B,CACtCvG,OAAM,CAACwG,EAAgBC,EAAuB,IAAIhG,KACf,IAA7B+F,EAAQL,UAAUvJ,QACpB6J,EAAOpF,OAAO,IAAIvG,MAAM0L,EAAQL,WAEQ,IAAtCK,EAAQJ,mBAAmBxJ,QAC7B6J,EAAOpF,OAAO,IAAIvG,MAAM0L,EAAQJ,oBAEL,IAAzBI,EAAQH,MAAMzJ,QAChB6J,EAAOpF,OAAO,IAAIvG,MAAM0L,EAAQH,OAEH,IAA3BG,EAAQF,gBACVG,EAAOpF,OAAO,IAAIA,OAAOmF,EAAQF,gBAE5BG,GAGT,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EAAUN,IAChB,KAAOS,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,KAARA,EACF,MAGFgF,EAAQL,UAAYQ,EAAO7L,QAC3B,SAEF,KAAK,EACH,GAAY,KAAR0G,EACF,MAGFgF,EAAQJ,mBAAqBO,EAAO7L,QACpC,SAEF,KAAK,EACH,GAAY,KAAR0G,EACF,MAGFgF,EAAQH,MAAQM,EAAO7L,QACvB,SAEF,KAAK,EACH,GAAY,KAAR0G,EACF,MAGFgF,EAAQF,eAAiBK,EAAOtF,SAChC,SAGJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACLoB,UAAWU,EAAM9B,EAAOoB,WAAaW,EAAgB/B,EAAOoB,WAAa,IAAItF,WAAW,GACxFuF,mBAAoBS,EAAM9B,EAAOqB,oBAC7BU,EAAgB/B,EAAOqB,oBACvB,IAAIvF,WAAW,GACnBwF,MAAOQ,EAAM9B,EAAOsB,OAASS,EAAgB/B,EAAOsB,OAAS,IAAIxF,WAAW,GAC5EyF,eAAgBO,EAAM9B,EAAOuB,gBAAkB1I,WAAW9B,OAAOiJ,EAAOuB,gBAAkB,IAI9F,MAAAS,CAAOP,GACL,MAAMQ,EAAW,CAAA,EAajB,OAZiC,IAA7BR,EAAQL,UAAUvJ,SACpBoK,EAAIb,UAAYc,EAAgBT,EAAQL,YAEA,IAAtCK,EAAQJ,mBAAmBxJ,SAC7BoK,EAAIZ,mBAAqBa,EAAgBT,EAAQJ,qBAEtB,IAAzBI,EAAQH,MAAMzJ,SAChBoK,EAAIX,MAAQY,EAAgBT,EAAQH,QAEP,IAA3BG,EAAQF,iBACVU,EAAIV,eAAiBnP,KAAK+P,MAAMV,EAAQF,iBAEnCU,CACT,EAEAG,OAA+C1L,GACtC8K,EAAMa,YAAY3L,QAAAA,EAAS,IAEpC,WAAA2L,CAAoDrC,eAClD,MAAMyB,EAAUN,IAKhB,OAJAM,EAAQL,UAA4B,QAAhBkB,EAAAtC,EAAOoB,iBAAS,IAAAkB,EAAAA,EAAI,IAAIxG,WAAW,GACvD2F,EAAQJ,mBAA8C,QAAzBkB,EAAAvC,EAAOqB,0BAAkB,IAAAkB,EAAAA,EAAI,IAAIzG,WAAW,GACzE2F,EAAQH,MAAoB,QAAZkB,EAAAxC,EAAOsB,aAAK,IAAAkB,EAAAA,EAAI,IAAI1G,WAAW,GAC/C2F,EAAQF,eAAsC,QAArBkB,EAAAzC,EAAOuB,sBAAc,IAAAkB,EAAAA,EAAI,EAC3ChB,CACT,GAOK,MAAMiB,EAAiC,CAC5CzH,OAAM,CAACwG,EAAmBC,EAAuB,IAAIhG,KACvB,IAAxB+F,EAAQkB,aACVjB,EAAOpF,OAAO,GAAGA,OAAOmF,EAAQkB,aAEb,IAAjBlB,EAAQ9E,MACV+E,EAAOpF,OAAO,IAAIO,MAAM4E,EAAQ9E,WAEFjC,IAA5B+G,EAAQmB,iBACVlB,EAAOpF,OAAO,IAAIA,OAAOmF,EAAQmB,iBAE5BlB,GAGT,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EApBD,CAAEkB,YAAa,EAAGhG,KAAM,EAAGiG,qBAAiBlI,GAqBjD,KAAOkH,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,IAARA,EACF,MAGFgF,EAAQkB,YAAcf,EAAOtF,SAC7B,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQ9E,KAAOiF,EAAO/E,QACtB,SAEF,KAAK,EACH,GAAY,KAARJ,EACF,MAGFgF,EAAQmB,gBAAkBhB,EAAOtF,SACjC,SAGJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACL2C,YAAab,EAAM9B,EAAO2C,aAAe9J,WAAW9B,OAAOiJ,EAAO2C,aAAe,EACjFhG,KAAMmF,EAAM9B,EAAOrD,MAAQoD,EAAqBC,EAAOrD,MAAQ,EAC/DiG,gBAAiBd,EAAM9B,EAAO4C,iBAAmB/J,WAAW9B,OAAOiJ,EAAO4C,sBAAmBlI,IAIjG,MAAAsH,CAAOP,GACL,MAAMQ,EAAW,CAAA,EAUjB,OAT4B,IAAxBR,EAAQkB,cACVV,EAAIU,YAAcvQ,KAAK+P,MAAMV,EAAQkB,cAElB,IAAjBlB,EAAQ9E,OACVsF,EAAItF,KAjWJ,SAA6BqD,GACjC,OAAQA,GACN,KAAKH,EAAaI,0BAChB,MAAO,4BACT,KAAKJ,EAAaK,yCAChB,MAAO,2CACT,KAAKL,EAAaM,6BAChB,MAAO,+BACT,KAAKN,EAAaO,oCAChB,MAAO,sCACT,KAAKP,EAAaQ,+BAChB,MAAO,iCACT,KAAKR,EAAaS,aAClB,QACE,MAAO,eAEb,CAiViBuC,CAAmBpB,EAAQ9E,YAERjC,IAA5B+G,EAAQmB,kBACVX,EAAIW,gBAAkBxQ,KAAK+P,MAAMV,EAAQmB,kBAEpCX,CACT,EAEAG,OAAkD1L,GACzCgM,EAASL,YAAY3L,QAAAA,EAAS,IAEvC,WAAA2L,CAAuDrC,aACrD,MAAMyB,EAnFD,CAAEkB,YAAa,EAAGhG,KAAM,EAAGiG,qBAAiBlI,GAuFjD,OAHA+G,EAAQkB,YAAgC,QAAlBL,EAAAtC,EAAO2C,mBAAW,IAAAL,EAAAA,EAAI,EAC5Cb,EAAQ9E,KAAkB,QAAX4F,EAAAvC,EAAOrD,YAAI,IAAA4F,EAAAA,EAAI,EAC9Bd,EAAQmB,gBAAwC,QAAtBJ,EAAAxC,EAAO4C,uBAAe,IAAAJ,EAAAA,OAAI9H,EAC7C+G,CACT,GAOK,MAAMqB,EAAiC,CAC5C7H,OAAM,CAACwG,EAAmBC,EAAuB,IAAIhG,KACzB,IAAtB+F,EAAQsB,WACVrB,EAAOpF,OAAO,GAAGA,OAAOmF,EAAQsB,WAEV,IAApBtB,EAAQuB,SACVtB,EAAOpF,OAAO,IAAIA,OAAOmF,EAAQuB,SAET,IAAtBvB,EAAQwB,WACVvB,EAAOpF,OAAO,IAAIA,OAAOmF,EAAQwB,WAE5BvB,GAGT,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EApBD,CAAEsB,UAAW,EAAGC,QAAS,EAAGC,UAAW,GAqB5C,KAAOrB,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,IAARA,EACF,MAGFgF,EAAQsB,UAAYnB,EAAOtF,SAC3B,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQuB,QAAUpB,EAAOtF,SACzB,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQwB,UAAYrB,EAAOtF,SAC3B,SAGJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACL+C,UAAWjB,EAAM9B,EAAO+C,WAAalK,WAAW9B,OAAOiJ,EAAO+C,WAAa,EAC3EC,QAASlB,EAAM9B,EAAOgD,SAAWnK,WAAW9B,OAAOiJ,EAAOgD,SAAW,EACrEC,UAAWnB,EAAM9B,EAAOiD,WAAapK,WAAW9B,OAAOiJ,EAAOiD,WAAa,IAI/E,MAAAjB,CAAOP,GACL,MAAMQ,EAAW,CAAA,EAUjB,OAT0B,IAAtBR,EAAQsB,YACVd,EAAIc,UAAY3Q,KAAK+P,MAAMV,EAAQsB,YAEb,IAApBtB,EAAQuB,UACVf,EAAIe,QAAU5Q,KAAK+P,MAAMV,EAAQuB,UAET,IAAtBvB,EAAQwB,YACVhB,EAAIgB,UAAY7Q,KAAK+P,MAAMV,EAAQwB,YAE9BhB,CACT,EAEAG,OAAkD1L,GACzCoM,EAAST,YAAY3L,QAAAA,EAAS,IAEvC,WAAA2L,CAAuDrC,aACrD,MAAMyB,EAnFD,CAAEsB,UAAW,EAAGC,QAAS,EAAGC,UAAW,GAuF5C,OAHAxB,EAAQsB,UAA4B,QAAhBT,EAAAtC,EAAO+C,iBAAS,IAAAT,EAAAA,EAAI,EACxCb,EAAQuB,QAAwB,QAAdT,EAAAvC,EAAOgD,eAAO,IAAAT,EAAAA,EAAI,EACpCd,EAAQwB,UAA4B,QAAhBT,EAAAxC,EAAOiD,iBAAS,IAAAT,EAAAA,EAAI,EACjCf,CACT,GAOK,MAAMyB,EAAmD,CAC9D,MAAAjI,CAAOwG,EAA4BC,EAAuB,IAAIhG,QACrChB,IAAnB+G,EAAQ0B,QACVL,EAAS7H,OAAOwG,EAAQ0B,OAAQzB,EAAOpF,OAAO,IAAIJ,QAAQvH,OAE5D,IAAK,MAAMD,KAAK+M,EAAQ2B,aACtBN,EAAS7H,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAEhD,OAAO+M,CACT,EAEA,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EAjBD,CAAE0B,YAAQzI,EAAW0I,aAAc,IAkBxC,KAAOxB,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,KAARA,EACF,MAGFgF,EAAQ0B,OAASL,EAAS3H,OAAOyG,EAAQA,EAAOtF,UAChD,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQ2B,aAAarP,KAAK+O,EAAS3H,OAAOyG,EAAQA,EAAOtF,WACzD,SAGJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACLmD,OAAQrB,EAAM9B,EAAOmD,QAAUL,EAASjB,SAAS7B,EAAOmD,aAAUzI,EAClE0I,aAAcvK,WAAWwK,MAAMC,QAAQtD,aAAM,EAANA,EAAQoD,cAC3CpD,EAAOoD,aAAa5O,KAAK+O,GAAWT,EAASjB,SAAS0B,KACtD,KAIR,MAAAvB,CAAOP,SACL,MAAMQ,EAAW,CAAA,EAOjB,YANuBvH,IAAnB+G,EAAQ0B,SACVlB,EAAIkB,OAASL,EAASd,OAAOP,EAAQ0B,UAEf,UAApB1B,EAAQ2B,oBAAY,IAAAd,OAAA,EAAAA,EAAEzK,UACxBoK,EAAImB,aAAe3B,EAAQ2B,aAAa5O,KAAK+O,GAAMT,EAASd,OAAOuB,MAE9DtB,CACT,EAEAG,OAA2D1L,GAClDwM,EAAkBb,YAAY3L,QAAAA,EAAS,IAEhD,WAAA2L,CAAgErC,SAC9D,MAAMyB,EAtED,CAAE0B,YAAQzI,EAAW0I,aAAc,IA2ExC,OAJA3B,EAAQ0B,YAA4BzI,IAAlBsF,EAAOmD,QAA0C,OAAlBnD,EAAOmD,OACpDL,EAAST,YAAYrC,EAAOmD,aAC5BzI,EACJ+G,EAAQ2B,cAAkC,QAAnBd,EAAAtC,EAAOoD,oBAAY,IAAAd,OAAA,EAAAA,EAAE9N,KAAK+O,GAAMT,EAAST,YAAYkB,OAAO,GAC5E9B,CACT,GAOK,MAAM+B,EAA2C,CACtD,MAAAvI,CAAOwG,EAAwBC,EAAuB,IAAIhG,GACxDgG,EAAOpF,OAAO,IAAIJ,OAClB,IAAK,MAAMxH,KAAK+M,EAAQgC,OACtB/B,EAAOpF,OAAO5H,GAEhBgN,EAAO/M,OACP,IAAK,MAAMD,KAAK+M,EAAQiC,UACtBhB,EAASzH,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAEhD,OAAO+M,CACT,EAEA,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EAnBD,CAAEgC,OAAQ,GAAIC,UAAW,IAoB9B,KAAO9B,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,IAARA,EAAW,CACbgF,EAAQgC,OAAO1P,KAAK6N,EAAOtF,UAE3B,QACF,CAEA,GAAY,KAARG,EAAY,CACd,MAAMkH,EAAO/B,EAAOtF,SAAWsF,EAAOpM,IACtC,KAAOoM,EAAOpM,IAAMmO,GAClBlC,EAAQgC,OAAO1P,KAAK6N,EAAOtF,UAG7B,QACF,CAEA,MAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQiC,UAAU3P,KAAK2O,EAASvH,OAAOyG,EAAQA,EAAOtF,WACtD,SAGJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACLyD,OAAQ5K,WAAWwK,MAAMC,QAAQtD,eAAAA,EAAQyD,QAAUzD,EAAOyD,OAAOjP,KAAK+O,GAAW1K,WAAW9B,OAAOwM,KAAM,GACzGG,UAAW7K,WAAWwK,MAAMC,QAAQtD,aAAM,EAANA,EAAQ0D,WACxC1D,EAAO0D,UAAUlP,KAAK+O,GAAWb,EAASb,SAAS0B,KACnD,KAIR,MAAAvB,CAAOP,WACL,MAAMQ,EAAW,CAAA,EAOjB,OANkB,UAAdR,EAAQgC,cAAM,IAAAnB,OAAA,EAAAA,EAAEzK,UAClBoK,EAAIwB,OAAShC,EAAQgC,OAAOjP,KAAK+O,GAAMnR,KAAK+P,MAAMoB,OAE/B,UAAjB9B,EAAQiC,iBAAS,IAAAnB,OAAA,EAAAA,EAAE1K,UACrBoK,EAAIyB,UAAYjC,EAAQiC,UAAUlP,KAAK+O,GAAMb,EAASV,OAAOuB,MAExDtB,CACT,EAEAG,OAAuD1L,GAC9C8M,EAAcnB,YAAY3L,QAAAA,EAAS,IAE5C,WAAA2L,CAA4DrC,WAC1D,MAAMyB,EAlFD,CAAEgC,OAAQ,GAAIC,UAAW,IAqF9B,OAFAjC,EAAQgC,QAAsB,UAAbzD,EAAOyD,cAAM,IAAAnB,OAAA,EAAAA,EAAE9N,KAAK+O,GAAMA,MAAM,GACjD9B,EAAQiC,WAA4B,QAAhBnB,EAAAvC,EAAO0D,iBAAS,IAAAnB,OAAA,EAAAA,EAAE/N,KAAK+O,GAAMb,EAASL,YAAYkB,OAAO,GACtE9B,CACT,GAOK,MAAMmC,EAAyC,CACpD,MAAA3I,CAAOwG,EAAuBC,EAAuB,IAAIhG,GAClC,IAAjB+F,EAAQ9E,MACV+E,EAAOpF,OAAO,GAAGO,MAAM4E,EAAQ9E,MAEZ,KAAjB8E,EAAQoC,MACVnC,EAAOpF,OAAO,IAAIU,OAAOyE,EAAQoC,MAEnCnC,EAAOpF,OAAO,IAAIJ,OAClB,IAAK,MAAMxH,KAAK+M,EAAQgC,OACtB/B,EAAOpF,OAAO5H,GAGhB,OADAgN,EAAO/M,OACA+M,CACT,EAEA,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EAtBD,CAAE9E,KAAM,EAAGkH,KAAM,GAAIJ,OAAQ,IAuBlC,KAAO7B,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,IAARA,EACF,MAGFgF,EAAQ9E,KAAOiF,EAAO/E,QACtB,SAEF,KAAK,EACH,GAAY,KAARJ,EACF,MAGFgF,EAAQoC,KAAOjC,EAAO5E,SACtB,SAEF,KAAK,EACH,GAAY,KAARP,EAAY,CACdgF,EAAQgC,OAAO1P,KAAK6N,EAAOtF,UAE3B,QACF,CAEA,GAAY,KAARG,EAAY,CACd,MAAMkH,EAAO/B,EAAOtF,SAAWsF,EAAOpM,IACtC,KAAOoM,EAAOpM,IAAMmO,GAClBlC,EAAQgC,OAAO1P,KAAK6N,EAAOtF,UAG7B,QACF,EAKJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACLrD,KAAMmF,EAAM9B,EAAOrD,MAAQ4D,EAAkBP,EAAOrD,MAAQ,EAC5DkH,KAAM/B,EAAM9B,EAAO6D,MAAQhL,WAAWzB,OAAO4I,EAAO6D,MAAQ,GAC5DJ,OAAQ5K,WAAWwK,MAAMC,QAAQtD,eAAAA,EAAQyD,QAAUzD,EAAOyD,OAAOjP,KAAK+O,GAAW1K,WAAW9B,OAAOwM,KAAM,KAI7G,MAAAvB,CAAOP,SACL,MAAMQ,EAAW,CAAA,EAUjB,OATqB,IAAjBR,EAAQ9E,OACVsF,EAAItF,KAjoBJ,SAA0BqD,GAC9B,OAAQA,GACN,KAAKF,EAAUU,uBACb,MAAO,yBACT,KAAKV,EAAUW,gBACb,MAAO,kBACT,KAAKX,EAAUY,kBACb,MAAO,oBACT,KAAKZ,EAAUa,gBACb,MAAO,kBACT,KAAKb,EAAUc,eACb,MAAO,iBACT,KAAKd,EAAUe,iBACb,MAAO,mBACT,KAAKf,EAAUgB,sBACb,MAAO,wBACT,KAAKhB,EAAUiB,uBACb,MAAO,yBACT,KAAKjB,EAAUkB,qBACb,MAAO,uBACT,KAAKlB,EAAUmB,sBACb,MAAO,wBACT,KAAKnB,EAAUoB,oBACb,MAAO,sBACT,KAAKpB,EAAUQ,aACf,QACE,MAAO,eAEb,CAqmBiBwD,CAAgBrC,EAAQ9E,OAEhB,KAAjB8E,EAAQoC,OACV5B,EAAI4B,KAAOpC,EAAQoC,OAEH,UAAdpC,EAAQgC,cAAM,IAAAnB,OAAA,EAAAA,EAAEzK,UAClBoK,EAAIwB,OAAShC,EAAQgC,OAAOjP,KAAK+O,GAAMnR,KAAK+P,MAAMoB,MAE7CtB,CACT,EAEAG,OAAsD1L,GAC7CkN,EAAavB,YAAY3L,QAAAA,EAAS,IAE3C,WAAA2L,CAA2DrC,aACzD,MAAMyB,EA/FD,CAAE9E,KAAM,EAAGkH,KAAM,GAAIJ,OAAQ,IAmGlC,OAHAhC,EAAQ9E,KAAkB,QAAX2F,EAAAtC,EAAOrD,YAAI,IAAA2F,EAAAA,EAAI,EAC9Bb,EAAQoC,KAAkB,QAAXtB,EAAAvC,EAAO6D,YAAI,IAAAtB,EAAAA,EAAI,GAC9Bd,EAAQgC,QAAsB,UAAbzD,EAAOyD,cAAM,IAAAjB,OAAA,EAAAA,EAAEhO,KAAK+O,GAAMA,MAAM,GAC1C9B,CACT,GAaK,MAAMsC,EAAmC,CAC9C,MAAA9I,CAAOwG,EAAoBC,EAAuB,IAAIhG,GACpD,IAAK,MAAMhH,KAAK+M,EAAQuC,eACtBR,EAAcvI,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAErD,IAAK,MAAMD,KAAK+M,EAAQwC,gBACtBzC,EAAMvG,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAE7C,IAAK,MAAMD,KAAK+M,EAAQyC,cACtBN,EAAa3I,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAEpD,IAAK,MAAMD,KAAK+M,EAAQ0C,kBACtBjB,EAAkBjI,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAEzD,IAAK,MAAMD,KAAK+M,EAAQ2C,wBACtBlB,EAAkBjI,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAEzD,OAAO+M,CACT,EAEA,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EAhCD,CACLuC,eAAgB,GAChBC,gBAAiB,GACjBC,cAAe,GACfC,kBAAmB,GACnBC,wBAAyB,IA4BzB,KAAOxC,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,KAARA,EACF,MAGFgF,EAAQuC,eAAejQ,KAAKyP,EAAcrI,OAAOyG,EAAQA,EAAOtF,WAChE,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQwC,gBAAgBlQ,KAAKyN,EAAMrG,OAAOyG,EAAQA,EAAOtF,WACzD,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQyC,cAAcnQ,KAAK6P,EAAazI,OAAOyG,EAAQA,EAAOtF,WAC9D,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQ0C,kBAAkBpQ,KAAKmP,EAAkB/H,OAAOyG,EAAQA,EAAOtF,WACvE,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQ2C,wBAAwBrQ,KAAKmP,EAAkB/H,OAAOyG,EAAQA,EAAOtF,WAC7E,SAGJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACLgE,eAAgBnL,WAAWwK,MAAMC,QAAQtD,aAAM,EAANA,EAAQgE,gBAC7ChE,EAAOgE,eAAexP,KAAK+O,GAAWC,EAAc3B,SAAS0B,KAC7D,GACJU,gBAAiBpL,WAAWwK,MAAMC,QAAQtD,aAAM,EAANA,EAAQiE,iBAC9CjE,EAAOiE,gBAAgBzP,KAAK+O,GAAW/B,EAAMK,SAAS0B,KACtD,GACJW,cAAerL,WAAWwK,MAAMC,QAAQtD,aAAM,EAANA,EAAQkE,eAC5ClE,EAAOkE,cAAc1P,KAAK+O,GAAWK,EAAa/B,SAAS0B,KAC3D,GACJY,kBAAmBtL,WAAWwK,MAAMC,QAAQtD,aAAM,EAANA,EAAQmE,mBAChDnE,EAAOmE,kBAAkB3P,KAAK+O,GAAWL,EAAkBrB,SAAS0B,KACpE,GACJa,wBAAyBvL,WAAWwK,MAAMC,QAAQtD,aAAM,EAANA,EAAQoE,yBACtDpE,EAAOoE,wBAAwB5P,KAAK+O,GAAWL,EAAkBrB,SAAS0B,KAC1E,KAIR,MAAAvB,CAAOP,iBACL,MAAMQ,EAAW,CAAA,EAgBjB,OAf0B,UAAtBR,EAAQuC,sBAAc,IAAA1B,OAAA,EAAAA,EAAEzK,UAC1BoK,EAAI+B,eAAiBvC,EAAQuC,eAAexP,KAAK+O,GAAMC,EAAcxB,OAAOuB,OAEnD,UAAvB9B,EAAQwC,uBAAe,IAAA1B,OAAA,EAAAA,EAAE1K,UAC3BoK,EAAIgC,gBAAkBxC,EAAQwC,gBAAgBzP,KAAK+O,GAAM/B,EAAMQ,OAAOuB,OAE/C,UAArB9B,EAAQyC,qBAAa,IAAA1B,OAAA,EAAAA,EAAE3K,UACzBoK,EAAIiC,cAAgBzC,EAAQyC,cAAc1P,KAAK+O,GAAMK,EAAa5B,OAAOuB,OAE9C,UAAzB9B,EAAQ0C,yBAAiB,IAAA1B,OAAA,EAAAA,EAAE5K,UAC7BoK,EAAIkC,kBAAoB1C,EAAQ0C,kBAAkB3P,KAAK+O,GAAML,EAAkBlB,OAAOuB,OAErD,UAA/B9B,EAAQ2C,+BAAuB,IAAAC,OAAA,EAAAA,EAAExM,UACnCoK,EAAImC,wBAA0B3C,EAAQ2C,wBAAwB5P,KAAK+O,GAAML,EAAkBlB,OAAOuB,MAE7FtB,CACT,EAEAG,OAAmD1L,GAC1CqN,EAAU1B,YAAY3L,QAAAA,EAAS,IAExC,WAAA2L,CAAwDrC,iBACtD,MAAMyB,EAjID,CACLuC,eAAgB,GAChBC,gBAAiB,GACjBC,cAAe,GACfC,kBAAmB,GACnBC,wBAAyB,IAmIzB,OANA3C,EAAQuC,gBAAsC,QAArB1B,EAAAtC,EAAOgE,sBAAc,IAAA1B,OAAA,EAAAA,EAAE9N,KAAK+O,GAAMC,EAAcnB,YAAYkB,OAAO,GAC5F9B,EAAQwC,iBAAwC,QAAtB1B,EAAAvC,EAAOiE,uBAAe,IAAA1B,OAAA,EAAAA,EAAE/N,KAAK+O,GAAM/B,EAAMa,YAAYkB,OAAO,GACtF9B,EAAQyC,eAAoC,QAApB1B,EAAAxC,EAAOkE,qBAAa,IAAA1B,OAAA,EAAAA,EAAEhO,KAAK+O,GAAMK,EAAavB,YAAYkB,OAAO,GACzF9B,EAAQ0C,mBAA4C,QAAxB1B,EAAAzC,EAAOmE,yBAAiB,IAAA1B,OAAA,EAAAA,EAAEjO,KAAK+O,GAAML,EAAkBb,YAAYkB,OAAO,GACtG9B,EAAQ2C,yBAAwD,UAA9BpE,EAAOoE,+BAAuB,IAAAC,OAAA,EAAAA,EAAE7P,KAAK+O,GAAML,EAAkBb,YAAYkB,OACzG,GACK9B,CACT,GAGF,SAASM,EAAgBuC,GACvB,GAAKzL,WAAmB0L,OACtB,OAAOzI,WAAWjH,KAAKgE,WAAW0L,OAAO1P,KAAKyP,EAAK,WAC9C,CACL,MAAME,EAAM3L,WAAW4L,KAAKH,GACtBI,EAAM,IAAI5I,WAAW0I,EAAI3M,QAC/B,IAAK,IAAI7B,EAAI,EAAGA,EAAIwO,EAAI3M,SAAU7B,EAChC0O,EAAI1O,GAAKwO,EAAIG,WAAW3O,GAE1B,OAAO0O,CACT,CACF,CAEA,SAASxC,EAAgBwC,GACvB,GAAK7L,WAAmB0L,OACtB,OAAO1L,WAAW0L,OAAO1P,KAAK6P,GAAKnS,SAAS,UACvC,CACL,MAAMiS,EAAgB,GAItB,OAHAE,EAAIE,SAAS1O,IACXsO,EAAIzQ,KAAK8E,WAAWzB,OAAOyN,aAAa3O,GAAM,IAEzC2C,WAAWiM,KAAKN,EAAI7P,KAAK,IAClC,CACF,CAcA,SAASmN,EAAM/J,GACb,OAAOA,OACT,aCl6BayJ,EAiDX,WAAA7N,CACEQ,EACAiN,EACAC,EACAC,EACAC,GAEA3N,KAAKO,GAAKA,EACVP,KAAKwN,UAAYA,EACjBxN,KAAKyN,mBAAqBA,EAC1BzN,KAAK0N,MAAQA,EACb1N,KAAK2N,eAAiBA,EACtB3N,KAAKmR,QAAUzD,EAAMzJ,OACrBjE,KAAKoR,QAAUpR,KAAKwN,UAAUvJ,QAA8B,EAApBjE,KAAK0N,MAAMzJ,QACnDjE,KAAKqR,YAAc,IAAIC,IACvB,IAAK,IAAIlP,EAAI,EAAGA,EAAIsL,EAAMzJ,OAAQ7B,IAAK,CAErC,MAAMmP,EAAS7D,EAAMtL,GACfoP,EAAkBxR,KAAKqR,YAAYI,IAAIF,GACzCC,EACFA,EAAgBrR,KAAKiC,GAErBpC,KAAKqR,YAAYhJ,IAAIkJ,EAAQ,CAACnP,GAElC,CACF,CAQA,SAAOsP,CAAGC,WAaR,MAAMpR,GAAEA,EAAEoN,eAAEA,EAAciE,MAAEA,GAAUD,EAEtC,GAAqB,IAAjBC,EAAM3N,OACR,MAAM,IAAIlC,MAAM,sCAKlB,MAAM8P,EAAYD,EAAM,GAClBE,EAAU,IAAIC,YAAYF,EAAUnE,MAAM9M,KAAKoR,GAASA,EAAKzR,MAC7D0R,EAAWH,EAAQ7N,OAGzB,IAAK,IAAIoL,EAAY,EAAGA,EAAYuC,EAAM3N,OAAQoL,IAAa,CAE7D,MAAM6C,EAAON,EAAMvC,GACnB,GAAI6C,EAAKxE,MAAMzJ,SAAWgO,EACxB,MAAM,IAAIlQ,MACR,QAAQsN,SAAiB6C,EAAKxE,MAAMzJ,0BAA0BgO,KAGlE,IAAK,IAAI9C,EAAY,EAAGA,EAAY8C,EAAU9C,IAE5C,GAAI+C,EAAKxE,MAAMyB,GAAY5O,KAAOuR,EAAQ3C,GACxC,MAAM,IAAIpN,MACR,QAAQsN,iCAAyCF,IAIzD,CAGA,MAAM3B,EAAY,IAAI2E,YAAYP,EAAM3N,OAASgO,EAAW,GAC5D,IAAK,IAAI5C,EAAY,EAAGA,EAAYuC,EAAM3N,OAAQoL,IAAa,CAE7D,MAAM6C,EAAON,EAAMvC,GACnB,IAAK,IAAIF,EAAY,EAAGA,EAAY8C,EAAU9C,IAAa,CAEzD,MAAM6C,EAAOE,EAAKxE,MAAMyB,GAClBiD,EAAiD,GAApC/C,EAAY4C,EAAW9C,GAC1C3B,EAAU4E,GAAaJ,EAAKK,YAC5B7E,EAAU4E,EAAY,GAAKJ,EAAKM,aAClC,CACF,CAGA,MAAMC,EAAmBX,EAAM3N,OAASgO,EAClCxE,EAAqB,IAAIvF,WAAW1J,KAAKgU,KAAKD,EAAmB,IAEvE,IAAK,IAAIlD,EAAY,EAAGA,EAAYuC,EAAM3N,OAAQoL,IAAa,CAE7D,MAAM6C,EAAON,EAAMvC,GACnB,IAAK,IAAIF,EAAY,EAAGA,EAAY8C,EAAU9C,IAAa,CAEzD,MAAM6C,EAAOE,EAAKxE,MAAMyB,GAClBsD,EAAcpD,EAAY4C,EAAW9C,EACrCuD,EAAwB,QAAfhE,EAAAsD,EAAKW,kBAAU,IAAAjE,EAAAA,EAzKf,EA0KTkE,EAA0B,QAAhBjE,EAAAqD,EAAKa,mBAAW,IAAAlE,EAAAA,EA1KjB,EA2KTmE,EAAYtU,KAAKC,MAAMgU,EAAc,GACrCM,EAAeN,EAAc,GAAM,EAKvChF,EAAmBqF,IAHjBC,EAGiCL,GAAU,EAAME,GAAW,EAI3BF,GAAU,EAAKE,CAEtD,CACF,CAEA,OAAO,IAAIhF,EACTrN,EACAiN,EACAC,EACAqE,EACAnE,EAEJ,CAOA,SAAAqF,GACE,MAAO,CACLxF,UAAWxN,KAAKwN,UAChBC,mBAAoBzN,KAAKyN,mBACzBC,MAAO1N,KAAK0N,MACZC,eAAgB3N,KAAK2N,eAEzB,CAOA,UAAAsF,GACE,OAAOjT,KAAKmR,OACd,CAOA,UAAA+B,GACE,OAAOlT,KAAKoR,OACd,CAQA,YAAA+B,GACE,OAAOnT,KAAK2N,cACd,CASA,SAAAyF,CAAUjE,EAA2BE,GACnC,MAAMgE,EAA6D,GAA7ChE,EAAYrP,KAAK0N,MAAMzJ,OAASkL,GAChDmE,EAAUtT,KAAKwN,UAAU6F,GAC/B,QAAgBvM,IAAZwM,EACF,MAAM,IAAIvR,MACR,mCAAmC/B,KAAKuR,OAAOpC,OAAeA,oBAA4BE,cAAsBrP,KAAK2N,kBAGzH,OAAO2F,CACT,CAYA,cAAAC,CAAelE,GACb,OAAOA,EAAYrP,KAAKmR,OAC1B,CASA,eAAAqC,CAAgBrE,EAA2B/G,GAEzC,OAAOpI,KAAKwN,UAAiC,GAAtBpF,EAAS+G,GAClC,CASA,iBAAAsE,CAAkBtE,EAA2B/G,GAE3C,OAAOpI,KAAKwN,UAAiC,GAAtBpF,EAAS+G,GAAiB,EACnD,CASA,mBAAAuE,CACEvE,EACA/G,GAEA,MAAMqK,EAAcrK,EAAS+G,EAEvB7M,EAAOtC,KAAKyN,mBAAmBgF,GAAe,GAGpD,OACgB,EAAdA,EAAmBnQ,GAAQ,EAAK,EAAc,EAAPA,CAE3C,CASA,aAAAqR,CAAcxE,EAA2BE,GACvC,MAAMuE,EAA+D,GAA7CvE,EAAYrP,KAAK0N,MAAMzJ,OAASkL,GAAiB,EACnE0E,EAAY7T,KAAKwN,UAAUoG,GACjC,QAAkB9M,IAAd+M,EACF,MAAM,IAAI9R,MACR,qCAAqC/B,KAAKuR,OAAOpC,OAAeA,oBAA4BE,cAAsBrP,KAAK2N,kBAG3H,OAAOkG,CACT,CASA,cAAAC,CACE3E,EACAE,GAEA,MAAMoD,EAAcpD,EAAYrP,KAAK0N,MAAMzJ,OAASkL,EAC9C2D,EAAYL,GAAe,EAC3BM,IAAqC,GAArBN,GAEhBnQ,EAAOtC,KAAKyN,mBAAmBqF,GACrC,QAAahM,IAATxE,EACF,MAAM,IAAIP,MACR,mCAAmC/B,KAAKuR,OAAOpC,OAAeA,oBAA4BE,cAAsBrP,KAAK2N,kBAOzH,OAHoBoF,EACfzQ,GAAQ,EAAK,EACbA,GAAQ,EAAK,CAEpB,CASA,aAAAyR,CACE5E,EACAE,GAEA,MAAMoD,EAAcpD,EAAYrP,KAAK0N,MAAMzJ,OAASkL,EAC9C2D,EAAYL,GAAe,EAC3BM,IAAqC,GAArBN,GAEhBnQ,EAAOtC,KAAKyN,mBAAmBqF,GACrC,QAAahM,IAATxE,EACF,MAAM,IAAIP,MACR,oCAAoC/B,KAAKuR,OAAOpC,OAAeA,oBAA4BE,cAAsBrP,KAAK2N,kBAO1H,OAHqBoF,EAChBzQ,GAAQ,EAAK,EACP,EAAPA,CAEN,CAcA,gBAAA0R,CACE7E,EACA8E,EPrZ6B,EOsZ7BC,GAEA,GAAIlU,KAAKoR,SAAW,EAAG,OAEvB,IAAIlP,EAAKlC,KAAKoR,QAAU,EAExB,QADmBtK,IAAfoN,IAA0BhS,EAAK1D,KAAK2V,IAAIjS,EAAIgS,EAAa,IACzDhS,EAAK,EAAG,OAEZ,IAAID,EAAK,EACLmS,GAAK,EACT,KAAOnS,GAAMC,GAAI,CACf,MAAMuB,EAAOxB,EAAKC,IAAQ,EACXlC,KAAK2T,cAAcxE,EAAW1L,GAChCwQ,EACXhS,EAAKwB,EAAM,GAEX2Q,EAAK3Q,EACLvB,EAAKuB,EAAM,EAEf,CACA,OAAW,IAAP2Q,EACGA,OADP,CAEF,CAOO,gBAAAC,CAAiB9C,GACtB,MAAMpC,EAAYnP,KAAKqR,YAAYI,IAAIF,GACvC,YAAkBzK,IAAdqI,EACK,GAEFA,CACT,CAOO,MAAAoC,CAAO+C,GACZ,MAAM/C,EAASvR,KAAK0N,MAAM4G,GAC1B,QAAexN,IAAXyK,EACF,MAAM,IAAIxP,MACR,4BAA4BuS,wBAAqCtU,KAAK2N,kBAG1E,OAAO4D,CACT,GCjdF,MAAMgD,GAAc3P,OAAO,IAAMA,OAAO,KAAOA,OAAO,GAChD4P,EAAY,QAGZC,EAAmB7P,OAAO,GAC1B8P,EAAiB9P,OAAO,IACxB+P,EAAmB/P,OAAO,IAW1BgQ,EAAgB,CAACzQ,EAAe8L,KACpC,GAAI9L,EAAQ,GAAKA,EAAQqQ,EACvB,MAAM,IAAIzS,MAAM,GAAGkO,wCAAgD9L,IACrE,EAUWkD,EAAS,CACpB8H,EACAC,EACAC,KAEAuF,EAAczF,EAAW,aACzByF,EAAcxF,EAAS,WACvBwF,EAAcvF,EAAW,aAGtBzK,OAAOuK,IAAcwF,EACrB/P,OAAOwK,IAAYsF,EACnB9P,OAAOyK,IAAcoF,GCjBpBI,GAAiB,MACrB,MAAMlL,EAAS,IAAIhF,YAAY,GAG/B,OAFa,IAAID,SAASiF,GACrBK,UAAU,EAAG,WACmB,MAA9B,IAAI9B,WAAWyB,GAAQ,EAC/B,EALsB,GAOjBmL,IAAsB,EAEtBC,GAAsBC,IAC1B,GAAIH,KAAmBC,GACrB,OAAO,IAAI5M,WAAW8M,EAAMrL,OAAQqL,EAAMnK,WAAYmK,EAAMrM,YAI9D,MAAMtE,EAAS,IAAI6D,WAA0B,EAAf8M,EAAM/Q,QAC9BmG,EAAO,IAAI1F,SAASL,EAAOsF,QAEjC,IAAK,IAAIvH,EAAI,EAAGA,EAAI4S,EAAM/Q,OAAQ7B,IAEhCgI,EAAKJ,UAAc,EAAJ5H,EAAO4S,EAAM5S,GAAK0S,IAGnC,OAAOzQ,CAAM,EAGT4Q,GAAsB9S,IAC1B,GAAIA,EAAMwG,WAAa,GAAM,EAC3B,MAAM,IAAI5G,MACR,uEAKJ,GAAI8S,KAAmBC,GACrB,OAAO,IAAI/C,YACT5P,EAAMwH,OACNxH,EAAM0I,WACN1I,EAAMwG,WAAa,GAKvB,MAAMtE,EAAS,IAAI0N,YAAY5P,EAAMwG,WAAa,GAC5CyB,EAAO,IAAI1F,SAASvC,EAAMwH,OAAQxH,EAAM0I,WAAY1I,EAAMwG,YAEhE,IAAK,IAAIvG,EAAI,EAAGA,EAAIiC,EAAOJ,OAAQ7B,IACjCiC,EAAOjC,GAAKgI,EAAKyB,UAAc,EAAJzJ,EAAO0S,IAGpC,OAAOzQ,CAAM,EAGT6Q,GAAsBF,IAC1B,GAAIH,KAAmBC,GACrB,OAAO,IAAI5M,WAAW8M,EAAMrL,OAAQqL,EAAMnK,WAAYmK,EAAMrM,YAI9D,MAAMtE,EAAS,IAAI6D,WAA0B,EAAf8M,EAAM/Q,QAC9BmG,EAAO,IAAI1F,SAASL,EAAOsF,QAEjC,IAAK,IAAIvH,EAAI,EAAGA,EAAI4S,EAAM/Q,OAAQ7B,IAEhCgI,EAAK+K,UAAc,EAAJ/S,EAAO4S,EAAM5S,GAAK0S,IAGnC,OAAOzQ,CAAM,EAGT+Q,GAAsBjT,IAC1B,GAAIA,EAAMwG,WAAa,GAAM,EAC3B,MAAM,IAAI5G,MACR,uEAKJ,GAAI8S,KAAmBC,GACrB,OAAO,IAAI3C,YACThQ,EAAMwH,OACNxH,EAAM0I,WACN1I,EAAMwG,WAAa,GAKvB,MAAMtE,EAAS,IAAI8N,YAAYhQ,EAAMwG,WAAa,GAC5CyB,EAAO,IAAI1F,SAASvC,EAAMwH,OAAQxH,EAAM0I,WAAY1I,EAAMwG,YAEhE,IAAK,IAAIvG,EAAI,EAAGA,EAAIiC,EAAOJ,OAAQ7B,IACjCiC,EAAOjC,GAAKgI,EAAKiL,UAAc,EAAJjT,EAAO0S,IAGpC,OAAOzQ,CAAM,EAsBFiR,GACXjF,IAEA,MAAMkF,EAAqC,GAY3C,OAVAlF,EAAgBW,SAASwE,IACvB,MAAMC,EAAYD,EAAMxC,YACxBuC,EAAqBpV,KAAK,CACxBqN,UAAW0H,GAAmBO,EAAUjI,WACxCC,mBAAoBgI,EAAUhI,mBAC9BC,MAAOqH,GAAmBU,EAAU/H,OACpCC,eAAgB8H,EAAU9H,gBAC1B,IAGG4H,CAAoB,EA6FvBG,GAAqB3M,IACzB,OAAQA,GACN,KAAK4M,EAAkBtJ,0BACrB,MAAM,IAAItK,MAAM,uCAClB,KAAK4T,EAAkBrJ,yCACrB,MAAO,cACT,KAAKqJ,EAAkBpJ,6BACrB,MAAO,aACT,KAAKoJ,EAAkBnJ,oCACrB,MAAO,wBACT,KAAKmJ,EAAkBlJ,+BACrB,MAAO,UACT,KAAKkJ,EAAkBjJ,aACrB,MAAM,IAAI3K,MAAM,0CAIhB6T,GAAyB7M,IAC7B,OAAQA,GACN,IAAK,cACH,OAAO4M,EAAkBrJ,yCAC3B,IAAK,aACH,OAAOqJ,EAAkBpJ,6BAC3B,IAAK,wBACH,OAAOoJ,EAAkBnJ,oCAC3B,IAAK,UACH,OAAOmJ,EAAkBlJ,iCAIzBoJ,GAAkB9M,IACtB,OAAQA,GACN,KAAK+M,EAAelJ,uBAClB,MAAM,IAAI7K,MAAM,oCAClB,KAAK+T,EAAejJ,gBAClB,MAAO,OACT,KAAKiJ,EAAehJ,kBAClB,MAAO,SACT,KAAKgJ,EAAe/I,gBAClB,MAAO,OACT,KAAK+I,EAAe9I,eAClB,MAAO,MACT,KAAK8I,EAAe7I,iBAClB,MAAO,QACT,KAAK6I,EAAe5I,sBAClB,MAAO,aACT,KAAK4I,EAAe3I,uBAClB,MAAO,cACT,KAAK2I,EAAe1I,qBAClB,MAAO,YACT,KAAK0I,EAAezI,sBAClB,MAAO,aACT,KAAKyI,EAAexI,oBAClB,MAAO,WACT,KAAKwI,EAAepJ,aACpB,QACE,MAAM,IAAI3K,MAAM,uCAIhBgU,GAAsBhN,IAC1B,OAAQA,GACN,IAAK,OACH,OAAO+M,EAAejJ,gBACxB,IAAK,SACH,OAAOiJ,EAAehJ,kBACxB,IAAK,OACH,OAAOgJ,EAAe/I,gBACxB,IAAK,MACH,OAAO+I,EAAe9I,eACxB,IAAK,QACH,OAAO8I,EAAe7I,iBACxB,IAAK,aACH,OAAO6I,EAAe5I,sBACxB,IAAK,cACH,OAAO4I,EAAe3I,uBACxB,IAAK,YACH,OAAO2I,EAAe1I,qBACxB,IAAK,aACH,OAAO0I,EAAezI,sBACxB,IAAK,WACH,OAAOyI,EAAexI,sBAIf0I,GACXC,IAEA,MAAM5R,EAAmC,GACzC,IAAK,MAAO6R,EAAgB1G,KAAiByG,EAActV,UAAW,CACpE,MAAOwV,EAAiBC,EAAeC,ID/RzCC,ECgSWJ,ED1RJ,CAJW/S,OAAQmT,GAAc3B,EAAoBJ,GAC5CpR,OAAQmT,GAAc5B,EAAkBH,GACtCpR,OAAQmT,GAAc7B,EAAoBF,KC8R1DlQ,EAAOlE,KAAK,CACVoP,OAAQ,CACNJ,UAAWgH,EACX/G,QAASgH,EACT/G,UAAWgH,GAEb7G,aAAcA,EAAa5O,KAAK2V,IAAQ,CACtCpH,UAAWoH,EAASpH,UACpBC,QAASmH,EAASnH,QAClBC,UAAWkH,EAASlH,eAG1B,CD/SoB,IACpBiH,ECgTA,OAAOjS,CAAM,EAGFmS,GACXC,IAEA,MAAMpS,EAAS,IAAIiN,IAEnB,IAAK,IAAIlP,EAAI,EAAGA,EAAIqU,EAAkBxS,OAAQ7B,IAAK,CAEjD,MAAMsU,EAAQD,EAAkBrU,GAE1BmN,EAASmH,EAAMnH,OACf2G,EAAiB7O,EACrBkI,EAAOJ,UACPI,EAAOH,QACPG,EAAOF,WAEHG,EAA2BkH,EAAMlH,aAAa5O,KACjD+V,IAAa,CACZxH,UAAWwH,EAAcxH,UACzBC,QAASuH,EAAcvH,QACvBC,UAAWsH,EAActH,cAI7BhL,EAAOgE,IAAI6N,EAAgB1G,EAC7B,CAEA,OAAOnL,CAAM,EC/TFuS,GAAsC,IAAIC,IAAI,CACzD,OACA,SACA,OACA,MACA,QACA,aACA,cACA,YACA,aACA,aAGIC,GAAmC,SAK5B3G,GAQX,WAAApQ,CACEqQ,EACAC,EACAR,EACAU,EACAC,GAEAxQ,KAAKoQ,eAAiBA,EACtBpQ,KAAKqQ,gBAAkBA,EACvBrQ,KAAKsQ,cAAgBT,EACrB7P,KAAKuQ,kBAAoBA,EACzBvQ,KAAKwQ,wBAA0BA,EAC/BxQ,KAAK+W,YAAc,IAAIF,IACvB,IAAK,IAAIzU,EAAI,EAAGA,EAAIgO,EAAenM,OAAQ7B,IAAK,CAC9C,MAAM4P,EAAO5B,EAAehO,IAE1B4P,EAAKnC,OAAO5L,OAAS,GACpB+N,EAAKlC,WAAakC,EAAKlC,UAAU7L,OAAS,IAE3CjE,KAAK+W,YAAYC,IAAI5U,EAEzB,CACF,CAOA,SAAA4Q,GACE,MAAMiE,EAAiB,CACrB7G,gBDAJA,ECA4CpQ,KAAKoQ,eDE1CA,EAAexP,KAAKuD,IAClB,CACL2L,UAAW3L,EAAM2L,UACb3L,EAAM2L,UAAUlP,KAAKsW,GAAaxW,OAAAyW,OAAA,CAChCpI,YAAamI,EAASnI,YACtBhG,KAAM6M,GAAsBsB,EAASnO,YACJjC,IAA7BoQ,EAASlI,iBAAiC,CAC5CA,gBAAiBkI,EAASlI,oBAG9B,GACJa,OAAQ1L,EAAM0L,YCZdQ,gBAAiBiF,GAAyBtV,KAAKqQ,iBAC/CC,eDmCJA,ECnC6CtQ,KAAKsQ,cDqC3CA,EAAc1P,KAAKuD,IACjB,CACL4E,KAAMgN,GAAmB5R,EAAM4E,MAC/BkH,KAAM9L,EAAM8L,KACZJ,OAAQ1L,EAAM0L,YCxCdU,kBAAmByF,GACjBhW,KAAKuQ,mBAAqB,IAAIe,KAEhCd,wBAAyBwF,GACvBhW,KAAKwQ,yBAA2B,IAAIc,MD6BH,IACvChB,EArCAF,ECUE,MAAMtC,EAAS,IAAIhG,EAEnB,OADAsP,EAAe/P,OAAO4P,EAAgBnJ,GAC/BA,EAAO7F,QAChB,CAQA,eAAOoP,CAASC,GACd,MAAMtJ,EAAS,IAAIrD,EAAa2M,GAC1BL,EAAiBG,EAAe7P,OAAOyG,GAC7C,OAAO,IAAImC,GDwB0B,CACvCoH,IAEA,MAAMlT,EAA0B,GAEhC,IAAK,IAAIjC,EAAI,EAAGA,EAAImV,EAAoBtT,OAAQ7B,IAAK,CAEnD,MAAM+B,EAAQoT,EAAoBnV,GAC5B0N,EAAwB,GAE9B,IAAK,IAAI0H,EAAI,EAAGA,EAAIrT,EAAM2L,UAAU7L,OAAQuT,IAAK,CAE/C,MAAMN,EAAW/S,EAAM2L,UAAU0H,GAC3BC,iBACJ1I,YAAamI,EAASnI,YACtBhG,KAAM2M,GAAkBwB,EAASnO,YACAjC,IAA7BoQ,EAASlI,iBAAiC,CAC5CA,gBAAiBkI,EAASlI,kBAG9Bc,EAAU3P,KAAKsX,EACjB,CAEA,MAAMC,EAA+B,CACnC7H,OAAQ1L,EAAM0L,QAGZC,EAAU7L,OAAS,IACrByT,EAAc5H,UAAYA,GAG5BzL,EAAOlE,KAAKuX,EACd,CAEA,OAAOrT,CAAM,ECzDTsT,CAA0BV,EAAe7G,gBD4DL,CACxCmF,IAEA,MAAMlF,EAA2B,GAEjC,IAAK,IAAIjO,EAAI,EAAGA,EAAImT,EAAqBtR,OAAQ7B,IAAK,CAEpD,MAAM+B,EAAQoR,EAAqBnT,GAC7BsL,EAAQuH,GAAmB9Q,EAAMuJ,OACvC2C,EAAgBlQ,KACd,IAAIyN,EACFxL,EACAgT,GAAmBjR,EAAMqJ,WACzBrJ,EAAMsJ,mBACNC,EACAvJ,EAAMwJ,gBAGZ,CAEA,OAAO0C,CAAe,EC/ElBuH,CAA2BX,EAAe5G,iBDkFL,CACzCwH,IAEA,MAAMxT,EAAyB,GAE/B,IAAK,IAAIjC,EAAI,EAAGA,EAAIyV,EAAmB5T,OAAQ7B,IAAK,CAElD,MAAM+B,EAAQ0T,EAAmBzV,GACjCiC,EAAOlE,KAAK,CACV4I,KAAM8M,GAAe1R,EAAM4E,MAC3BkH,KAAM9L,EAAM8L,KACZJ,OAAQ1L,EAAM0L,QAElB,CAEA,OAAOxL,CAAM,EChGTyT,CAA4Bb,EAAe3G,eAC3CkG,GAAyBS,EAAe1G,mBACxCiG,GAAyBS,EAAezG,yBAE5C,CAUA,QAAAuH,CAASxG,GACP,OAAOvR,KAAK+W,YAAYiB,IAAIzG,EAC9B,CAKA,OAAAJ,GACE,OAAOnR,KAAKoQ,eAAenM,MAC7B,CASA,QAAAgU,CAAS7I,GACP,OAAOpP,KAAKqQ,gBAAgBjB,EAC9B,CAQA,YAAA8I,CAAa3G,GACX,MAAMmG,EAAgB1X,KAAKoQ,eAAemB,GAC1C,IAAKmG,EACH,MAAM,IAAI3V,MAAM,WAAWwP,eAE7B,OAAOmG,EAAc5H,WAAa,EACpC,CAUA,kBAAAqI,CACEhJ,EACAC,EACAC,SAEA,MAAMkB,UAAoB7B,EAAA1O,KAAKuQ,wCAAmBkB,IAChDpK,EAAO8H,EAAWC,EAASC,IAE7B,OAAKkB,GACIuG,EAGX,CAUA,mBAAAsB,CAAoB5C,GAClB,MAAMrC,EAAenT,KAAKsQ,cAAckF,EAAMrC,gBAC9C,IAAKA,EACH,MAAM,IAAIpR,MACR,yCAAyCyT,EAAMrC,kBAGnD,MAAO,CAAEpK,KAAMoK,EAAapK,KAAMkH,KAAMkD,EAAalD,KACvD,CAQA,oBAAAoI,CAAqB9G,GACnB,MAAM+G,EAAWtY,KAAKoQ,eAAemB,GACrC,IAAK+G,EACH,MAAO,GAET,MAAMzI,EAAkB,GACxB,IAAK,IAAIzN,EAAI,EAAGA,EAAIkW,EAASzI,OAAO5L,OAAQ7B,IAAK,CAC/C,MAAMgN,EAAUkJ,EAASzI,OAAOzN,GAC1BoT,EAAQxV,KAAKqQ,gBAAgBjB,GAC/BoG,GACF3F,EAAO1P,KAAKqV,EAEhB,CACA,OAAO3F,CACT,CAWA,mBAAA0I,CACEC,EACAC,EAAiC7B,IAEjC,MAAM8B,EAAkB,IAAIpH,IAGtBqH,EAAeF,IAAmB7B,GAExC,IAAK,MAAMgC,KAAcJ,EAAW,CAClC,MAAMF,EAAWtY,KAAKoQ,eAAewI,GACrC,GAAKN,EAEL,IAAK,IAAIlW,EAAI,EAAGA,EAAIkW,EAASzI,OAAO5L,OAAQ7B,IAAK,CAC/C,MAAMoT,EAAQxV,KAAKqQ,gBAAgBiI,EAASzI,OAAOzN,IACnD,IAAKoT,EAAO,SAEZ,GAAImD,EAAc,CAChB,MAAMxF,EAAenT,KAAKsQ,cAAckF,EAAMrC,gBAC9C,IAAKA,IAAiBsF,EAAeT,IAAI7E,EAAapK,MAAO,QAC/D,CAEA,MAAMoN,EAAkBX,EAAMnB,iBAAiBuE,GAAY,GACrDC,EAAyBH,EAAgBjH,IAAI+D,QACpB1O,IAA3B+R,EACE1C,EAAkB0C,GACpBH,EAAgBrQ,IAAImN,EAAOW,GAG7BuC,EAAgBrQ,IAAImN,EAAOW,EAE/B,CACF,CACA,OAAOuC,CACT,CASA,wBAAAI,CACEC,EACAC,SAEA,MAAM9C,EAAiB7O,EACrB0R,EAAa5J,UACb4J,EAAa3J,QACb2J,EAAa1J,WAET4J,EACwB,QAA5BvK,EAAA1O,KAAKwQ,+BAAuB,IAAA9B,OAAA,EAAAA,EAAE+C,IAAIyE,GACpC,IAAK+C,EACH,OAAO,EAET,IAAK,IAAI7W,EAAI,EAAGA,EAAI6W,EAAoBhV,OAAQ7B,IAAK,CACnD,MAAM8U,EAAW+B,EAAoB7W,GACrC,GACE8U,EAAS/H,YAAc6J,EAAW7J,WAClC+H,EAAS9H,UAAY4J,EAAW5J,SAChC8H,EAAS7H,YAAc2J,EAAW3J,UAElC,OAAO,CAEX,CACA,OAAO,CACT,CAiBA,sBAAA6J,CACE/J,EACAqG,EACA2D,EACAlF,EV/V6B,EUgW7BC,EACA6E,EACAK,EVhWmC,GUkWnC,MAAMhI,EAAUoE,EAAMtC,aAEtB,IAAK,IAAImG,EAAIF,EAAcE,GAAKnF,QAAAA,EAAc9C,GAAUiI,IAAK,CAE3D,GHpWuB,IGmWR7D,EAAM1B,eAAe3E,EAAWkK,GAE7C,SAEF,QAAqBvS,IAAjBiS,EACF,OAAOM,EAQT,GALqBrZ,KAAK8Y,yBAAyBC,EAAc,CAC/D5J,YACAC,QAASoG,EAAMjV,GACf8O,UAAWgK,IAGX,OAAOA,EAIT,GAFkB7D,EAAM7B,cAAcxE,EAAWkK,IAC5BpF,EAAQmF,EAE3B,OAAOC,CAEX,CAEF,CAUA,0BAAAC,CACEnK,EACAC,EACAC,SAEA,MAAMmB,UAA0B9B,EAAA1O,KAAKwQ,8CAAyBiB,IAC5DpK,EAAO8H,EAAWC,EAASC,IAE7B,OAAKmB,GACIsG,EAGX,QCtYWyC,GAMX,WAAAxZ,CAAYyZ,GACVxZ,KAAKiB,KAAOuY,EAAQC,UACpBzZ,KAAKkB,GAAKsY,EAAQE,QAClB1Z,KAAKsS,cAAgBkH,EAAQG,mBAC7B3Z,KAAK4Z,QAAUJ,EAAQK,YACzB,EAEON,GAAAO,QAAU,MAAA,WAAA/Z,GXmFgB,IAACga,EWjFhC/Z,KAAA0Z,QAAuB,IAAI7C,IAE3B7W,KAAA6Z,aAA6B,CAC3BG,aAAc,EACdhL,iBX6E8B+K,EW7EO,IX8EzCvb,KAAK+P,MAAMwL,EAAU,KW7EjBtB,eAAgB7B,GAqEpB,CA/DE,IAAA3V,CAAKA,GAEH,OADAjB,KAAKyZ,UAAYxY,EACVjB,IACT,CAMA,EAAAkB,CAAGA,GAED,OADAlB,KAAK0Z,QAAUxY,aAAc2V,IAAM3V,EAAK,IAAI2V,IAAI,CAAC3V,IAC1ClB,IACT,CAMA,aAAAsS,CAAcA,GAEZ,OADAtS,KAAK2Z,mBAAqBrH,EACnBtS,IACT,CAKA,YAAAga,CAAaA,GAEX,OADAha,KAAK6Z,aAAaG,aAAeA,EAC1Bha,IACT,CAMA,eAAAgP,CAAgBA,GAEd,OADAhP,KAAK6Z,aAAa7K,gBAAkBA,EAC7BhP,IACT,CAKA,cAAAyY,CAAeA,GAEb,OADAzY,KAAK6Z,aAAapB,eAAiBA,EAC5BzY,IACT,CASA,qBAAAia,CAAsBA,GAEpB,OADAja,KAAK6Z,aAAaI,sBAAwBA,EACnCja,IACT,CAEA,KAAAqB,GACE,OAAO,IAAIkY,GAAMvZ,KACnB,GA2CE,MAAOka,WAAmBX,GAM9B,WAAAxZ,CAAYyZ,GACVW,MAAMX,GACNxZ,KAAKoa,kBAAoBZ,EAAQa,uBACjCra,KAAKsa,aAAed,EAAQe,iBAC9B,EAEOL,GAAAJ,QAAU,cAAcP,GAAMO,QAApB,WAAA/Z,uBAEfC,KAAAua,kBAAuC,CACrCC,+BAA+B,EAuBnC,CAjBE,iBAAAJ,CAAkB9b,GAEhB,OADA0B,KAAKqa,uBAAyB/b,EACvB0B,IACT,CAMA,YAAAsa,CAAaV,GAEX,OADA5Z,KAAKua,kBAAiB7Z,OAAAyW,OAAAzW,OAAAyW,OAAA,CAAA,EAAQnX,KAAKua,mBAAsBX,GAClD5Z,IACT,CAEA,KAAAqB,GACE,OAAO,IAAI6Y,GAAWla,KACxB,SCrJS4N,GAGX,WAAA7N,CAAY0a,GACVza,KAAKya,KAAOA,CACd,CAQA,aAAAnI,GACE,IAAIoI,EZ7C+B,EY8CnC,IAAK,IAAItY,EAAI,EAAGA,EAAIpC,KAAKya,KAAKxW,OAAQ7B,IAAK,CAEzC,MAAMuY,EAAM3a,KAAKya,KAAKrY,GACtB,GAAI,kBAAmBuY,EACrB,OAAOA,EAAIrI,cAAgBoI,EAEzB,aAAcC,GAAOA,EAAI7b,WAC3B4b,GAAwBC,EAAI7b,SAEhC,CACA,MAAM,IAAIiD,MAAM,gCAClB,CAQA,WAAAsQ,GACE,IAAIuI,EZpEyB,EYqEzBC,EZnE+B,EYsEnC,IAAK,IAAIzY,EAAIpC,KAAKya,KAAKxW,OAAS,EAAG7B,GAAK,EAAGA,IAAK,CAE9C,MAAMuY,EAAM3a,KAAKya,KAAKrY,GAEtB,GAAI,gBAAiBuY,EAEnB,OADAC,EAAyBD,EAAItI,YACtBuI,EAAyBC,EACvB,oBAAqBF,GAAOA,EAAI3L,kBACzC6L,GAAqBF,EAAI3L,gBAE7B,CAEA,MAAM,IAAIjN,MAAM,gCAClB,CAOA,aAAA+Y,GACE,OAAyB,IAArB9a,KAAKya,KAAKxW,OZ3FqB,EY4F5BzF,KAAKuc,IAAI/a,KAAKqS,cAAgBrS,KAAKsS,gBAC5C,CAOA,QAAA3T,GACE,OAAOqB,KAAKya,KACT7Z,KAAI,CAAC+Z,EAAKK,KACT,MAAMC,EAAW,SAASN,EAAI1Z,KAAKgP,OAAO0K,EAAI1Z,KAAKia,SAAW,SAASP,EAAI1Z,KAAKia,YAAc,KACxFC,EAAS,OAAOR,EAAIzZ,GAAG+O,OAAO0K,EAAIzZ,GAAGga,SAAW,SAASP,EAAIzZ,GAAGga,YAAc,KAC9EE,EACJ,SAAUT,KAAS,UAAWA,GAC1B,aAAaA,EAAI5R,OAAO4R,EAAI3L,gBAAkB,4BAA4BnQ,EAAiB8b,EAAI3L,mBAAqB,KACpH,GACAqM,EACJ,aAAcV,EACV,oBAAoB9b,EAAiB8b,EAAI7b,YACzC,GACAwc,EACJ,UAAWX,GAAO,kBAAmBA,GAAO,gBAAiBA,EACzD,UAAUA,EAAInF,MAAMzM,QAAQ4R,EAAInF,MAAMvF,oBAAoB5R,EAAasc,EAAIrI,4BAA4BjU,EAAasc,EAAItI,eACxH,GAEN,MAAO,CACL,OAAO2I,EAAQ,KACf,KAAKC,IACL,KAAKE,IACLC,EAAkB,KAAKA,IAAoB,GAC3CC,EAAgB,KAAKA,IAAkB,GACvCC,EAAgB,KAAKA,IAAkB,IAEtCC,QAAQC,GAAyB,KAAhBA,EAAKC,SACtB1a,KAAK,KAAK,IAEdA,KAAK,KACV,EC9HF,MAAM2a,GAA4C,CAChD,UACA,gBACA,oBACA,+BAWIC,GACJC,IAEA,MAAM7S,EAAO2S,GAAqBE,GAClC,IAAK7S,EACH,MAAM,IAAIhH,MAAM,gCAAgC6Z,KAElD,OAAO7S,CAAI,QAGA8S,GAMX,WAAA9b,CACEyP,EACAsM,EACAC,EACAC,GAEAhc,KAAKwP,aAAeA,EACpBxP,KAAK8b,aAAeA,EACpB9b,KAAK+b,WAAaA,EAClB/b,KAAKgc,UAAYA,CACnB,CAWQ,kBAAAC,CAAmB/a,GACzB,MAAMgb,EACJhb,aAAc2V,IAAM3V,OAAY4F,IAAP5F,EAAmB,CAACA,GAAMlB,KAAKwP,aAEpD2M,EAAW,IAAItF,IACrB,IAAK,MAAMuF,KAAUF,EACnB,IAAK,MAAMG,KAAkBrc,KAAK+b,WAAWO,gBAAgBF,GAC3DD,EAASnF,IAAIqF,EAAe9b,IAGhC,OAAO4b,CACT,CAUA,uBAAAI,CACErb,SAEA,GAAIA,aAAc2V,IAAK,CACrB,MAAM/E,EAAU,IAAI+E,IACpB,IAAK,MAAM2F,KAAYtb,EAAI,CACzB,MAAMub,EAAQzc,KAAK+b,WAAWW,uBAAuBF,QACvC1V,IAAV2V,GAAqB3K,EAAQkF,IAAIyF,EAAMlc,GAC7C,CACA,OAAwB,IAAjBuR,EAAQ6K,UAAa7V,EAAY9G,KAAK4c,UAAU9K,EACzD,CACA,MAAMP,EAAmD,QAA1C7C,EAAA1O,KAAK+b,WAAWW,uBAAuBxb,UAAG,IAAAwN,OAAA,EAAAA,EAAEnO,GAC3D,YAAkBuG,IAAXyK,OAAuBzK,EAAY9G,KAAK4c,UAAUrL,EAC3D,CAWA,SAAAqL,CAAU1b,SACR,MAAM2b,EAAmB7c,KAAKic,mBAAmB/a,GAGjD,IAAI4b,EACAC,EACAC,EACJ,IAAK,MAAMjO,KAAe8N,EAAkB,CAC1C,MAAMI,EAAcjd,KAAK8b,aAAaoB,WAAWnO,QAE/BjI,IAAhBmW,SACwBnW,IAAvBiW,GACCE,EAAY3J,QAAUyJ,KAExBD,EAAqB/N,EACrBgO,EAAqBE,EAAY3J,QACjC0J,EAAmBC,EAAYE,UAEnC,CACA,QAA2BrW,IAAvBgW,QAAyDhW,IAArBkW,EACtC,OAIF,MAAMxH,EAAe,GACrB,IAEI4H,EAFAC,EAAcP,EACdvO,EAAQyO,EAGZ,KAAOzO,GAAS,GAAG,CACjB,MAAM5O,EAAqC,QAA9B+O,EAAA1O,KAAK8b,aAAawB,MAAM/O,UAAM,IAAAG,OAAA,EAAAA,EAAG2O,GAC9C,IAAK1d,EAAM,CACT,GAAc,IAAV4O,EAAa,MACjB,MAAM,IAAIxM,MACR,4BAA4Bsb,cAAwB9O,IAExD,CACA,IAAIoM,EACJ,GAAI,YAAahb,EAAM,CAErB,IAAI4d,EACAC,EACJ,GAAK7d,EAAK8d,eAGH,CACL,IAAIC,EAA2B/d,EAC/B,MAAMge,EAA8B,CAACD,GACrC,KAAOA,EAAYD,gBACjBE,EAAaxd,KAAKud,EAAYD,gBAC9BC,EAAcA,EAAYD,eAE5BF,EAAeG,EACfF,EAAaxd,KAAK4d,gBAAgBD,EACpC,MAXEJ,EAAe5d,EACf6d,EAAaxd,KAAK4d,gBAAgB,CAACje,IAWrCgb,EAAM6C,EAOJJ,GACApd,KAAKgc,UAAUlD,yBACb,CACE3J,UAAWoO,EAAaM,gBACxBzO,QAASmO,EAAanO,QACtBC,UAAWkO,EAAalO,WAE1B,CACEF,UAAWiO,EAAoBjO,UAC/BC,QAASgO,EAAoBhO,QAC7BC,UAAW+N,EAAoB/N,aAInCmG,EAAMrV,KACJH,KAAK8d,2BAA2BP,EAAcH,IAGlDA,EAAsBG,CACxB,MAAO,GAAI,SAAU5d,EACnBgb,EAAM3a,KAAK+d,iBAAiBpe,GAC5Byd,OAAsBtW,MACjB,MAAI,aAAcnH,GAIvB,MAHAgb,EAAM3a,KAAKge,eAAere,GAC1Byd,OAAsBtW,CAGxB,CACA0O,EAAMrV,KAAKwa,GACX0C,EAAc1C,EAAI1Z,KAAKV,GACnB,YAAaZ,IACf4O,GAAS,EAEb,CACA,OAAO,IAAIX,GAAM4H,EAAMyI,UACzB,CAWQ,eAAAL,CAAgBM,GACtB,GAAqB,IAAjBA,EAAMja,OACR,MAAM,IAAIlC,MAAM,6CAGlB,MAAMoc,EAAYD,EAAMA,EAAMja,OAAS,GAEjCma,EAAWF,EAAM,GAEjBG,EAAare,KAAKgc,UAAU/D,SAASkG,EAAU/O,SAE/CkP,EAAYte,KAAKgc,UAAU/D,SAASmG,EAAShP,SACnD,MAAO,CAELnO,KAAMjB,KAAK+b,WAAWwC,aACpBF,EAAW9M,OAAO4M,EAAUhP,YAG9BjO,GAAIlB,KAAK+b,WAAWwC,aAClBD,EAAU/M,OAAO6M,EAASP,kBAG5BrI,MAAOxV,KAAKgc,UAAU5D,oBAAoBiG,GAC1C/L,cAAe+L,EAAW1K,cACxBwK,EAAUhP,UACVgP,EAAU9O,WAEZgD,YAAa+L,EAAS9K,QACtBX,WAAYgJ,GACV0C,EAAWvK,eAAeqK,EAAUhP,UAAWgP,EAAU9O,YAE3DwD,YAAa8I,GACX2C,EAAUvK,cAAcqK,EAASP,gBAAiBO,EAAS/O,YAGjE,CAQQ,gBAAA0O,CAAiBpe,GACvB,MAAO,CAELsB,KAAMjB,KAAK+b,WAAWwC,aAAa5e,EAAKsB,MAExCC,GAAIlB,KAAK+b,WAAWwC,aAAa5e,EAAKuB,IACtC8N,gBAAiBrP,EAAKqP,gBACtBjG,KAAMpJ,EAAKoJ,KAEf,CAQQ,cAAAiV,CAAere,GACrB,MAAO,CAELsB,KAAMjB,KAAK+b,WAAWwC,aAAa5e,EAAKsB,MAExCC,GAAIlB,KAAK+b,WAAWwC,aAAa5e,EAAKuB,IACtCpC,SAAUa,EAAKb,SAEnB,CASQ,0BAAAgf,CACNU,EACAC,GAGA,MAAMC,EAAY1e,KAAKgc,UAAU/D,SAASuG,EAASpP,SAE7CuP,EAAU3e,KAAKgc,UAAU/D,SAASwG,EAAOrP,SACzCwP,EAAaF,EAAUnN,OAAOiN,EAASX,iBACvCgB,EAAWF,EAAQpN,OAAOkN,EAAOtP,WAEvC,MAAO,CAELlO,KAAMjB,KAAK+b,WAAWwC,aAAaK,GAEnC1d,GAAIlB,KAAK+b,WAAWwC,aAAaM,GACjC9V,KAAM,aAEV,CAUA,SAAAqK,CAAUpB,EAAcgI,WACtB,MAAMsC,EAAkBtc,KAAK+b,WAAWO,gBAAgBtK,GACxD,IAAI8M,EAEJ,IAAK,MAAMzC,KAAkBC,EAAiB,CAC5C,IAAIjK,EACJ,QACmBvL,IAAjBkT,IAC+C,QAA/CtL,EAAA1O,KAAK8b,aAAaoB,WAAWb,EAAe9b,WAAG,IAAAmO,OAAA,EAAAA,EAAEyO,aAC/CnD,EAAe,EAEjB3H,EAAcrS,KAAK8b,aAAaoB,WAAWb,EAAe9b,SAI1D,IAAK,IAAI6B,EAAI4X,EAAe,EAAG5X,GAAK,EAAGA,IAAK,CAC1C,MAAM2c,EAAwC,QAA1BpQ,EAAA3O,KAAK8b,aAAawB,MAAMlb,UAAE,IAAAuM,OAAA,EAAAA,EAAG0N,EAAe9b,IAChE,QAAoBuG,IAAhBiY,EAA2B,CAC7B1M,EAAc,CACZiB,QAASyL,EAAYzL,QACrB6J,UAAW/a,GAEb,KACF,CACF,MAEkB0E,IAAhBuL,SAEoBvL,IAApBgY,GACAzM,EAAYiB,QAAUwL,EAAgBxL,WAEtCwL,EAAkBzM,EAGxB,CAEA,OAAOyM,CACT,QCvVWE,GAIX,WAAAjf,CAAYic,EAAsBD,GAChC/b,KAAKgc,UAAYA,EACjBhc,KAAK+b,WAAaA,CACpB,CAYA,kBAAAkD,CACEC,EACAC,SAEA,MAAMC,EAAoBpf,KAAK+b,WAC5BO,gBAAgB4C,GAChBte,KAAKoR,GAASA,EAAKzR,KAEhB8e,EAAc,IAAI/N,IACxB,IAAK,MAAM/B,KAAU6P,EAAmB,CACtC,MAAME,EAAiBD,EAAY5N,IAAIlC,SAChBzI,IAAnBwY,GAAgCA,EAAexgB,SAAW,IAC5DugB,EAAYhX,IAAIkH,EAAQ,CACtBqP,WAAYrP,EACZsP,SAAUtP,EACVzQ,SAAU,IAGd,IAAK,MAAMoY,KAAYlX,KAAKgc,UAAU9D,aAAa3I,GACjD,GAAsB,0BAAlB2H,EAASnO,KAAkC,CAC7C,MAAMjK,EAAmC,QAAxB4P,EAAAwI,EAASlI,uBAAe,IAAAN,EAAAA,EAAIyQ,EACvCG,EAAiBD,EAAY5N,IAAIyF,EAASnI,mBAG3BjI,IAAnBwY,GACCA,EAAexgB,UAAYA,EAAWwgB,EAAexgB,WAEtDugB,EAAYhX,IAAI6O,EAASnI,YAAa,CACpC6P,WAAYrP,EACZsP,SAAU3H,EAASnI,YACnBjQ,YAGN,CAEJ,CACA,OAAO2Q,MAAMxO,KAAKoe,EAAYE,SAChC,CAkBA,qBAAAC,CACEH,EACApe,EACAC,GAGA,MAAMue,EAAU,IAAInO,IAEpB,IAAK,MAAMoO,KAAQL,EAAa,CAC9B,MAAMR,SAAEA,GAAaa,EAIfC,EAAa1e,EAAOye,EAAK5gB,SACzB8gB,EAAW1e,EAAKwe,EAAK5gB,SAC3B,IAAK,MAAM0W,KAASxV,KAAKgc,UAAU3D,qBAAqBwG,GACtD,IAAK,MAAM1P,KAAaqG,EAAMnB,iBAAiBwK,GAAW,CACxD,IAAIxP,EAAYmG,EAAMxB,iBAAiB7E,EAAWwQ,GAClD,QAAkB7Y,IAAduI,EAAyB,SAC7B,MAAM+B,EAAUoE,EAAMtC,aACtB,KAAO7D,EAAY+B,GAAS,CAC1B,MAAMyO,EAAMrK,EAAM7B,cAAcxE,EAAWE,GAC3C,GAAIwQ,EAAMD,EAAU,MACpB,GPvGiB,IOuGbpK,EAAM1B,eAAe3E,EAAWE,GAA8B,CAChE,MAAMgK,EAAIwG,EAAMH,EAAK5gB,SACrB,IAAIghB,EAAQL,EAAQhO,IAAI4H,QACVvS,IAAVgZ,GACFL,EAAQpX,IAAIgR,EAAIyG,EAAQ,IAAIjJ,KAE9BiJ,EAAM9I,IAAI0I,EACZ,CACArQ,GACF,CACF,CAEJ,CAEA,GAAqB,IAAjBoQ,EAAQ9C,KAAY,MAAO,GAK/B,OAFelN,MAAMxO,KAAKwe,EAAQ9e,WAAWof,MAAK,EAAEC,IAAKte,KAAOA,EAAIse,IAEtDpf,KAAI,EAAEqf,EAASH,MAAM,CACjCG,UACAxF,KAAMhL,MAAMxO,KAAK6e,MAErB,EClIK,MAAMI,GAAuB,YAuCvBC,GA+CX,WAAApgB,CACEuS,EACA9C,EACA6P,EACAlO,EACAiP,EAAoB,GAddpgB,KAAAqgB,iBAAyBH,GAOhBlgB,KAAAsgB,aAAyB,GASxCtgB,KAAKwP,aAAeA,EACpBxP,KAAKugB,eAAiB,IAAI1J,IAAIrH,GAC9BxP,KAAKwgB,qBAAuB,IAAIrO,YAAYhB,GAASsP,KAAKP,IAC1DlgB,KAAK0gB,oBAAsB,IAAIxY,WAAWiJ,GAC1CnR,KAAK2gB,QAAU,GACf3gB,KAAKsd,MAAQ,CAAC,IAAI7N,MAA+B0B,IACjD,IAAK,IAAIyP,EAAI,EAAGA,GAAKR,EAAWQ,IAC9B5gB,KAAKsd,MAAMnd,KAAK,IAAIsP,MAA+B0B,IAErDnR,KAAK6gB,gBAAgBvO,EAAe+M,EACtC,CASQ,eAAAwB,CAAgBZ,EAAeZ,GACrC,MAAMyB,EAAgB,IAAIjK,IAC1B,IAAK,MAAMkK,KAAU1B,EAAa,CAChC,MAAM/L,EAAU2M,EAAUc,EAAOjiB,SAC3Ba,EACgB,IAApBohB,EAAOjiB,SACH,CAAEyS,OAAQwP,EAAOnC,WAAYtL,QAAS2M,GACtC,CACE3M,UACArS,KAAM8f,EAAOnC,WACb1d,GAAI6f,EAAOlC,SACX/f,SAAUiiB,EAAOjiB,UAEnBkT,EAAO+O,EAAOlC,SAChBvL,EAAUtT,KAAKwgB,qBAAqBxO,KACtChS,KAAKwgB,qBAAqBxO,GAAQsB,EAClCtT,KAAKsd,MAAM,GAAItL,GAAQrS,GAEzBmhB,EAAc9J,IAAIhF,EACpB,CACA,IAAK,MAAMA,KAAQ8O,EACjB9gB,KAAKsgB,aAAangB,KAAK6R,GAEzBhS,KAAK2gB,QAAUlR,MAAMxO,KAAK6f,GAC1B,IAAK,IAAI1e,EAAI,EAAGA,EAAIpC,KAAKwP,aAAavL,OAAQ7B,IAAK,CACjD,MAAMiX,EAAIrZ,KAAKwgB,qBAAqBxgB,KAAKwP,aAAapN,IAClDiX,EAAIrZ,KAAKqgB,mBAAkBrgB,KAAKqgB,iBAAmBhH,EACzD,CACF,CAGA,WAAIlI,GACF,OAAOnR,KAAKwgB,qBAAqBvc,MACnC,CAMA,WAAAoO,CAAYL,GACV,OAAOhS,KAAKwgB,qBAAqBxO,EACnC,CAMA,mBAAIgP,GACF,OAAOhhB,KAAKqgB,gBACd,CAMA,gBAAAY,CAAiBC,EAAgBlP,GAC/B,OAAOhS,KAAKqS,YAAYL,EAC1B,CAIA,SAAAmP,CAAUD,GAAuB,CASjC,aAAAE,CAAcpP,EAAc1T,EAAYqc,GACtC3a,KAAKsgB,aAAangB,KAAK6R,GACvBhS,KAAKwgB,qBAAqBxO,GAAQ1T,EAClC0B,KAAK0gB,oBAAoB1O,GAAQ2I,EAC7B3a,KAAKugB,eAAevI,IAAIhG,IAAS1T,EAAO0B,KAAKqgB,mBAC/CrgB,KAAKqgB,iBAAmB/hB,EAE5B,CAeA,QAAA+iB,CAASpB,EAAeZ,GACtB,IAAK,MAAMrN,KAAQhS,KAAKsgB,aAAc,CACpCtgB,KAAKwgB,qBAAqBxO,GAAQkO,GAClClgB,KAAK0gB,oBAAoB1O,GAAQ,EACjC,IAAK,IAAI4O,EAAI,EAAGA,EAAI5gB,KAAKsd,MAAMrZ,OAAQ2c,IACrC5gB,KAAKsd,MAAMsD,GAAI5O,QAAQlL,CAE3B,CACA9G,KAAKsgB,aAAarc,OAAS,EAC3BjE,KAAKqgB,iBAAmBH,GACxBlgB,KAAK6gB,gBAAgBZ,EAASZ,EAChC,CAeA,SAACiC,GACC,IAAK,IAAItP,EAAO,EAAGA,EAAOhS,KAAKwgB,qBAAqBvc,OAAQ+N,IAAQ,CAClE,MAAM1T,EAAO0B,KAAKwgB,qBAAqBxO,GACnC1T,EAAO4hB,UACH,CACJlO,OACAsB,QAAShV,EACT6e,UAAWnd,KAAK0gB,oBAAoB1O,IAG1C,CACF,CAQA,+BAAAuP,GACE,OAAOvhB,KAAKqgB,gBACd,CAMA,UAAAnD,CAAWlL,GACT,MAAM1T,EAAO0B,KAAKwgB,qBAAqBxO,GACvC,KAAI1T,GAAQ4hB,IACZ,MAAO,CAAE5M,QAAShV,EAAM6e,UAAWnd,KAAK0gB,oBAAoB1O,GAC9D,CAMA,aAAAwP,CAAcxP,GACZ,OAAOhS,KAAKugB,eAAevI,IAAIhG,EACjC,CAmBA,mBAAOyP,EAAatQ,QAClBA,EAAOwP,QACPA,EAAU,GAAEnR,aACZA,EAAe,GAAE8R,SACjBA,EAAW,GAAEhE,MACbA,EAAQ,KAQR,MAAMoE,EAAQ,IAAIvB,GAChB,EACA3Q,EACAmR,EAAQ/f,KAAKoR,IAAI,CACf4M,WAAY5M,EACZ6M,SAAU7M,EACVlT,SAAU,MAEZqS,GAKIqP,EAAuB,IAAIrO,YAAYhB,GAASsP,KAAKP,IACrDQ,EAAsB,IAAIxY,WAAWiJ,GAC3C,IAAK,MAAOa,EAAM1T,EAAMqc,KAAQ2G,EAC9Bd,EAAqBxO,GAAQ1T,EAC7BoiB,EAAoB1O,GAAQ2I,EAE9B+G,EAAMlB,qBAAuBA,EAC7BkB,EAAMhB,oBAAsBA,EAI5BgB,EAAMrB,iBAAmBH,GACzB,IAAK,MAAMyB,KAAQnS,EAAc,CAC/B,MAAM6J,EAAImH,EAAqBmB,QACrB7a,IAANuS,GAAmBA,EAAIqI,EAAMrB,mBAC/BqB,EAAMrB,iBAAmBhH,EAC7B,CAIA,MAAMuI,EAActE,EAAM1c,KAAK2N,IAC7B,MAAMuC,EAAM,IAAIrB,MAA+B0B,GAC/C,IAAK,MAAOa,EAAMrS,KAAS4O,EACzBuC,EAAIkB,GAAQrS,EAEd,OAAOmR,CAAG,IAIZ,OAFA4Q,EAAMpE,MAAMuE,OAAO,EAAGH,EAAMpE,MAAMrZ,UAAW2d,GAEtCF,CACT,QC5VWI,GAMX,WAAA/hB,CACEic,EACAD,EACAgG,EACAC,GAEAhiB,KAAKgc,UAAYA,EACjBhc,KAAK+b,WAAaA,EAClB/b,KAAK+hB,aAAeA,EACpB/hB,KAAKgiB,OAASA,CAChB,CASA,KAAAxM,CAAMyM,GACJ,MAAMC,EAAaliB,KAAK+hB,aAAa9C,mBACnCgD,EAAMhhB,KACNghB,EAAMrI,QAAQ5K,iBAGVQ,EAAeC,MAAMxO,KAAKghB,EAAM/gB,IACnCihB,SAASpT,GAAgB/O,KAAK+b,WAAWO,gBAAgBvN,KACzDnO,KAAKmO,GAAgBA,EAAYxO,KAE9Bub,EAAe,IAAIqE,GACvB8B,EAAM3P,cACN9C,EACA0S,EACAliB,KAAKgc,UAAU7K,UACf8Q,EAAMrI,QAAQI,aAAe,GAI/B,OADAha,KAAKgiB,OAAOI,IAAIH,EAAMrI,QAASkC,GACxB,IAAID,GACT,IAAIhF,IAAIrH,GACRsM,EACA9b,KAAK+b,WACL/b,KAAKgc,UAET,QCFWqG,GAIX,WAAAtiB,CAAYuiB,EAAmB9S,GAC7BxP,KAAKuiB,MAAQD,EACbtiB,KAAKwiB,cAAgBhT,CACvB,CAGA,gBAAIA,GACF,OAAOxP,KAAKwiB,aACd,CAEQ,gBAAAC,CAAiBvhB,GACvB,OAAIA,aAAc2V,IAAY,IAAIA,IAAI3V,QAC3B4F,IAAP5F,EAAyB,IAAI2V,IAAI,CAAC3V,IAC/B,IAAI2V,IAAI7W,KAAKwiB,cACtB,CAaA,SAAAE,GACE,MAAM7S,EAAkB,GACxB,IAAK,MAAMxL,OAAEA,KAAYrE,KAAKuiB,MAAO,CACnC,MAAM/M,EAAQnR,EAAOuY,iBACP9V,IAAV0O,GAAqB3F,EAAO1P,KAAKqV,EACvC,CACA,OAAO3F,EAAOoO,SAChB,CAkBA,SAAArB,CAAU1b,GACR,MAAMyhB,EAAc3iB,KAAKyiB,iBAAiBvhB,GAE1C,IAAI0hB,EACAC,EAEJ,IAAK,MAAMT,KAAOpiB,KAAKuiB,MACrB,IAAK,MAAMhR,KAAUoR,EAAa,CAChC,MAAMrP,EAAU8O,EAAI/d,OAAO+O,UAAU7B,QACrBzK,IAAZwM,UACgBxM,IAAhB+b,GAA6BvP,EAAQA,QAAUuP,KACjDA,EAAcvP,EAAQA,QACtBsP,EAAUR,GAEd,CAGF,OAAOQ,aAAO,EAAPA,EAASve,OAAOuY,UAAU+F,EACnC,CAmBA,oBAAAG,CAAqB5hB,GACnB,MAAMyhB,EAAc3iB,KAAKyiB,iBAAiBvhB,GAC1C,IAAK,MAAMmD,OAAEA,KAAYrE,KAAKuiB,MAAO,CACnC,MAAM/M,EAAQnR,EAAOuY,UAAU+F,GAC/B,QAAc7b,IAAV0O,EAAqB,OAAOA,CAClC,CAEF,CAmBA,YAAAuN,CAAa7hB,GACX,MAAMyhB,EAAc3iB,KAAKyiB,iBAAiBvhB,GAE1C,IAAI8hB,EACAC,EAAmBC,IAEvB,IAAK,MAAMd,KAAOpiB,KAAKuiB,MACrB,IAAK,MAAMhR,KAAUoR,EAAa,CAChC,MAAMrP,EAAU8O,EAAI/d,OAAO+O,UAAU7B,GACrC,QAAgBzK,IAAZwM,EAAuB,SAC3B,MAAMxU,EAAWwU,EAAQA,QAAU8O,EAAI9P,cACnCxT,EAAWmkB,IACbA,EAAmBnkB,EACnBkkB,EAAaZ,EAEjB,CAGF,OAAOY,aAAU,EAAVA,EAAY3e,OAAOuY,UAAU+F,EACtC,CAGA,QAAIhG,GACF,OAAO3c,KAAKuiB,MAAMte,MACpB,CAcA,iBAAAkf,CAAkBnR,EAAcgI,GAC9B,IAAIoJ,EACJ,IAAK,MAAM/e,OAAEA,KAAYrE,KAAKuiB,MAAO,CACnC,MAAMjP,EAAUjP,EAAO+O,UAAUpB,EAAMgI,QAEzBlT,IAAZwM,SACUxM,IAATsc,GAAsB9P,EAAQA,QAAU8P,EAAK9P,WAE9C8P,EAAO9P,EAEX,CACA,OAAO8P,CACT,CAoBA,kBAAAC,CACErR,EACAgI,GAEA,IAAIsJ,EACJ,IAAK,MAAMhR,cAAEA,EAAajO,OAAEA,KAAYrE,KAAKuiB,MAAO,CAClD,MAAMjP,EAAUjP,EAAO+O,UAAUpB,EAAMgI,GACvC,QAAgBlT,IAAZwM,EAAuB,SAC3B,MAAMxU,EAAWwU,EAAQA,QAAUhB,QAClBxL,IAAbwc,GAA0BxkB,EAAWwkB,EAASxkB,YAChDwkB,EAAQ5iB,OAAAyW,OAAAzW,OAAAyW,OAAA,CAAA,EAAQ7D,GAAO,CAAExU,aAE7B,CACA,OAAOwkB,CACT,CAMA,oBAAAC,GACE,MAAMC,EAAY,IAAIlS,IACtB,IAAK,MAAMgB,cAAEA,EAAajO,OAAEA,KAAYrE,KAAKuiB,MAC3C,IAAK,MAAMvQ,KACTA,EAAIsB,QACJA,EAAO6J,UACPA,KACG9Y,EAAOyX,aAAawF,WAAY,CACnC,MAAMxiB,EAAWwU,EAAUhB,EACrBmR,EAAWD,EAAU/R,IAAIO,SACdlL,IAAb2c,GAA0B3kB,EAAW2kB,EAAS3kB,WAChD0kB,EAAUnb,IAAI2J,EAAM,CAAEsB,UAAS6J,YAAWre,YAE9C,CAEF,OAAO0kB,CACT,CAMA,mBAAAE,GACE,MAAMpC,EAAW,IAAIhQ,IACrB,IAAK,MAAMjN,OAAEA,KAAYrE,KAAKuiB,MAC5B,IAAK,MAAMvQ,KACTA,EAAIsB,QACJA,EAAO6J,UACPA,KACG9Y,EAAOyX,aAAawF,WAAY,CACnC,MAAMmC,EAAWnC,EAAS7P,IAAIO,SACblL,IAAb2c,GAA0BnQ,EAAUmQ,EAASnQ,UAC/CgO,EAASjZ,IAAI2J,EAAM,CAAEsB,UAAS6J,aAElC,CAEF,OAAOmE,CACT,CAMA,CAAC3a,OAAOgd,YACN,OAAO3jB,KAAKuiB,MAAM5b,OAAOgd,WAC3B,QCpSWC,GAsCX,WAAA7jB,CAAYqgB,EAAmBjP,EAAiB0S,GAnBxC7jB,KAAAqgB,iBAAyBH,GAoB/BlgB,KAAK6jB,gBAAkBA,EAEvB7jB,KAAK8jB,YAAcrU,MAAMxO,KAAK,CAAEgD,OAAQmc,EAAY,IAAK,IACvD,IAAIjO,YAAYhB,GAASsP,KAAKP,MAEhClgB,KAAK+jB,eAAiBtU,MAAMxO,KAAK,CAAEgD,OAAQmc,EAAY,IAAK,IAAM,IACpE,CAQA,aAAA4D,CAAclI,GACZ9b,KAAKikB,WAAanI,EAGlB,MAAMoI,EAASpI,EAAawB,MAAM,GAClC,IAAK,MAAMtL,KAAQ8J,EAAa6E,QAAS,CACvC,MAAMhhB,EAAOukB,EAAOlS,GACfrS,GACLK,KAAKohB,cAAcpP,EAAMrS,EAAK2T,QAAS,EACzC,CACF,CAEA,WAAIqN,GACF,OAAO3gB,KAAKikB,WAAWtD,OACzB,CAEA,SAAIrD,GACF,OAAOtd,KAAKikB,WAAW3G,KACzB,CAEA,WAAAjL,CAAYL,GACV,OAAOhS,KAAKikB,WAAW5R,YAAYL,EACrC,CAMA,gBAAAiP,CAAiB1S,EAAeyD,GAC9B,OAAOhS,KAAK8jB,YAAYvV,GAAQyD,EAClC,CAMA,mBAAIgP,GACF,OAAOhhB,KAAKqgB,gBACd,CAEA,aAAAmB,CAAcxP,GACZ,OAAOhS,KAAKikB,WAAWzC,cAAcxP,EACvC,CAGA,aAAAoP,CAAcpP,EAAc1T,EAAYiQ,GACtC,MAAM4V,EAAoBnkB,KAAKikB,WAAW/G,WAAWlL,SAE7BlL,IAAtBqd,GACA7lB,EAAO6lB,EAAkB7Q,SACxBhV,IAAS6lB,EAAkB7Q,SAC1B/E,EAAQ4V,EAAkBhH,YAG5Bnd,KAAKikB,WAAW7C,cAAcpP,EAAM1T,EAAMiQ,GAGxCjQ,EAAO0B,KAAK8jB,YAAYvV,GAAQyD,KAClChS,KAAK8jB,YAAYvV,GAAQyD,GAAQ1T,EACjC0B,KAAK+jB,eAAexV,GAAQpO,KAAK6R,GAC7BhS,KAAKikB,WAAWzC,cAAcxP,IAAS1T,EAAO0B,KAAKqgB,mBACrDrgB,KAAKqgB,iBAAmB/hB,GAG9B,CAUA,SAAA6iB,CAAU5S,GACR,MAAM6V,EAAUpkB,KAAK+jB,eAAexV,EAAQ,GAC5C,GAAuB,IAAnB6V,EAAQngB,OAAc,OAE1B,MAAMuE,EAAOxI,KAAK8jB,YAAYvV,EAAQ,GAChC8V,EAAOrkB,KAAK8jB,YAAYvV,GAC9B,IAAK,IAAInM,EAAI,EAAGA,EAAIgiB,EAAQngB,OAAQ7B,IAAK,CACvC,MAAM4P,EAAOoS,EAAQhiB,GACjBoG,EAAKwJ,GAASqS,EAAKrS,KACrBqS,EAAKrS,GAAQxJ,EAAKwJ,GAEtB,CACAoS,EAAQngB,OAAS,CACnB,QClJWqgB,GAMX,WAAAvkB,CACEic,EACAD,EACAgG,EACAC,GAEAhiB,KAAKgc,UAAYA,EACjBhc,KAAK+b,WAAaA,EAClB/b,KAAK+hB,aAAeA,EACpB/hB,KAAKgiB,OAASA,CAChB,CAYA,UAAAuC,CAAWtC,WACT,MAAQ3P,cAAekS,EAAUpK,kBAAmBqK,GAAWxC,EAEzDzS,EAAeC,MAAMxO,KAAKghB,EAAM/gB,IACnCihB,SAASpT,GAAgB/O,KAAK+b,WAAWO,gBAAgBvN,KACzDnO,KAAKmO,GAAgBA,EAAYxO,KAE9BmkB,EAAyC,IAAxBlV,EAAavL,OAE9Bie,EAAaliB,KAAK+hB,aAAa9C,mBACnCgD,EAAMhhB,KACNghB,EAAMrI,QAAQ5K,iBAGV2V,EAAiB3kB,KAAK+hB,aAAavC,sBACvC0C,EACAsC,EACAC,GAEF,GAA8B,IAA1BE,EAAe1gB,OACjB,OAAO,IAAIoe,GAAY,GAAI,IAAIxL,IAAIrH,IAGrC,MAAM4Q,EAAY6B,EAAMrI,QAAQI,aAAe,EAEzC4K,EAAa,IAAIhB,GACrBxD,EACApgB,KAAKgc,UAAU7K,UACfsT,GAGII,EAA0B,GAE1BC,EAAiB,IAAIxT,IAC3B,IAAK,MAAMqQ,KAAQnS,EACjBsV,EAAezc,IAAIsZ,EAAMzB,IAG3B,MAAM6E,EAAe,IAAIlO,IACvBqL,EACGthB,KAAK+Z,GAAQA,EAAIkE,WACjBtD,QAAQhb,GAAOiP,EAAawV,SAASzkB,MAEpC0kB,EAAqB,IAAIpO,IAE/B,IAAIiF,EAAoC,KAExC,GAAImG,EAAM3H,aAAaE,gCACrBsB,EAAe,IAAIqE,GACjBsE,EAAS,EACTjV,EACA0S,EACAliB,KAAKgc,UAAU7K,UACfiP,GAEFwE,EAAWZ,cAAclI,GACzB9b,KAAKgiB,OAAOI,mCAELH,EAAMrI,SAAO,CAChBK,2BAAuBnT,IAEzB8d,IAEGF,GACH,IAAK,MAAM/C,KAAQnS,EAAc,CAC/B,MAAM6J,EAAIyC,EAAazJ,YAAYsP,GAC/BtI,GAA6B,QAAxB3K,EAAAoW,EAAerT,IAAIkQ,UAAK,IAAAjT,EAAAA,EAAIwR,KACnC4E,EAAezc,IAAIsZ,EAAMtI,EAC7B,CAIJ,IAAK,MAAM4G,QAAEA,EAAOxF,KAAEA,KAAUkK,EAAgB,CAC9C,IAAKD,GAAkBO,EAAmBtI,OAASnN,EAAavL,OAC9D,MAGmB,OAAjB6X,EACFA,EAAe,IAAIqE,GACjBF,EACAzQ,EACAiL,EACAza,KAAKgc,UAAU7K,UACfiP,GAGFtE,EAAauF,SAASpB,EAASxF,GAEjCmK,EAAWZ,cAAclI,GACzB9b,KAAKgiB,OAAOI,mCAELH,EAAMrI,SAAO,CAChBK,sBAAuB,IAEzB2K,GAGF,IAAIM,EAAkBR,EACtB,IAAKA,EACH,IAAK,MAAM/C,KAAQnS,EAAc,CAC/B,MAAM8D,EAAUwI,EAAazJ,YAAYsP,GACrCrO,IAAoC,QAAxB3E,EAAAmW,EAAerT,IAAIkQ,UAAK,IAAAhT,EAAAA,EAAIuR,MAIxC6E,EAAa/M,IAAI2J,IAASsD,EAAmBjN,IAAI2J,GACnDmD,EAAezc,IAAIsZ,EAAMrO,IAI3BwR,EAAezc,IAAIsZ,EAAMrO,GACrByR,EAAa/M,IAAI2J,IACnBsD,EAAmBjO,IAAI2K,GAEzBuD,GAAkB,GACpB,CAGEA,IACFL,EAAW1kB,KAAK,CACdmS,cAAe2N,EACf5b,OAAQ,IAAIwX,GACV,IAAIhF,IAAIrH,GACRsM,EACA9b,KAAK+b,WACL/b,KAAKgc,aAGTF,EAAe,KAEnB,CAEA,OAAO,IAAIuG,GAAYwC,EAAY,IAAIhO,IAAIrH,GAC7C,QC5GW2V,GAGX,WAAAplB,CAAYic,GACVhc,KAAKgc,UAAYA,CACnB,CAEA,GAAAoG,CAAIxI,EAAuB8H,GACzB,MAAM0D,EAAc,IAAIvO,IAAY6K,EAAMf,SAE1C,IAAK,IAAIpS,EAAQ,EAAGA,GAASqL,EAAQI,aAAe,EAAGzL,IAAS,CAC9DmT,EAAMP,UAAU5S,GAEhB,MAAM8W,EAAsB3D,EAAMpE,MAAM/O,GAClCmK,EAAkB1Y,KAAKgc,UAAUzD,oBACrC6M,EACAxL,EAAQnB,gBAEV2M,EAAYE,QAEZ,IAAK,MAAO9P,EAAO+P,KAAmB7M,EACpC,IAAK,MAAM1G,KAAQhS,KAAKwlB,UACtBhQ,EACA+P,EACAhX,EACAmT,EACA9H,GAEAwL,EAAYpO,IAAIhF,GAIpB,IAAIyT,EAAgBzlB,KAAK0lB,sBACvBN,EACAC,GAEF,MAAMM,EAAyB,IAAI9O,IACnC,KAAO4O,EAAcxhB,OAAS,GAAG,CAC/B0hB,EAAuBL,QACvB,IAAK,MAAM9lB,KAAgBimB,EAAe,CACxC,MAAMjQ,EAAQxV,KAAKgc,UAAU/D,SAASzY,EAAa4P,SACnD,IAAK,MAAM4C,KAAQhS,KAAK4lB,sBACtBpQ,EACAhW,EAAa2P,UACbZ,EACAmT,EACAliB,GAEAmmB,EAAuB3O,IAAIhF,GAC3BoT,EAAYpO,IAAIhF,EAEpB,CACAyT,EAAgBzlB,KAAK0lB,sBACnBC,EACAN,EAEJ,CAEA,IAAK,MAAMrT,KAAQhS,KAAK6lB,kBACtBjM,EACArL,EACA6W,EACA1D,GAEA0D,EAAYpO,IAAIhF,GAGlB,GAAyB,IAArBoT,EAAYzI,KAAY,KAC9B,CACF,CAQQ,qBAAA+I,CACNN,EACAC,GAEA,MAAMI,EAAoC,GAC1C,IAAK,MAAMlU,KAAU6T,EAAa,CAChC,MAAM9R,EAAU+R,EAAoB9T,GACpC,IAAK+B,KAAa,YAAaA,GAAU,SAEzC,MAAMwS,EAAkB9lB,KAAKgc,UAAU7D,mBACrC7E,EAAQuK,gBACRvK,EAAQlE,QACRkE,EAAQjE,WAEV,IAAK,MAAM6C,KAAQ4T,EACjBL,EAActlB,KAAK,CACjBiP,QAAS8C,EAAK9C,QACdD,UAAW+C,EAAK/C,UAChBE,UAAW6C,EAAK7C,UAChB0W,aAAczS,GAGpB,CACA,OAAOmS,CACT,CAeQ,qBAAAG,CACNpQ,EACA+P,EACAhX,EACAmT,EACAsE,GAEA,MAAMC,EAAmB,IAAIpP,IACvBwO,EAAsB3D,EAAMpE,MAAM/O,GAElC4C,EAAUqE,EAAMvC,aAChB7D,EAAUoG,EAAMjV,GAChB8O,EAAY2W,EAAiB3W,UAC7BkE,EAAiBiC,EAAMjC,eAAelE,GACtC0W,EAAeC,EAAiBD,aAEtC,IACE,IAAIG,EAAmBX,EACvBW,EAAmB/U,EACnB+U,IACA,CACA,MAAM7I,EAAsB7H,EAAM9H,MAAMwY,GAClC7T,EAAcmD,EAAMhC,gBACxB0S,EACA3S,Gb7LqB,Ia+LHiC,EAAM9B,oBACxBwS,EACA3S,IAKAlB,EAAcqP,EAAMT,iBAAiB1S,EAAO8O,IAC5ChL,EAAcqP,EAAMV,kBAEpBqE,EAAoBhI,GAAe,CACjCjO,UACAD,UAAWoW,EACXlW,YACAiE,QAASjB,EACTwL,gBAAiBqI,EACjBzI,eAAgBsI,GAElBrE,EAAMN,cAAc/D,EAAahL,EAAa9D,GAC9C0X,EAAiBjP,IAAIqG,GAEzB,CACA,OAAO4I,CACT,CAgBQ,SAAAT,CACNhQ,EACA+P,EACAhX,EACAmT,EACA9H,GAEA,MAAMqM,EAAmB,IAAIpP,IACvBwO,EAAsB3D,EAAMpE,MAAM/O,GAClC4X,EAAuBzE,EAAMpE,MAAM/O,EAAQ,GAE3C4C,EAAUqE,EAAMvC,aAChB7D,EAAUoG,EAAMjV,GACtB,IAAI6lB,EACAC,EAA2Bd,EAE3Be,EAAuB,EAE3B,IACE,IAAIJ,EAAmBX,EACvBW,EAAmB/U,EACnB+U,IACA,CACA,MAAM7I,EAAsB7H,EAAM9H,MAAMwY,GAGxC,QAAwBpf,IAApBsf,EAA+B,CACjC,MAAM/T,EAAcmD,EAAMhC,gBACxB0S,EACAI,GbnQmB,IaqQD9Q,EAAM9B,oBACxBwS,EACAI,IAKAjU,EAAcqP,EAAMT,iBAAiB1S,EAAO8O,IAC5ChL,EAAcqP,EAAMV,kBAEpBqE,EAAoBhI,GAAe,CACjCjO,UACAD,UAAWkX,EACXhX,UAAW+W,EACX9S,QAASjB,EACTwL,gBAAiBqI,GAEnBxE,EAAMN,cAAc/D,EAAahL,EAAa9D,GAC9C0X,EAAiBjP,IAAIqG,GAEzB,CAGA,MAAM0I,EAAeI,EAAqB9I,GACpCkJ,EAAiCR,aAAY,EAAZA,EAAczS,QACrD,QACqCxM,IAAnCyf,SACqBzf,IAApBsf,GACCG,GACE/Q,EAAM/B,kBAAkByS,EAAkBI,IAC9C,CACA,MAAMnN,EAAe3D,EAAMxB,iBACzBkS,EACAK,EACAH,GAEF,QAAqBtf,IAAjBqS,EACF,SAGF,MAAMJ,EACJgN,GAAgB,YAAaA,EACzB,CACE5W,UAAW4W,EAAalI,gBACxBzO,QAAS2W,EAAa3W,QACtBC,UAAW0W,EAAa1W,gBAE1BvI,EACA0f,EAAqBxmB,KAAKgc,UAAU9C,uBACxCgN,EACA1Q,EACA2D,EACAoN,EACAH,EACArN,EACAa,EAAQ5K,iBAGV,QAA2BlI,IAAvB0f,EAAkC,CAKxB,IAAVjY,QACkCzH,IAAlC8S,EAAQK,uBACRzE,EAAM7B,cAAcuS,EAAkBM,GACpCD,EACA3M,EAAQK,wBAGVmM,EAAkBI,EAClBH,EAA2BH,EAC3BI,EAAuB9Q,EAAMjC,eAAeiT,GAEhD,CACF,CACF,CACA,OAAOP,CACT,CAaQ,iBAAAJ,CACNjM,EACArL,EACA6W,EACA1D,GAEA,MAAMuE,EAAmB,IAAIpP,IACvB4P,EAAyB/E,EAAMpE,MAAM/O,GAC3C,IAAK,MAAMyD,KAAQoT,EAAa,CAC9B,MAAMsB,EAAiBD,EAAuBzU,GAE9C,IAAK0U,GAAkB,SAAUA,EAAgB,SACjD,MAAM5W,EAAY9P,KAAKgc,UAAU9D,aAAalG,GAC9C,IAAK,MAAMkF,KAAYpH,EAAW,CAChC,IAAIsJ,EAEFA,EADElC,EAASlI,gBACIkI,EAASlI,gBACG,YAAlBkI,EAASnO,KpBnXW,EoBsXd6Q,EAAQ5K,gBAEzB,MAAM2X,EAAuBD,EAAepT,QAAU8F,EAGpDuN,EACEjF,EAAMT,iBAAiB1S,EAAO2I,EAASnI,cACzC4X,EAAuBjF,EAAMV,kBAE7ByF,EAAuBvP,EAASnI,aAAe,CAC7CuE,QAASqT,EACT1lB,KAAM+Q,EACN9Q,GAAIgW,EAASnI,YACbC,gBAAiBoK,QAAgBtS,EACjCiC,KAAMmO,EAASnO,MAEjB2Y,EAAMN,cACJlK,EAASnI,YACT4X,EACApY,GAEF0X,EAAiBjP,IAAIE,EAASnI,aAElC,CACF,CACA,OAAOkX,CACT,EC7Za,MAAMW,GACjB,WAAA7mB,CAAYuX,EAAO,GAAIuP,EAAUC,IAK7B,GAJA9mB,KAAKsX,KAAOA,EACZtX,KAAKiE,OAASjE,KAAKsX,KAAKrT,OACxBjE,KAAK6mB,QAAUA,EAEX7mB,KAAKiE,OAAS,EACd,IAAK,IAAI7B,GAAKpC,KAAKiE,QAAU,GAAK,EAAG7B,GAAK,EAAGA,IAAKpC,KAAK+mB,MAAM3kB,EAErE,CAEA,IAAAjC,CAAK6mB,GACDhnB,KAAKsX,KAAKnX,KAAK6mB,GACfhnB,KAAKiE,SACLjE,KAAKinB,IAAIjnB,KAAKiE,OAAS,EAC3B,CAEA,GAAAwE,GACI,GAAoB,IAAhBzI,KAAKiE,OAAc,OAEvB,MAAMijB,EAAMlnB,KAAKsX,KAAK,GAChB6P,EAASnnB,KAAKsX,KAAK7O,MAQzB,OAPAzI,KAAKiE,SAEDjE,KAAKiE,OAAS,IACdjE,KAAKsX,KAAK,GAAK6P,EACfnnB,KAAK+mB,MAAM,IAGRG,CACX,CAEA,IAAAE,GACI,OAAOpnB,KAAKsX,KAAK,EACrB,CAEA,GAAA2P,CAAIrlB,GACA,MAAM0V,KAACA,EAAIuP,QAAEA,GAAW7mB,KAClBgnB,EAAO1P,EAAK1V,GAElB,KAAOA,EAAM,GAAG,CACZ,MAAMylB,EAAUzlB,EAAM,GAAM,EACtB0lB,EAAUhQ,EAAK+P,GACrB,GAAIR,EAAQG,EAAMM,IAAY,EAAG,MACjChQ,EAAK1V,GAAO0lB,EACZ1lB,EAAMylB,CACV,CAEA/P,EAAK1V,GAAOolB,CAChB,CAEA,KAAAD,CAAMnlB,GACF,MAAM0V,KAACA,EAAIuP,QAAEA,GAAW7mB,KAClBunB,EAAavnB,KAAKiE,QAAU,EAC5B+iB,EAAO1P,EAAK1V,GAElB,KAAOA,EAAM2lB,GAAY,CACrB,IAAIC,EAAoB,GAAZ5lB,GAAO,GACfwhB,EAAO9L,EAAKkQ,GAChB,MAAMC,EAAQD,EAAO,EAMrB,GAJIC,EAAQznB,KAAKiE,QAAU4iB,EAAQvP,EAAKmQ,GAAQrE,GAAQ,IACpDoE,EAAOC,EACPrE,EAAO9L,EAAKmQ,IAEZZ,EAAQzD,EAAM4D,IAAS,EAAG,MAE9B1P,EAAK1V,GAAOwhB,EACZxhB,EAAM4lB,CACV,CAEAlQ,EAAK1V,GAAOolB,CAChB,EAGJ,SAASF,GAAe9G,EAAGte,GACvB,OAAOse,EAAIte,GAAI,EAAKse,EAAIte,EAAI,EAAI,CACpC,CC3EA,MACMgmB,GAAMlpB,KAAKmpB,GAAK,IAyGtB,SAASC,GAAQC,EAAKC,EAAKC,EAAQC,GAC/B,MAAMC,EAASD,EAAKC,OACdC,EAASF,EAAKE,OACdC,EAASH,EAAKG,OACdC,EAASJ,EAAKI,OAGpB,GAAIP,GAAOI,GAAUJ,GAAOK,EACxB,OAAIJ,EAAMK,EAAeE,IAAUP,EAAMK,GAAUT,IAC/CI,EAAMM,EAAeC,IAAUP,EAAMM,GAAUV,IAC5C,EAKX,MAAMY,EAAe9pB,KAAK2V,IAAIkU,IAAUR,EAAMI,GAAUP,IAAMW,IAAUR,EAAMK,GAAUR,KAClFa,EAoCV,SAAmBT,EAAKQ,GACpB,MAAME,EAAU,EAAI,EAAIF,EACxB,OAAIE,GAAW,EAAUV,EAAM,EAAI,IAAK,GACjCtpB,KAAKiqB,KAAKjqB,KAAKkqB,IAAIZ,EAAMJ,IAAOc,GAAWd,EACtD,CAxCwBiB,CAAUb,EAAKQ,GAGnC,OAAIC,EAAcJ,GAAUI,EAAcH,EAC/BQ,GAAoBN,EAAcP,EAAQD,EAAKS,GAGnD/pB,KAAK2V,IACRyU,GAAoBN,EAAcP,EAAQD,EAAKK,GAC/CS,GAAoBN,EAAcP,EAAQD,EAAKM,GAEvD,CAEA,SAASS,GAAY7I,EAAGte,GACpB,OAAOse,EAAE8I,KAAOpnB,EAAEonB,IACtB,CAEA,SAAST,GAASU,GACd,MAAMnd,EAAIpN,KAAKwqB,IAAID,EAAQ,GAC3B,OAAOnd,EAAIA,CACf,CAEA,SAASgd,GAAoBN,EAAcW,EAASC,EAAMC,GACtD,OAAOF,EAAUzqB,KAAK4qB,IAAID,EAAOzB,IAAOY,EAAeD,IAAUa,EAAOC,GAAQzB,GACpF,CAEA,SAAS2B,GAAaC,EAAMJ,EAAMK,EAAMJ,EAAMF,GAE1C,OAAOL,GADcP,IAAUiB,EAAOC,GAAQ7B,IACLuB,EAASC,EAAMC,EAC5D,CCzJA,MAAMK,GAAc,CAChBC,UAAWvhB,WAAYwhB,kBAAmBC,WAAYxX,YACtDyX,WAAY7X,YAAa8X,aAAcC,cAQ5B,MAAMC,GAMjB,WAAO9oB,CAAKqW,GACR,KAAMA,aAAgB3S,aAClB,MAAM,IAAI5C,MAAM,4CAEpB,MAAOioB,EAAOC,GAAkB,IAAI/hB,WAAWoP,EAAM,EAAG,GACxD,GAAc,MAAV0S,EACA,MAAM,IAAIjoB,MAAM,kDAEpB,MAAMmoB,EAAUD,GAAkB,EAClC,GAlBQ,IAkBJC,EACA,MAAM,IAAInoB,MAAM,QAAQmoB,4BAE5B,MAAMC,EAAYX,GAA6B,GAAjBS,GAC9B,IAAKE,EACD,MAAM,IAAIpoB,MAAM,4BAEpB,MAAOqoB,GAAY,IAAIjY,YAAYmF,EAAM,EAAG,IACrC+S,GAAY,IAAItY,YAAYuF,EAAM,EAAG,GAE5C,OAAO,IAAIyS,GAAOM,EAAUD,EAAUD,EAAW7S,EACrD,CASA,WAAAvX,CAAYsqB,EAAUD,EAAW,GAAID,EAAYL,aAAcxS,GAC3D,GAAI9N,MAAM6gB,IAAaA,EAAW,EAAG,MAAM,IAAItoB,MAAM,+BAA+BsoB,MAEpFrqB,KAAKqqB,UAAYA,EACjBrqB,KAAKoqB,SAAW5rB,KAAK2V,IAAI3V,KAAK8rB,KAAKF,EAAU,GAAI,OACjDpqB,KAAKmqB,UAAYA,EACjBnqB,KAAKuqB,eAAiBF,EAAW,MAAQlY,YAAcJ,YAEvD,MAAMyY,EAAiBhB,GAAYiB,QAAQzqB,KAAKmqB,WAC1CO,EAA4B,EAAXL,EAAerqB,KAAKmqB,UAAUQ,kBAC/CC,EAAcP,EAAWrqB,KAAKuqB,eAAeI,kBAC7CE,GAAa,EAAID,EAAc,GAAK,EAE1C,GAAIJ,EAAiB,EACjB,MAAM,IAAIzoB,MAAM,iCAAiCooB,MAGjD7S,GAASA,aAAgB3S,aACzB3E,KAAKsX,KAAOA,EACZtX,KAAK8qB,IAAM,IAAI9qB,KAAKuqB,eAAevqB,KAAKsX,KAxDhC,EAwDmD+S,GAC3DrqB,KAAK+qB,OAAS,IAAI/qB,KAAKmqB,UAAUnqB,KAAKsX,KAzD9B,EAyDkDsT,EAAcC,EAAsB,EAAXR,GACnFrqB,KAAKgrB,KAAkB,EAAXX,EACZrqB,KAAKirB,WAAY,IAEjBjrB,KAAKsX,KAAO,IAAI3S,YA7DR,EA6DkC+lB,EAAiBE,EAAcC,GACzE7qB,KAAK8qB,IAAM,IAAI9qB,KAAKuqB,eAAevqB,KAAKsX,KA9DhC,EA8DmD+S,GAC3DrqB,KAAK+qB,OAAS,IAAI/qB,KAAKmqB,UAAUnqB,KAAKsX,KA/D9B,EA+DkDsT,EAAcC,EAAsB,EAAXR,GACnFrqB,KAAKgrB,KAAO,EACZhrB,KAAKirB,WAAY,EAGjB,IAAI/iB,WAAWlI,KAAKsX,KAAM,EAAG,GAAGjP,IAAI,CAAC,IAAM,GAAiBmiB,IAC5D,IAAIrY,YAAYnS,KAAKsX,KAAM,EAAG,GAAG,GAAK8S,EACtC,IAAIrY,YAAY/R,KAAKsX,KAAM,EAAG,GAAG,GAAK+S,EAE9C,CAQA,GAAArT,CAAIkU,EAAGC,GACH,MAAMnQ,EAAQhb,KAAKgrB,MAAQ,EAI3B,OAHAhrB,KAAK8qB,IAAI9P,GAASA,EAClBhb,KAAK+qB,OAAO/qB,KAAKgrB,QAAUE,EAC3BlrB,KAAK+qB,OAAO/qB,KAAKgrB,QAAUG,EACpBnQ,CACX,CAKA,MAAA/S,GACI,MAAMmjB,EAAWprB,KAAKgrB,MAAQ,EAC9B,GAAII,IAAaprB,KAAKqqB,SAClB,MAAM,IAAItoB,MAAM,SAASqpB,yBAAgCprB,KAAKqqB,aAMlE,OAHAtK,GAAK/f,KAAK8qB,IAAK9qB,KAAK+qB,OAAQ/qB,KAAKoqB,SAAU,EAAGpqB,KAAKqqB,SAAW,EAAG,GAEjErqB,KAAKirB,WAAY,EACVjrB,IACX,CAUA,KAAAqrB,CAAMC,EAAMC,EAAMC,EAAMC,GACpB,IAAKzrB,KAAKirB,UAAW,MAAM,IAAIlpB,MAAM,+CAErC,MAAM+oB,IAACA,EAAGC,OAAEA,EAAMX,SAAEA,GAAYpqB,KAC1B+H,EAAQ,CAAC,EAAG+iB,EAAI7mB,OAAS,EAAG,GAC5BI,EAAS,GAGf,KAAO0D,EAAM9D,QAAQ,CACjB,MAAMynB,EAAO3jB,EAAMU,OAAS,EACtBgf,EAAQ1f,EAAMU,OAAS,EACvB+e,EAAOzf,EAAMU,OAAS,EAG5B,GAAIgf,EAAQD,GAAQ4C,EAAU,CAC1B,IAAK,IAAIhoB,EAAIolB,EAAMplB,GAAKqlB,EAAOrlB,IAAK,CAChC,MAAM8oB,EAAIH,EAAO,EAAI3oB,GACf+oB,EAAIJ,EAAO,EAAI3oB,EAAI,GACrB8oB,GAAKI,GAAQJ,GAAKM,GAAQL,GAAKI,GAAQJ,GAAKM,GAAMpnB,EAAOlE,KAAK2qB,EAAI1oB,GAC1E,CACA,QACJ,CAGA,MAAMupB,EAAKnE,EAAOC,GAAU,EAGtByD,EAAIH,EAAO,EAAIY,GACfR,EAAIJ,EAAO,EAAIY,EAAI,GACrBT,GAAKI,GAAQJ,GAAKM,GAAQL,GAAKI,GAAQJ,GAAKM,GAAMpnB,EAAOlE,KAAK2qB,EAAIa,KAGzD,IAATD,EAAaJ,GAAQJ,EAAIK,GAAQJ,KACjCpjB,EAAM5H,KAAKqnB,GACXzf,EAAM5H,KAAKwrB,EAAI,GACf5jB,EAAM5H,KAAK,EAAIurB,KAEN,IAATA,EAAaF,GAAQN,EAAIO,GAAQN,KACjCpjB,EAAM5H,KAAKwrB,EAAI,GACf5jB,EAAM5H,KAAKsnB,GACX1f,EAAM5H,KAAK,EAAIurB,GAEvB,CAEA,OAAOrnB,CACX,CASA,MAAAunB,CAAOC,EAAIC,EAAIlL,GACX,IAAK5gB,KAAKirB,UAAW,MAAM,IAAIlpB,MAAM,+CAErC,MAAM+oB,IAACA,EAAGC,OAAEA,EAAMX,SAAEA,GAAYpqB,KAC1B+H,EAAQ,CAAC,EAAG+iB,EAAI7mB,OAAS,EAAG,GAC5BI,EAAS,GACT0nB,EAAKnL,EAAIA,EAGf,KAAO7Y,EAAM9D,QAAQ,CACjB,MAAMynB,EAAO3jB,EAAMU,OAAS,EACtBgf,EAAQ1f,EAAMU,OAAS,EACvB+e,EAAOzf,EAAMU,OAAS,EAG5B,GAAIgf,EAAQD,GAAQ4C,EAAU,CAC1B,IAAK,IAAIhoB,EAAIolB,EAAMplB,GAAKqlB,EAAOrlB,IACvB4pB,GAAOjB,EAAO,EAAI3oB,GAAI2oB,EAAO,EAAI3oB,EAAI,GAAIypB,EAAIC,IAAOC,GAAI1nB,EAAOlE,KAAK2qB,EAAI1oB,IAEhF,QACJ,CAGA,MAAMupB,EAAKnE,EAAOC,GAAU,EAGtByD,EAAIH,EAAO,EAAIY,GACfR,EAAIJ,EAAO,EAAIY,EAAI,GACrBK,GAAOd,EAAGC,EAAGU,EAAIC,IAAOC,GAAI1nB,EAAOlE,KAAK2qB,EAAIa,KAGnC,IAATD,EAAaG,EAAKjL,GAAKsK,EAAIY,EAAKlL,GAAKuK,KACrCpjB,EAAM5H,KAAKqnB,GACXzf,EAAM5H,KAAKwrB,EAAI,GACf5jB,EAAM5H,KAAK,EAAIurB,KAEN,IAATA,EAAaG,EAAKjL,GAAKsK,EAAIY,EAAKlL,GAAKuK,KACrCpjB,EAAM5H,KAAKwrB,EAAI,GACf5jB,EAAM5H,KAAKsnB,GACX1f,EAAM5H,KAAK,EAAIurB,GAEvB,CAEA,OAAOrnB,CACX,EAWJ,SAAS0b,GAAK+K,EAAKC,EAAQX,EAAU5C,EAAMC,EAAOiE,GAC9C,GAAIjE,EAAQD,GAAQ4C,EAAU,OAE9B,MAAMuB,EAAKnE,EAAOC,GAAU,EAI5BwE,GAAOnB,EAAKC,EAAQY,EAAGnE,EAAMC,EAAOiE,GAGpC3L,GAAK+K,EAAKC,EAAQX,EAAU5C,EAAMmE,EAAI,EAAG,EAAID,GAC7C3L,GAAK+K,EAAKC,EAAQX,EAAUuB,EAAI,EAAGlE,EAAO,EAAIiE,EAClD,CAYA,SAASO,GAAOnB,EAAKC,EAAQlqB,EAAG2mB,EAAMC,EAAOiE,GAEzC,KAAOjE,EAAQD,GAAM,CACjB,GAAIC,EAAQD,EAAO,IAAK,CACpB,MAAM0E,EAAIzE,EAAQD,EAAO,EACnBmE,EAAI9qB,EAAI2mB,EAAO,EACf2E,EAAI3tB,KAAK4tB,IAAIF,GACbtgB,EAAI,GAAMpN,KAAK6tB,IAAI,EAAIF,EAAI,GAC3BG,EAAK,GAAM9tB,KAAK+tB,KAAKJ,EAAIvgB,GAAKsgB,EAAItgB,GAAKsgB,IAAMP,EAAIO,EAAI,EAAI,GAAI,EAAK,GAGxED,GAAOnB,EAAKC,EAAQlqB,EAFJrC,KAAK8rB,IAAI9C,EAAMhpB,KAAKC,MAAMoC,EAAI8qB,EAAI/f,EAAIsgB,EAAII,IACzC9tB,KAAK2V,IAAIsT,EAAOjpB,KAAKC,MAAMoC,GAAKqrB,EAAIP,GAAK/f,EAAIsgB,EAAII,IACxBZ,EAC9C,CAEA,MAAMrS,EAAI0R,EAAO,EAAIlqB,EAAI6qB,GACzB,IAAItpB,EAAIolB,EACJhQ,EAAIiQ,EAKR,IAHA+E,GAAS1B,EAAKC,EAAQvD,EAAM3mB,GACxBkqB,EAAO,EAAItD,EAAQiE,GAAQrS,GAAGmT,GAAS1B,EAAKC,EAAQvD,EAAMC,GAEvDrlB,EAAIoV,GAAG,CAIV,IAHAgV,GAAS1B,EAAKC,EAAQ3oB,EAAGoV,GACzBpV,IACAoV,IACOuT,EAAO,EAAI3oB,EAAIspB,GAAQrS,GAAGjX,IACjC,KAAO2oB,EAAO,EAAIvT,EAAIkU,GAAQrS,GAAG7B,GACrC,CAEIuT,EAAO,EAAIvD,EAAOkE,KAAUrS,EAAGmT,GAAS1B,EAAKC,EAAQvD,EAAMhQ,IAE3DA,IACAgV,GAAS1B,EAAKC,EAAQvT,EAAGiQ,IAGzBjQ,GAAK3W,IAAG2mB,EAAOhQ,EAAI,GACnB3W,GAAK2W,IAAGiQ,EAAQjQ,EAAI,EAC5B,CACJ,CAQA,SAASgV,GAAS1B,EAAKC,EAAQ3oB,EAAGoV,GAC9BiV,GAAK3B,EAAK1oB,EAAGoV,GACbiV,GAAK1B,EAAQ,EAAI3oB,EAAG,EAAIoV,GACxBiV,GAAK1B,EAAQ,EAAI3oB,EAAI,EAAG,EAAIoV,EAAI,EACpC,CAOA,SAASiV,GAAK3b,EAAK1O,EAAGoV,GAClB,MAAMkV,EAAM5b,EAAI1O,GAChB0O,EAAI1O,GAAK0O,EAAI0G,GACb1G,EAAI0G,GAAKkV,CACb,CAQA,SAASV,GAAOW,EAAIC,EAAIC,EAAIC,GACxB,MAAMC,EAAKJ,EAAKE,EACVG,EAAKJ,EAAKE,EAChB,OAAOC,EAAKA,EAAKC,EAAKA,CAC1B,CCtUK,MAAcC,GAAE,OAAOC,GAAE,SAAe,MAAMC,GAAE9kB,IAAI+kB,MAAMC,MAAM,WAAAttB,CAAY4P,EAAEuc,GAAG,MAAM3iB,EAAEoG,EAAE2d,MAAM1hB,EAAE6D,MAAMxO,KAAKsI,EAAEgkB,QAAQvtB,KAAKqI,IAAIsH,EAAE3P,KAAKotB,MAAMlB,EAAElsB,KAAKqtB,MAAMzhB,EAAE3H,OAAO,EAAE,CAAC,CAAC+jB,KAAKze,EAAEgkB,KAAK3hB,IAAI,EAAE,CAAC,IAAA4hB,GAAO,MAAM7d,EAAE3P,KAAKytB,OAAO,OAAOztB,KAAK0tB,YAAY/d,CAAC,CAAC,IAAA8d,GAAO,GAAuB,IAApBztB,KAAKqtB,MAAMppB,OAAW,MAAM,CAAC0pB,MAAK,EAAGxpB,WAAM,GAAQ,MAAM6jB,KAAKrY,EAAE4d,KAAKrB,GAAGhB,GAAElrB,KAAKqtB,OAAO,GAAU,KAAPnC,GAAEgB,GAAQ,MAAM,CAACyB,MAAK,EAAGxpB,MAAMnE,KAAKqE,UAAU,MAAMkF,EAAEoG,EAAE8B,IAAIyZ,GAAEgB,IAAI,OAAOlsB,KAAKqtB,MAAMltB,KAAK,CAAC6nB,KAAKze,EAAEgkB,KAAK9d,MAAMxO,KAAKsI,EAAEgkB,UAAUvtB,KAAKytB,MAAM,CAAC,SAAAC,GAAY,GAAuB,IAApB1tB,KAAKqtB,MAAMppB,OAAW,OAAO,MAAM0L,EAAEub,GAAElrB,KAAKqtB,OAAOE,KAAK5d,EAAElH,QAAQkH,EAAE1L,OAAO,KAAKjE,KAAKqtB,MAAM5kB,MAAMzI,KAAK0tB,YAAY,CAAC,GAAAE,GAAM,OAAO5tB,KAAKqI,IAAIwlB,QAAQ7tB,KAAKqtB,MAAMzsB,KAAI,EAAE2sB,KAAK5d,KAAKub,GAAEvb,KAAI4L,QAAO5L,GAAO,KAAJA,IAAQ5O,KAAK,GAAG,CAAC,KAAAoD,GAAQ,OAAO+mB,GAAElrB,KAAKqtB,OAAOrF,KAAKvW,IAAI,GAAG,CAAC,MAAApN,GAAS,OAAOrE,KAAKotB,OAAO,KAAKF,GAAE,OAAOltB,KAAKmE,QAAQ,KAAK8oB,GAAE,OAAOjtB,KAAK4tB,MAAM,QAAQ,MAAM,CAAC5tB,KAAK4tB,MAAM5tB,KAAKmE,SAAS,CAAC,CAACwC,OAAOgd,YAAY,OAAO3jB,IAAI,EAAE,MAAMkrB,GAAE7R,GAAGA,EAAEA,EAAEpV,OAAO,GAA8M6pB,GAAE,CAACzU,EAAE1J,EAAEuc,EAAE3iB,EAAEqC,EAAEgV,EAAExe,EAAE2rB,KAAK,MAAM/N,EAAEY,EAAExe,EAAEiX,EAAE,IAAI,MAAM2U,KAAK3U,EAAEkU,OAAO,GAAO,KAAJS,EAAO,CAAC,MAAMC,EAAEriB,EAAEoU,EAAE,GAAGiO,GAAG/B,GAAG3iB,EAAElB,IAAI0lB,EAAE,CAAC1U,EAAE5H,IAAIuc,GAAGC,GAAG,KAAK,CAAC,IAAIA,EAAErN,EAAE,IAAI,IAAIsN,EAAE,EAAEA,EAAEF,EAAE/pB,SAASiqB,IAAID,EAAE,CAAC,MAAMtC,EAAEqC,EAAEE,GAAGxmB,EAAEtF,EAAE6rB,EAAEE,EAAEzmB,EAAEtF,EAAE,IAAIgsB,EAAExiB,EAAElE,GAAG,MAAM2mB,EAAE7vB,KAAK8rB,IAAI,EAAE2D,EAAE/B,EAAE,GAAGoC,EAAE9vB,KAAK2V,IAAI/R,EAAE,EAAE6rB,EAAE/B,GAAG,IAAI,IAAIqC,EAAEF,EAAEE,EAAED,IAAIC,EAAE,CAAC,MAAM1tB,EAAE8qB,IAAIhc,EAAE4e,GAAGC,EAAE5iB,EAAEuiB,EAAEI,KAAK1tB,EAAEsrB,EAAEvgB,EAAEuiB,EAAEI,EAAE,GAAG,EAAEE,EAAE7iB,EAAElE,EAAE6mB,GAAG,EAAEG,EAAE9iB,EAAElE,EAAE6mB,EAAE,GAAG/vB,KAAK2V,IAAIqa,EAAErC,EAAEsC,GAAGC,EAAEN,IAAIA,EAAEM,EAAE,CAAC,GAAGN,EAAElC,EAAE,SAAS7S,CAAC,CAACyU,GAAEzU,EAAE5H,IAAIuc,GAAGre,EAAEuc,EAAE3iB,EAAEqC,EAAEqiB,EAAE7rB,EAAE2rB,EAAEC,EAAE,GAAG,MAAM7C,GAAEmC,MAAMO,QAAQc,WAAM,EAAO,WAAA5uB,CAAY4P,EAAE,IAAI2B,IAAI4a,EAAE,IAAIlsB,KAAKstB,MAAM3d,EAAE3P,KAAK6tB,QAAQ3B,CAAC,CAAC,QAAA0C,CAASjf,GAAG,IAAIA,EAAEkf,WAAW7uB,KAAK6tB,SAAS,MAAM,IAAI9rB,MAAM,qBAAqB,MAAMmqB,EAAE3iB,GAAGulB,GAAE9uB,KAAKstB,MAAM3d,EAAE9M,MAAM7C,KAAK6tB,QAAQ5pB,SAAS,QAAO,IAAJioB,EAAW,CAAC,MAAMtgB,EAAEgV,GAAGmO,GAAExlB,GAAG,IAAI,MAAMnH,KAAKwJ,EAAE2hB,OAAO,GAAO,KAAJnrB,GAAQA,EAAEysB,WAAWjO,GAAG,CAAC,MAAMmN,EAAE,IAAIzc,IAAI,OAAOyc,EAAE1lB,IAAIjG,EAAES,MAAM+d,EAAE3c,QAAQ2H,EAAE6F,IAAIrP,IAAI,IAAI+oB,GAAE4C,EAAEpe,EAAE,CAAC,CAAC,OAAO,IAAIwb,GAAEe,EAAEvc,EAAE,CAAC,KAAA2V,GAAQtlB,KAAK2uB,WAAM,EAAO3uB,KAAKstB,MAAMhI,OAAO,CAAC,OAAO3V,GAAG,OAAO3P,KAAK2uB,WAAM,EAAOK,GAAGhvB,KAAKstB,MAAM3d,EAAE,CAAC,OAAAhP,GAAU,OAAO,IAAIwsB,GAAEntB,KAAj/D,UAAy/D,CAAC,OAAAgR,CAAQrB,GAAG,IAAI,MAAMuc,EAAE3iB,KAAKvJ,KAAK2P,EAAEuc,EAAE3iB,EAAEvJ,KAAK,CAAC,QAAAivB,CAAStf,EAAEuc,GAAG,MAAjqC,EAAC7S,EAAE1J,EAAEuc,KAAK,MAAM3iB,EAAE,IAAI+H,IAAI,GAAa,iBAAH3B,EAAY,OAAOpG,EAAE,MAAMqC,EAAE+D,EAAE1L,OAAO,EAAE2c,EAAEhV,EAAEsgB,EAAE9pB,EAAE,IAAI8F,WAAW0Y,EAAEhV,GAAG6U,KAAKyL,EAAE,GAAG,IAAI,IAAI6B,EAAE,EAAEA,EAAEniB,IAAImiB,EAAE3rB,EAAE2rB,GAAGA,EAAE,IAAI,IAAIA,EAAE,EAAEA,EAAEnN,IAAImN,EAAE3rB,EAAE2rB,EAAEniB,GAAGmiB,EAAE,OAAOD,GAAEzU,EAAE1J,EAAEuc,EAAE3iB,EAAEnH,EAAE,EAAEwJ,EAAE,IAAIrC,GAAm+B2lB,CAAGlvB,KAAKstB,MAAM3d,EAAEuc,EAAE,CAAC,GAAAza,CAAI9B,GAAG,MAAMuc,EAAEiD,GAAEnvB,KAAKstB,MAAM3d,GAAG,YAAW,IAAJuc,EAAWA,EAAEza,IAAI,SAAI,CAAM,CAAC,GAAAuG,CAAIrI,GAAG,OAAOwf,GAAEnvB,KAAKstB,MAAM3d,IAAIqI,IAAI,MAAK,CAAE,CAAC,IAAAuV,GAAO,OAAO,IAAIJ,GAAEntB,KAAKitB,GAAE,CAAC,GAAA5kB,CAAIsH,EAAEuc,GAAG,GAAa,iBAAHvc,EAAY,MAAM,IAAI5N,MAAM,wBAAwB,OAAO/B,KAAK2uB,WAAM,EAAOS,GAAEpvB,KAAKstB,MAAM3d,GAAGtH,IAAI,GAAG6jB,GAAGlsB,IAAI,CAAC,QAAI2c,GAAO,GAAG3c,KAAK2uB,MAAM,OAAO3uB,KAAK2uB,MAAM3uB,KAAK2uB,MAAM,EAAE,MAAMhf,EAAE3P,KAAKW,UAAU,MAAMgP,EAAE6d,OAAOG,MAAM3tB,KAAK2uB,OAAO,EAAE,OAAO3uB,KAAK2uB,KAAK,CAAC,MAAAU,CAAO1f,EAAEuc,GAAG,GAAa,iBAAHvc,EAAY,MAAM,IAAI5N,MAAM,wBAAwB/B,KAAK2uB,WAAM,EAAO,MAAMplB,EAAE6lB,GAAEpvB,KAAKstB,MAAM3d,GAAG,OAAOpG,EAAElB,IAAI,GAAG6jB,EAAE3iB,EAAEkI,IAAI,MAAMzR,IAAI,CAAC,KAAAsvB,CAAM3f,EAAEuc,GAAG,GAAa,iBAAHvc,EAAY,MAAM,IAAI5N,MAAM,wBAAwB/B,KAAK2uB,WAAM,EAAO,MAAMplB,EAAE6lB,GAAEpvB,KAAKstB,MAAM3d,GAAG,IAAI/D,EAAErC,EAAEkI,IAAI,IAAI,YAAW,IAAJ7F,GAAYrC,EAAElB,IAAI,GAAGuD,EAAEsgB,KAAKtgB,CAAC,CAAC,MAAA2T,GAAS,OAAO,IAAI4N,GAAEntB,KAAKktB,GAAE,CAAC,CAACvmB,OAAOgd,YAAY,OAAO3jB,KAAKW,SAAS,CAAC,WAAOM,CAAK0O,GAAG,MAAMuc,EAAE,IAAIf,GAAE,IAAI,MAAM5hB,EAAEqC,KAAK+D,EAAEuc,EAAE7jB,IAAIkB,EAAEqC,GAAG,OAAOsgB,CAAC,CAAC,iBAAOqD,CAAW5f,GAAG,OAAOwb,GAAElqB,KAAKP,OAAOC,QAAQgP,GAAG,EAAO,MAACmf,GAAE,CAACzV,EAAE1J,EAAEuc,EAAE,MAAM,GAAc,IAAXvc,EAAE1L,QAAe,MAAHoV,EAAQ,MAAM,CAACA,EAAE6S,GAAG,IAAI,MAAM3iB,KAAK8P,EAAEkU,OAAO,GAAO,KAAJhkB,GAAQoG,EAAEkf,WAAWtlB,GAAG,OAAO2iB,EAAE/rB,KAAK,CAACkZ,EAAE9P,IAAIulB,GAAEzV,EAAE5H,IAAIlI,GAAGoG,EAAE9M,MAAM0G,EAAEtF,QAAQioB,GAAG,OAAOA,EAAE/rB,KAAK,CAACkZ,EAAE1J,IAAImf,QAAE,EAAO,GAAG5C,EAAC,EAAGiD,GAAE,CAAC9V,EAAE1J,KAAK,GAAc,IAAXA,EAAE1L,SAAaoV,EAAE,OAAOA,EAAE,IAAI,MAAM6S,KAAK7S,EAAEkU,OAAO,GAAO,KAAJrB,GAAQvc,EAAEkf,WAAW3C,GAAG,OAAOiD,GAAE9V,EAAE5H,IAAIya,GAAGvc,EAAE9M,MAAMqpB,EAAEjoB,QAAO,EAAGmrB,GAAE,CAAC/V,EAAE1J,KAAK,MAAMuc,EAAEvc,EAAE1L,OAAOoV,EAAE,IAAI,IAAI9P,EAAE,EAAE8P,GAAG9P,EAAE2iB,GAAG,CAAC,IAAI,MAAMtL,KAAKvH,EAAEkU,OAAO,GAAO,KAAJ3M,GAAQjR,EAAEpG,KAAKqX,EAAE,GAAG,CAAC,MAAMxe,EAAE5D,KAAK2V,IAAI+X,EAAE3iB,EAAEqX,EAAE3c,QAAQ,IAAI8pB,EAAE,EAAE,KAAKA,EAAE3rB,GAAGuN,EAAEpG,EAAEwkB,KAAKnN,EAAEmN,MAAMA,EAAE,MAAM/N,EAAE3G,EAAE5H,IAAImP,GAAG,GAAGmN,IAAInN,EAAE3c,OAAOoV,EAAE2G,MAAM,CAAC,MAAMgO,EAAE,IAAI1c,IAAI0c,EAAE3lB,IAAIuY,EAAE/d,MAAMkrB,GAAG/N,GAAG3G,EAAEhR,IAAIsH,EAAE9M,MAAM0G,EAAEA,EAAEwkB,GAAGC,GAAG3U,EAAEmW,OAAO5O,GAAGvH,EAAE2U,CAAC,CAACzkB,GAAGwkB,EAAE,SAAS1U,CAAC,CAAC,MAAMzN,EAAE,IAAI0F,IAAI,OAAO+H,EAAEhR,IAAIsH,EAAE9M,MAAM0G,GAAGqC,GAAGA,CAAC,CAAC,OAAOyN,GAAG2V,GAAG,CAAC3V,EAAE1J,KAAK,MAAMuc,EAAE3iB,GAAGulB,GAAEzV,EAAE1J,GAAG,QAAO,IAAJuc,EAAY,GAAGA,EAAEsD,OAAO,IAAa,IAATtD,EAAEvP,KAAS8S,GAAElmB,QAAQ,GAAY,IAAT2iB,EAAEvP,KAAS,CAAC,MAAM/Q,EAAEgV,GAAGsL,EAAEvrB,UAAU6sB,OAAOrpB,MAAMurB,GAAEnmB,EAAEqC,EAAEgV,EAAE,CAAC,EAAG6O,GAAEpW,IAAI,GAAc,IAAXA,EAAEpV,OAAW,OAAO,MAAM0L,EAAEuc,GAAG6C,GAAE1V,GAAG,GAAG1J,EAAE6f,OAAOtD,GAAY,IAATvc,EAAEgN,KAAS8S,GAAEpW,EAAExW,MAAM,YAAY,GAAY,IAAT8M,EAAEgN,KAAS,CAAC,MAAMpT,EAAEqC,GAAG+D,EAAEhP,UAAU6sB,OAAOrpB,MAAU,KAAJoF,GAAQmmB,GAAErW,EAAExW,MAAM,MAAM0G,EAAEqC,EAAE,GAAG8jB,GAAE,CAACrW,EAAE1J,EAAEuc,KAAK,GAAc,IAAX7S,EAAEpV,OAAW,OAAO,MAAMsF,EAAEqC,GAAGmjB,GAAE1V,GAAG9P,EAAElB,IAAIuD,EAAE+D,EAAEuc,GAAG3iB,EAAEimB,OAAO5jB,EAAC,EAAGmjB,GAAE1V,GAAGA,EAAEA,EAAEpV,OAAO,GAAqH0rB,GAAG,qBAAqBC,GAAE,KAAKC,GAAE,MAAMC,GAAG,UAA+CC,GAAG,CAAC1W,EAAE1J,KAAK0J,EAAE2L,SAASrV,IAAI0J,EAAElZ,KAAKwP,EAAC,EAAGqgB,GAAE,CAAC3W,EAAE1J,KAAK,IAAI,MAAMuc,KAAKvc,EAAE0J,EAAE2L,SAASkH,IAAI7S,EAAElZ,KAAK+rB,EAAC,EAAG+D,GAAG,EAAEC,MAAM7W,IAAI6W,MAAMvgB,KAAKA,EAAE0J,EAAE8W,GAAG,IAAI,IAAI7e,IAA4N8e,GAAE,CAAC/W,EAAE1J,IAAIjP,OAAO2vB,UAAUC,eAAeC,KAAKlX,EAAE1J,GAAG0J,EAAE1J,QAAG,EAAO6gB,GAAG,CAACZ,CAACA,IAAG,CAACvW,EAAE1J,KAAK,IAAI,MAAMuc,KAAKvc,EAAE4d,OAAO,CAAC,MAAMhkB,EAAE8P,EAAE5H,IAAIya,GAAG,GAAM,MAAH3iB,EAAQ8P,EAAEhR,IAAI6jB,EAAEvc,EAAE8B,IAAIya,QAAQ,CAAC,MAAMgE,MAAMtkB,EAAE6kB,MAAM7P,EAAE8P,MAAMtuB,GAAGuN,EAAE8B,IAAIya,GAAG3iB,EAAE2mB,MAAM3mB,EAAE2mB,MAAMtkB,EAAErC,EAAEmnB,MAAMhwB,OAAOyW,OAAO5N,EAAEmnB,MAAMtuB,GAAG4tB,GAAEzmB,EAAEknB,MAAM7P,EAAE,CAAC,CAAC,OAAOvH,GAAGwW,CAACA,IAAG,CAACxW,EAAE1J,KAAK,MAAMuc,EAAE,IAAI5a,IAAI,IAAI,MAAM/H,KAAKoG,EAAE4d,OAAO,CAAC,MAAM3hB,EAAEyN,EAAE5H,IAAIlI,GAAG,GAAM,MAAHqC,EAAQ,SAAS,MAAMskB,MAAMtP,EAAE6P,MAAMruB,EAAEsuB,MAAM3C,GAAGpe,EAAE8B,IAAIlI,GAAGymB,GAAEpkB,EAAE6kB,MAAMruB,GAAG8pB,EAAE7jB,IAAIkB,EAAE,CAAC2mB,MAAMtkB,EAAEskB,MAAMtP,EAAE6P,MAAM7kB,EAAE6kB,MAAMC,MAAMhwB,OAAOyW,OAAOvL,EAAE8kB,MAAM3C,IAAI,CAAC,OAAO7B,GAAG4D,CAACA,IAAI,CAACzW,EAAE1J,KAAK,IAAI,MAAMuc,KAAKvc,EAAE4d,OAAOlU,EAAEmW,OAAOtD,GAAG,OAAO7S,IAAIsX,GAAG,CAACtX,EAAE1J,EAAEuc,EAAE3iB,EAAEqC,EAAEgV,KAAK,MAAM/f,EAAEuB,EAAEV,EAAEqsB,EAAEC,EAAEhO,GAAGY,EAAE,OAAOpiB,KAAK4tB,IAAI,GAAGF,EAAEvc,EAAE,KAAKA,EAAE,MAAMqQ,EAAE3G,GAAGjX,EAAE,IAAIiX,EAAEjX,GAAG,EAAE2rB,EAAEA,EAAExkB,EAAEqC,IAAG,EAAwNglB,GAAG,CAACvX,EAAE1J,EAAEuc,EAAE3iB,KAAK,IAAI,MAAMqC,KAAKlL,OAAO6sB,KAAKlU,EAAEwX,WAAW,GAAGxX,EAAEwX,UAAUjlB,KAAKsgB,EAAiP,YAA9O7S,EAAEyX,SAASC,OAAO,OAAO,gCAAgC1X,EAAE2X,aAAavf,IAAI9B,wCAAwCpG,gCAAgCqC,sEAAsE,mBAA0B,EAAGqlB,GAAG,CAAC5X,EAAE1J,EAAEuc,EAAE3iB,KAAK,MAAMqC,EAAEyN,EAAE6X,OAAO5B,MAAM/lB,EAAE4mB,IAAI,IAAIvP,EAAEhV,EAAE6F,IAAI9B,GAAG,GAAM,MAAHiR,EAAQA,EAAE,IAAItP,IAAIsP,EAAEvY,IAAI6jB,EAAE,GAAGtgB,EAAEvD,IAAIsH,EAAEiR,OAAO,CAAC,MAAMxe,EAAEwe,EAAEnP,IAAIya,GAAGtL,EAAEvY,IAAI6jB,GAAG9pB,GAAG,GAAG,EAAE,GAAG+uB,GAAE,CAAC9X,EAAE1J,EAAEuc,EAAE3iB,KAAK,IAAI8P,EAAE6X,OAAOlZ,IAAIzO,GAAgB,YAAZqnB,GAAGvX,EAAE6S,EAAEvc,EAAEpG,GAAU,MAAMqC,EAAEyN,EAAE6X,OAAO5B,MAAM/lB,EAAE4mB,IAAIvP,EAAEhV,EAAE6F,IAAI9B,GAAGvN,EAAEwe,GAAGnP,IAAIya,IAAItL,UAAUxe,EAAE,IAAIwuB,GAAGvX,EAAE6S,EAAEvc,EAAEpG,GAAGnH,GAAG,EAAEwe,EAAEjE,MAAM,EAAE/Q,EAAE4jB,OAAO7f,GAAGiR,EAAE4O,OAAOtD,GAAGtL,EAAEvY,IAAI6jB,EAAE9pB,EAAE,GAA0B,IAAvBiX,EAAE6X,OAAOzf,IAAIlI,GAAGoT,MAAUtD,EAAE6X,OAAO1B,OAAOjmB,EAAC,EAAG6nB,GAAG,CAAC/X,EAAE1J,EAAEuc,EAAE3iB,EAAEqC,KAAK,IAAIgV,EAAEvH,EAAEgY,aAAa5f,IAAI9B,GAAM,MAAHiR,GAASvH,EAAEgY,aAAahpB,IAAIsH,EAAEiR,EAAE,IAAIA,EAAEsL,GAAGtgB,EAAE,MAAMxJ,GAAGiX,EAAEiY,gBAAgBpF,IAAI,GAAG3iB,EAAEqC,EAAEyN,EAAEiY,gBAAgBpF,GAAG9pB,GAAGmH,EAAE,IAA0UgoB,GAAE,CAAClY,EAAE1J,KAAK,MAAM6hB,aAAatF,EAAEuF,eAAeloB,EAAEmoB,SAAS9lB,EAAE+lB,YAAY/Q,EAAEgR,OAAOxvB,EAAEyvB,QAAQ9D,GAAG1U,EAAEyX,SAAS9Q,EAAEkM,EAAEvc,EAAEoe,GAAG,GAAM,MAAH/N,EAAQ,MAAM,IAAIje,MAAM,gDAAgDgsB,MAAM,GAApvF,EAAC1U,EAAE1J,IAAI0J,EAAEyY,aAAa9Z,IAAIrI,GAA6tFoiB,CAAE1Y,EAAE2G,GAAG,MAAM,IAAIje,MAAM,4BAA4Bie,KAAK,MAAMgO,EAAtkB,EAAC3U,EAAE1J,KAAK,MAAMuc,EAAE7S,EAAE2Y,QAAQ,OAAO3Y,EAAEyY,aAAazpB,IAAIsH,EAAEuc,GAAG7S,EAAE2X,aAAa3oB,IAAI6jB,EAAEvc,GAAG0J,EAAE4Y,gBAAgB,EAAE5Y,EAAE2Y,SAAS,EAAE9F,GAAsdgG,CAAG7Y,EAAE2G,GAArd,EAAC3G,EAAE1J,EAAEuc,KAAK,MAAMiG,YAAY5oB,EAAEioB,aAAa5lB,GAAGyN,EAAEyX,SAAS,GAAe,IAAZvnB,GAAGtF,OAAW,OAAO,IAAI2c,EAAEvH,EAAE+Y,cAAc3gB,IAAI9B,QAAO,IAAJiR,GAAYvH,EAAE+Y,cAAc/pB,IAAIsH,EAAEiR,EAAE,CAAA,GAAI,IAAI,MAAMxe,KAAKmH,EAAE,CAAC,MAAMwkB,EAAEniB,EAAEsgB,EAAE9pB,GAAM,MAAH2rB,IAAUnN,EAAExe,GAAG2rB,EAAE,GAAgRsE,CAAGhZ,EAAE2U,EAAEre,GAAG,IAAI,MAAMse,KAAK7rB,EAAE,CAAC,MAAM8rB,EAAEhC,EAAEvc,EAAEse,GAAG,GAAM,MAAHC,EAAQ,SAAS,MAAMvC,EAAE/f,EAAErC,EAAE2kB,EAAED,GAAGA,GAAGvmB,EAAE2R,EAAEwX,UAAU5C,GAAGE,EAAE,IAAItX,IAAI8U,GAAGhP,KAAKyU,GAAG/X,EAAE2U,EAAEtmB,EAAE2R,EAAE4Y,eAAe,EAAE9D,GAAG,IAAI,MAAMC,KAAKzC,EAAE,CAAC,MAAM0C,EAAEzN,EAAEwN,EAAEH,GAAG,GAAGxe,MAAMC,QAAQ2e,GAAG,IAAI,MAAMC,KAAKD,EAAE4C,GAAG5X,EAAE3R,EAAEsmB,EAAEM,QAAQD,GAAG4C,GAAG5X,EAAE3R,EAAEsmB,EAAEK,EAAE,CAAC,GAA4ViE,GAAE,CAACT,QAAQ,KAAKL,aAAa,CAACnY,EAAE1J,IAAI0J,EAAE1J,GAAG8hB,eAAepY,GAAGA,EAAE1a,WAAW+yB,SAASrY,GAAGA,EAAEkZ,MAAM5C,IAAIgC,YAAYtY,GAAGA,EAAEmZ,cAAcZ,YAAO,EAAOa,mBAAc,EAAON,YAAY,GAAGpB,OAAO,CAAC1X,EAAE1J,KAAK+iB,UAAUrZ,KAAK1J,EAAC,EAAGgjB,YAAW,GAAIC,GAAG,CAACC,YAAYjD,GAAEkD,QAAO,EAAGC,OAAM,EAAGC,SAAS,EAAEC,MAAM,CAAA,EAAGC,QAAQ,CAACH,MAAM,IAAID,OAAO,MAAMK,KAA7U,CAACtyB,EAAE,IAAIa,EAAE,GAAGssB,EAAE,KAAwUoF,GAAG,CAACP,YAA7kH,MAA2lHC,OAAO,CAACzZ,EAAE1J,EAAEuc,IAAIvc,IAAIuc,EAAEjoB,OAAO,GAAkCovB,GAAE,CAACC,cAAc,GAAGC,aAAa,IAAIC,GAAE,CAAnEC,UAAU,IAAIC,UAAU,MAAoDL,IAAqGM,GAAEhtB,OAAO,KAA4NitB,GAAG,CAACva,EAAE1J,EAAEigB,MAAK,GAAc,IAAXvW,EAAEpV,OAAW,OAAO,IAAIqN,IAAI,MAAM4a,EAAEvc,EAAE6iB,cAAc,KAAKtG,KAAKsE,IAAI,MAAM,IAAIzuB,MAAM,iCAAiC4N,KAAK,OAAO0J,EAAEwa,OAAOrD,GAAGtE,GAAE,EAAG4H,GAAE,CAACza,EAAE1J,EAAEuc,EAAE3iB,EAAEqC,EAAEgV,EAAExe,EAAE2rB,EAAE/N,EAAEgO,EAAE,IAAI1c,OAAO,GAAM,MAAHsP,EAAQ,OAAOoN,EAAE,IAAI,MAAMC,KAAKvtB,OAAO6sB,KAAKnrB,GAAG,CAAC,MAAM8rB,EAAE9rB,EAAE6rB,GAAGtC,EAAEtS,EAAEwX,UAAU5C,GAAGvmB,EAAEkZ,EAAEnP,IAAIka,GAAG,GAAM,MAAHjkB,EAAQ,SAAS,IAAIymB,EAAEzmB,EAAEiV,KAAK,MAAMyR,EAAE/U,EAAEiY,gBAAgB3F,GAAG,IAAI,MAAM0C,KAAK3mB,EAAE6lB,OAAO,CAAC,IAAIlU,EAAE2X,aAAahZ,IAAIqW,GAAG,CAAC8C,GAAE9X,EAAEsS,EAAE0C,EAAEnC,GAAGiC,GAAG,EAAE,QAAQ,CAAC,MAAMG,EAAEP,EAAEA,EAAE1U,EAAE2X,aAAavf,IAAI4c,GAAGnC,EAAE7S,EAAE+Y,cAAc3gB,IAAI4c,IAAI,EAAE,IAAIC,EAAE,SAAS,MAAMC,EAAE7mB,EAAE+J,IAAI4c,GAAGxtB,EAAEwY,EAAEgY,aAAa5f,IAAI4c,GAAG1C,GAAoCQ,EAAE5iB,EAAEqC,EAAEsiB,EAAEI,EAAvCqC,GAAGpC,EAAEJ,EAAE9U,EAAE4Y,eAAepxB,EAAEutB,EAAEpO,GAAeyO,EAAET,EAAEvc,IAAI4c,GAAG,GAAGI,EAAE,CAACA,EAAEyB,OAAO/D,EAAE4D,GAAGtB,EAAEgC,MAAM9gB,GAAG,MAAM+e,EAAE0B,GAAE3B,EAAEiC,MAAMxE,GAAGwC,EAAEA,EAAEvuB,KAAK8tB,GAAGQ,EAAEiC,MAAMxE,GAAG,CAAC+B,EAAE,MAAMD,EAAE3lB,IAAIgmB,EAAE,CAAC6B,MAAM/D,EAAEsE,MAAM,CAAC9gB,GAAG+gB,MAAM,CAACxE,CAACA,GAAG,CAAC+B,KAAK,CAAC,CAAC,OAAOD,GAAiwB+F,GAAG,CAAC1a,EAAE1J,EAAEuc,EAAE,CAAA,KAAM,GAAGvc,IAAIgkB,GAAE,MAAjtD,EAACta,EAAE1J,KAAK,MAAMuc,EAAE,IAAI5a,IAAI/H,EAAE,IAAI8P,EAAEyX,SAAS2B,iBAAiB9iB,GAAG,IAAI,MAAM/D,EAAEgV,KAAKvH,EAAE2X,aAAa,CAAC,MAAM5uB,EAAEmH,EAAEyqB,cAAczqB,EAAEyqB,cAAcpT,EAAE,GAAGvH,EAAE+Y,cAAc3gB,IAAI7F,IAAI,EAAEsgB,EAAE7jB,IAAIuD,EAAE,CAACskB,MAAM9tB,EAAEquB,MAAM,GAAGC,MAAM,CAAA,GAAI,CAAC,OAAOxE,GAAugD+H,CAAG5a,EAAE6S,GAAG,GAAa,iBAAHvc,EAAY,CAAC,MAAMse,EAAE,IAAI/B,KAAKvc,EAAEukB,aAAQ,GAAQhG,EAAEve,EAAEukB,QAAQtzB,KAAI+qB,GAAGoI,GAAG1a,EAAEsS,EAAEsC,KAAI,OAAO2F,GAAG1F,EAAED,EAAE4E,YAAY,CAAC,MAAMnB,SAASnoB,EAAEooB,YAAY/lB,EAAE6mB,cAAc7R,GAAGvH,EAAEyX,SAAS1uB,EAAE,CAACsvB,SAASnoB,EAAEooB,YAAY/lB,KAAKgV,KAAKsL,IAAIwF,SAAS3D,EAAE4D,YAAY3R,GAAG5d,EAAE4rB,EAAED,EAAEpe,GAAGwS,SAAQ8L,GAAGjO,EAAEiO,KAAI1S,QAAO0S,KAAKA,IAAGrtB,IAA1wJyY,IAAG,CAAC1J,EAAEuc,EAAE3iB,KAAC,CAAK4qB,KAAKxkB,EAAEojB,MAAsB,mBAAT1Z,EAAE0Z,MAAkB1Z,EAAE0Z,MAAMpjB,EAAEuc,EAAE3iB,GAAG8P,EAAE0Z,QAAO,EAAGD,OAAwB,mBAAVzZ,EAAEyZ,OAAmBzZ,EAAEyZ,OAAOnjB,EAAEuc,EAAE3iB,IAAc,IAAX8P,EAAEyZ,OAAYsB,UAA8B,mBAAb/a,EAAEgb,UAAsBhb,EAAEgb,UAAU1kB,EAAEuc,EAAE3iB,GAAG,IAAgkJ+qB,CAAGlyB,IAAIxB,KAAIqtB,GAA3kC,EAAC5U,EAAE1J,EAAEuc,KAAK,MAAM3iB,EAAE,IAAI8P,EAAEyX,SAAS2B,iBAAiBvG,GAAGtgB,GAAGrC,EAAEqoB,QAAQvY,EAAEyX,SAASc,QAAQiC,QAAO,CAACzF,EAAEC,KAAC,IAAQD,EAAEC,CAACA,GAAG+B,GAAE7mB,EAAE0pB,MAAM5E,IAAI,KAAI,KAAK2F,cAAcpT,EAAEsS,QAAQ9wB,EAAE4wB,SAASjF,EAAEoF,KAAKnT,GAAGzW,GAAGwpB,MAAM/E,EAAE8E,OAAO7E,GAAG,IAAI2E,GAAGM,WAAW9wB,GAAG8rB,EAAE7U,EAAE6X,OAAOzf,IAAI9B,EAAEwkB,MAAMxI,EAAEmI,GAAEza,EAAE1J,EAAEwkB,KAAKxkB,EAAEwkB,KAAK,EAAExkB,EAAEykB,UAAUlG,EAAEtiB,EAAEgV,EAAEZ,GAAG,IAAItY,EAAEymB,EAAE,GAAGxe,EAAEmjB,SAASprB,EAAE2R,EAAE6X,OAAOtC,SAASjf,EAAEwkB,OAAOxkB,EAAEojB,MAAM,CAAC,MAAM3E,GAAY,IAAVze,EAAEojB,MAAW,GAAGpjB,EAAEojB,MAAM1E,EAAED,EAAE,EAAE5vB,KAAK2V,IAAI4Z,EAAEvvB,KAAK+P,MAAMoB,EAAEwkB,KAAKlwB,OAAOmqB,IAAIA,EAAEC,IAAIF,EAAE9U,EAAE6X,OAAOjC,SAAStf,EAAEwkB,KAAK9F,GAAG,CAAC,GAAG3mB,EAAE,IAAI,MAAM0mB,EAAEC,KAAK3mB,EAAE,CAAC,MAAM4mB,EAAEF,EAAEnqB,OAAO0L,EAAEwkB,KAAKlwB,OAAO,IAAIqqB,EAAE,SAASH,GAAGqB,OAAOpB,GAAG,MAAMG,EAAEN,EAAEG,EAAEnqB,QAAQmqB,EAAEnqB,OAAO,GAAGqqB,GAAGwF,GAAEza,EAAE1J,EAAEwkB,KAAK/F,EAAEG,EAAE5e,EAAEykB,UAAU/F,EAAEziB,EAAEgV,EAAEZ,EAAE2L,EAAE,CAAC,GAAGwC,EAAE,IAAI,MAAMC,KAAKD,EAAEZ,OAAO,CAAC,MAAMc,EAAEC,GAAGH,EAAE1c,IAAI2c,GAAG,IAAIE,EAAE,SAAS,MAAMC,EAAEP,EAAEI,EAAEnqB,QAAQmqB,EAAEnqB,OAAOqqB,GAAGwF,GAAEza,EAAE1J,EAAEwkB,KAAK/F,EAAEG,EAAE5e,EAAEykB,UAAU/F,EAAEziB,EAAEgV,EAAEZ,EAAE2L,EAAE,CAAC,OAAOA,GAAsV4I,CAAGlb,EAAE4U,EAAE7rB,KAAI,OAAOwxB,GAAG5F,EAAE5rB,EAAEywB,YAAW,EAAirB,MAAM2B,GAAG1D,SAASI,OAAOe,eAAejB,aAAac,aAAajB,UAAUQ,aAAaC,gBAAgBU,QAAQI,cAAcqC,WAAWC,eAAeC,gBAAgBC,0BAA0B,WAAA70B,CAAY4P,GAAG,IAAIA,GAAGiiB,OAAO,MAAM,IAAI7vB,MAAM,gDAAgD,MAAMmqB,EAAgB,MAAdvc,EAAEgjB,aAAiC,IAAfhjB,EAAEgjB,WAAgBa,GAAE7jB,EAAEgjB,WAAW3yB,KAAK8wB,SAAS,IAAIwB,MAAK3iB,EAAEgjB,WAAWzG,EAAEuG,cAAc,IAAIG,MAAMjjB,EAAE8iB,eAAeoC,mBAAmB,IAAIzB,MAAMzjB,EAAEklB,qBAAqB70B,KAAKkxB,OAAO,IAAI/F,GAAEnrB,KAAKiyB,eAAe,EAAEjyB,KAAKgxB,aAAa,IAAI1f,IAAItR,KAAK8xB,aAAa,IAAIxgB,IAAItR,KAAK6wB,UAAU,CAAA,EAAG7wB,KAAKqxB,aAAa,IAAI/f,IAAItR,KAAKsxB,gBAAgB,GAAGtxB,KAAKgyB,QAAQ,EAAEhyB,KAAKoyB,cAAc,IAAI9gB,IAAItR,KAAKy0B,WAAW,EAAEz0B,KAAK00B,eAAe,KAAK10B,KAAK20B,gBAAgB,KAAK30B,KAAK40B,0BAA0BvB,GAAErzB,KAAK80B,UAAU90B,KAAK8wB,SAASc,OAAO,CAAC,eAAImD,GAAc,OAA4B,MAArB/0B,KAAK00B,cAAoB,CAAC,aAAIM,GAAY,OAAOh1B,KAAKy0B,UAAU,CAAC,cAAIQ,GAAa,OAAOj1B,KAAKy0B,YAAY,EAAEz0B,KAAKiyB,eAAejyB,KAAKy0B,WAAW,CAAC,iBAAIS,GAAgB,OAAOl1B,KAAKiyB,cAAc,CAAC,aAAIkD,GAAY,OAAOn1B,KAAKkxB,OAAOvU,IAAI,CAAC,MAAAvO,GAAS,MAAMuB,EAAE,GAAG,IAAI,MAAMuc,EAAE3iB,KAAKvJ,KAAKkxB,OAAO,CAAC,MAAMtlB,EAAE,CAAA,EAAG,IAAI,MAAMgV,EAAExe,KAAKmH,EAAEqC,EAAEgV,GAAGlgB,OAAO00B,YAAYhzB,GAAGuN,EAAExP,KAAK,CAAC+rB,EAAEtgB,GAAG,CAAC,MAAM,CAACspB,cAAcl1B,KAAKiyB,eAAeoD,OAAOr1B,KAAKgyB,QAAQsD,YAAY50B,OAAO00B,YAAYp1B,KAAKgxB,cAAcuE,SAASv1B,KAAK6wB,UAAU2E,YAAY90B,OAAO00B,YAAYp1B,KAAKqxB,cAAcoE,mBAAmBz1B,KAAKsxB,gBAAgBoE,aAAah1B,OAAO00B,YAAYp1B,KAAKoyB,eAAe4C,UAAUh1B,KAAKy0B,WAAWzZ,MAAMrL,EAAEua,QAAQ,EAAE,CAAC,SAAA4K,CAAUnlB,GAAG,IAAI,IAAIuc,EAAE,EAAEA,EAAEvc,EAAE1L,OAAOioB,IAAIlsB,KAAK6wB,UAAUlhB,EAAEuc,IAAIA,CAAC,EAAO,MCS3wYyJ,GAA0BxB,IACrC,MAAMyB,EAAgBzB,EAAK3B,cACrBqD,EAAe,IAAIhf,IAAI,CAAC+e,IAExBE,EAAyC,CAC7C9V,EAAG,CAAC,IAAK,IAAK,KACd+N,EAAG,CAAC,KACJpe,EAAG,CAAC,IAAK,IAAK,IAAK,KACnBvN,EAAG,CAAC,IAAK,KACTmH,EAAG,CAAC,IAAK,KACT0kB,EAAG,CAAC,IAAK,IAAK,KACd8H,GAAI,CAAC,KACLC,GAAI,CAAC,KACLC,GAAI,CAAC,MAGP,IAAK,MAAOnzB,EAAMozB,KAAYx1B,OAAOC,QAAQm1B,GACvCF,EAAc5Q,SAASliB,IACzBozB,EAAQllB,SAASmlB,IACfN,EAAa7e,IAAI4e,EAAcQ,QAAQtzB,EAAMqzB,GAAQ,IAGzDD,EAAQllB,SAASmlB,IACXP,EAAc5Q,SAASmR,IACzBN,EAAa7e,IAAI4e,EAAcQ,QAAQD,EAAQrzB,GACjD,IAIJ,OAAO2M,MAAMxO,KAAK40B,EAAa,EC3BjC,IAAYQ,GAUN,SAAUC,GAAqBlqB,GACnC,OAAQA,GACN,KAAK,EACL,IAAK,4BACH,OAAOiqB,GAAaE,0BACtB,KAAK,EACL,IAAK,wCACH,OAAOF,GAAaG,sCACtB,KAAK,EACL,IAAK,wBACH,OAAOH,GAAaI,sBACtB,KAAK,EACL,IAAK,8BACH,OAAOJ,GAAaK,4BACtB,KAAK,EACL,IAAK,6BACH,OAAOL,GAAaM,2BACtB,KAAK,EACL,IAAK,8BACH,OAAON,GAAaO,4BAGtB,QACE,OAAOP,GAAa3pB,aAE1B,EAnCA,SAAY2pB,GACVA,EAAAA,EAAA,0BAAA,GAAA,4BACAA,EAAAA,EAAA,sCAAA,GAAA,wCACAA,EAAAA,EAAA,sBAAA,GAAA,wBACAA,EAAAA,EAAA,4BAAA,GAAA,8BACAA,EAAAA,EAAA,2BAAA,GAAA,6BACAA,EAAAA,EAAA,4BAAA,GAAA,8BACAA,EAAAA,EAAA,cAAA,GAAA,cACD,CARD,CAAYA,KAAAA,GAAY,CAAA,IAqFjB,MAAMQ,GAAyB,CACpC,MAAAxvB,CAAOwG,EAAeC,EAAuB,IAAIhG,GAC1B,KAAjB+F,EAAQoC,MACVnC,EAAOpF,OAAO,IAAIU,OAAOyE,EAAQoC,WAENnJ,IAAzB+G,EAAQipB,cACVhpB,EAAOpF,OAAO,IAAIU,OAAOyE,EAAQipB,mBAEfhwB,IAAhB+G,EAAQia,KACVha,EAAOpF,OAAO,IAAIW,MAAMwE,EAAQia,UAEdhhB,IAAhB+G,EAAQkpB,KACVjpB,EAAOpF,OAAO,IAAIW,MAAMwE,EAAQkpB,KAElCjpB,EAAOpF,OAAO,IAAIJ,OAClB,IAAK,MAAMxH,KAAK+M,EAAQmpB,SACtBlpB,EAAOpF,OAAO5H,GAYhB,OAVAgN,EAAO/M,YACgB+F,IAAnB+G,EAAQwZ,QACVvZ,EAAOpF,OAAO,IAAIA,OAAOmF,EAAQwZ,QAEN,IAAzBxZ,EAAQopB,cACVnpB,EAAOpF,OAAO,IAAIO,MAAM4E,EAAQopB,mBAETnwB,IAArB+G,EAAQqN,UACVpN,EAAOpF,OAAO,IAAIU,OAAOyE,EAAQqN,UAE5BpN,CACT,EAEA,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EA9CD,CACLoC,KAAM,GACN6mB,kBAAchwB,EACdghB,SAAKhhB,EACLiwB,SAAKjwB,EACLkwB,SAAU,GACV3P,YAAQvgB,EACRmwB,aAAc,EACd/b,cAAUpU,GAuCV,KAAOkH,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,KAARA,EACF,MAGFgF,EAAQoC,KAAOjC,EAAO5E,SACtB,SAEF,KAAK,EACH,GAAY,KAARP,EACF,MAGFgF,EAAQipB,aAAe9oB,EAAO5E,SAC9B,SAEF,KAAK,EACH,GAAY,KAARP,EACF,MAGFgF,EAAQia,IAAM9Z,EAAO3E,QACrB,SAEF,KAAK,EACH,GAAY,KAARR,EACF,MAGFgF,EAAQkpB,IAAM/oB,EAAO3E,QACrB,SAEF,KAAK,EACH,GAAY,KAARR,EAAY,CACdgF,EAAQmpB,SAAS72B,KAAK6N,EAAOtF,UAE7B,QACF,CAEA,GAAY,KAARG,EAAY,CACd,MAAMkH,EAAO/B,EAAOtF,SAAWsF,EAAOpM,IACtC,KAAOoM,EAAOpM,IAAMmO,GAClBlC,EAAQmpB,SAAS72B,KAAK6N,EAAOtF,UAG/B,QACF,CAEA,MAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQwZ,OAASrZ,EAAOtF,SACxB,SAEF,KAAK,EACH,GAAY,KAARG,EACF,MAGFgF,EAAQopB,aAAejpB,EAAO/E,QAC9B,SAEF,KAAK,EACH,GAAY,KAARJ,EACF,MAGFgF,EAAQqN,SAAWlN,EAAO5E,SAC1B,SAGJ,GAAkB,IAAP,EAANP,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CACL6D,KAAM/B,GAAM9B,EAAO6D,MAAQhL,WAAWzB,OAAO4I,EAAO6D,MAAQ,GAC5D6mB,aAAc5oB,GAAM9B,EAAO0qB,cAAgB7xB,WAAWzB,OAAO4I,EAAO0qB,mBAAgBhwB,EACpFghB,IAAK5Z,GAAM9B,EAAO0b,KAAO7iB,WAAW9B,OAAOiJ,EAAO0b,UAAOhhB,EACzDiwB,IAAK7oB,GAAM9B,EAAO2qB,KAAO9xB,WAAW9B,OAAOiJ,EAAO2qB,UAAOjwB,EACzDkwB,SAAU/xB,WAAWwK,MAAMC,QAAQtD,eAAAA,EAAQ4qB,UAAY5qB,EAAO4qB,SAASp2B,KAAK+O,GAAW1K,WAAW9B,OAAOwM,KAAM,GAC/G0X,OAAQnZ,GAAM9B,EAAOib,QAAUpiB,WAAW9B,OAAOiJ,EAAOib,aAAUvgB,EAClEmwB,aAAc/oB,GAAM9B,EAAO6qB,cAAgBX,GAAqBlqB,EAAO6qB,cAAgB,EACvF/b,SAAUhN,GAAM9B,EAAO8O,UAAYjW,WAAWzB,OAAO4I,EAAO8O,eAAYpU,IAI5E,MAAAsH,CAAOP,SACL,MAAMQ,EAAW,CAAA,EAyBjB,MAxBqB,KAAjBR,EAAQoC,OACV5B,EAAI4B,KAAOpC,EAAQoC,WAEQnJ,IAAzB+G,EAAQipB,eACVzoB,EAAIyoB,aAAejpB,EAAQipB,mBAEThwB,IAAhB+G,EAAQia,MACVzZ,EAAIyZ,IAAMja,EAAQia,UAEAhhB,IAAhB+G,EAAQkpB,MACV1oB,EAAI0oB,IAAMlpB,EAAQkpB,MAEA,UAAhBlpB,EAAQmpB,gBAAQ,IAAAtoB,OAAA,EAAAA,EAAEzK,UACpBoK,EAAI2oB,SAAWnpB,EAAQmpB,SAASp2B,KAAK+O,GAAMnR,KAAK+P,MAAMoB,WAEjC7I,IAAnB+G,EAAQwZ,SACVhZ,EAAIgZ,OAAS7oB,KAAK+P,MAAMV,EAAQwZ,SAEL,IAAzBxZ,EAAQopB,eACV5oB,EAAI4oB,aA3MJ,SAA6B7qB,GACjC,OAAQA,GACN,KAAKiqB,GAAaE,0BAChB,MAAO,4BACT,KAAKF,GAAaG,sCAChB,MAAO,wCACT,KAAKH,GAAaI,sBAChB,MAAO,wBACT,KAAKJ,GAAaK,4BAChB,MAAO,8BACT,KAAKL,GAAaM,2BAChB,MAAO,6BACT,KAAKN,GAAaO,4BAChB,MAAO,8BACT,KAAKP,GAAa3pB,aAClB,QACE,MAAO,eAEb,CAyLyBwqB,CAAmBrpB,EAAQopB,oBAEvBnwB,IAArB+G,EAAQqN,WACV7M,EAAI6M,SAAWrN,EAAQqN,UAElB7M,CACT,EAEAG,OAA8C1L,GACrC+zB,GAAKpoB,YAAY3L,QAAAA,EAAS,IAEnC,WAAA2L,CAAmDrC,uBACjD,MAAMyB,EAnLD,CACLoC,KAAM,GACN6mB,kBAAchwB,EACdghB,SAAKhhB,EACLiwB,SAAKjwB,EACLkwB,SAAU,GACV3P,YAAQvgB,EACRmwB,aAAc,EACd/b,cAAUpU,GAoLV,OARA+G,EAAQoC,KAAkB,QAAXvB,EAAAtC,EAAO6D,YAAI,IAAAvB,EAAAA,EAAI,GAC9Bb,EAAQipB,aAAkC,QAAnBnoB,EAAAvC,EAAO0qB,oBAAY,IAAAnoB,EAAAA,OAAI7H,EAC9C+G,EAAQia,IAAgB,QAAVlZ,EAAAxC,EAAO0b,WAAG,IAAAlZ,EAAAA,OAAI9H,EAC5B+G,EAAQkpB,IAAgB,QAAVloB,EAAAzC,EAAO2qB,WAAG,IAAAloB,EAAAA,OAAI/H,EAC5B+G,EAAQmpB,UAA0B,UAAf5qB,EAAO4qB,gBAAQ,IAAAvmB,OAAA,EAAAA,EAAE7P,KAAK+O,GAAMA,MAAM,GACrD9B,EAAQwZ,OAAsB,QAAb8P,EAAA/qB,EAAOib,cAAM,IAAA8P,EAAAA,OAAIrwB,EAClC+G,EAAQopB,aAAkC,QAAnBG,EAAAhrB,EAAO6qB,oBAAY,IAAAG,EAAAA,EAAI,EAC9CvpB,EAAQqN,SAA0B,QAAfmc,EAAAjrB,EAAO8O,gBAAQ,IAAAmc,EAAAA,OAAIvwB,EAC/B+G,CACT,GAOK,MAAMypB,GAAiC,CAC5C,MAAAjwB,CAAOwG,EAAmBC,EAAuB,IAAIhG,GACnD,IAAK,MAAMhH,KAAK+M,EAAQH,MACtBmpB,GAAKxvB,OAAOvG,EAAIgN,EAAOpF,OAAO,IAAIJ,QAAQvH,OAE5C,OAAO+M,CACT,EAEA,MAAAvG,CAAOwG,EAAkC9J,GACvC,MAAM+J,EAASD,aAAiBpD,EAAeoD,EAAQ,IAAIpD,EAAaoD,GAClE9K,OAAiB6D,IAAX7C,EAAuB+J,EAAO7F,IAAM6F,EAAOpM,IAAMqC,EACvD4J,EAdD,CAAEH,MAAO,IAed,KAAOM,EAAOpM,IAAMqB,GAAK,CACvB,MAAM4F,EAAMmF,EAAOtF,SACnB,OAAQG,IAAQ,GACd,KAAK,EACH,GAAY,KAARA,EACF,MAGFgF,EAAQH,MAAMvN,KAAK02B,GAAKtvB,OAAOyG,EAAQA,EAAOtF,WAC9C,SAGJ,GAAkB,IAAP,EAANG,IAA0B,IAARA,EACrB,MAEFmF,EAAOjD,KAAW,EAANlC,EACd,CACA,OAAOgF,CACT,EAEAI,SAAS7B,IACA,CAAEsB,MAAOzI,WAAWwK,MAAMC,QAAQtD,eAAAA,EAAQsB,OAAStB,EAAOsB,MAAM9M,KAAK+O,GAAWknB,GAAK5oB,SAAS0B,KAAM,KAG7G,MAAAvB,CAAOP,SACL,MAAMQ,EAAW,CAAA,EAIjB,OAHiB,UAAbR,EAAQH,aAAK,IAAAgB,OAAA,EAAAA,EAAEzK,UACjBoK,EAAIX,MAAQG,EAAQH,MAAM9M,KAAK+O,GAAMknB,GAAKzoB,OAAOuB,MAE5CtB,CACT,EAEAG,OAAkD1L,GACzCw0B,GAAS7oB,YAAY3L,QAAAA,EAAS,IAEvC,WAAA2L,CAAuDrC,SACrD,MAAMyB,EAnDD,CAAEH,MAAO,IAqDd,OADAG,EAAQH,OAAoB,QAAZgB,EAAAtC,EAAOsB,aAAK,IAAAgB,OAAA,EAAAA,EAAE9N,KAAK+O,GAAMknB,GAAKpoB,YAAYkB,OAAO,GAC1D9B,CACT,GAeF,SAASK,GAAM/J,GACb,OAAOA,OACT,CCrVA,MAaaozB,GAAqB7pB,IACK,CACnCA,MAAOA,EAAM9M,KAAKuD,IAAUqzB,MAdvB,CACLvnB,MAFmB+B,EAeuB7N,GAb/B8L,KACX6mB,aAAc9kB,EAAK8kB,aACnBhP,IAAK9V,EAAK8V,IACViP,IAAK/kB,EAAK+kB,IACVC,SAAUhlB,EAAKglB,SACf3P,OAAQrV,EAAKqV,OACb4P,aAAcQ,GAAsBzlB,EAAKilB,cACzC/b,SAAUlJ,EAAKkJ,UATG,IAAClJ,CAe6B,MAoBvC0lB,GAAuBC,GAC3BA,EAAcjqB,MAAM9M,KAAI,CAACuD,EAAOyzB,KACrCC,MAfK,CACLt3B,GAcgBq3B,EAbhBd,cAHqCgB,EAgBb3zB,GAbA2yB,aACxB7mB,KAAM6nB,EAAU7nB,KAChB6X,IAAKgQ,EAAUhQ,IACfiP,IAAKe,EAAUf,IACfC,SAAUc,EAAUd,SACpB3P,OAAQyQ,EAAUzQ,OAClB4P,aAAcc,GAAuBD,EAAUb,cAC/C/b,SAAU4c,EAAU5c,UAVA,IAAiB4c,CAgBP,IAI5BC,GACJC,IAEA,OAAQA,GACN,KAAKC,GAAkBzB,sCACrB,MAAO,0BACT,KAAKyB,GAAkBxB,sBACrB,MAAO,UACT,KAAKwB,GAAkBvB,4BACrB,MAAO,gBACT,KAAKuB,GAAkBtB,2BACrB,MAAO,eACT,KAAKsB,GAAkBrB,4BACrB,MAAO,gBACT,KAAKqB,GAAkB1B,0BACrB,MAAM,IAAIx0B,MAAM,uCAClB,KAAKk2B,GAAkBvrB,aACrB,MAAM,IAAI3K,MAAM,0CAIhB01B,GACJR,IAEA,OAAQA,GACN,IAAK,0BACH,OAAOgB,GAAkBzB,sCAC3B,IAAK,UACH,OAAOyB,GAAkBxB,sBAC3B,IAAK,gBACH,OAAOwB,GAAkBvB,4BAC3B,IAAK,eACH,OAAOuB,GAAkBtB,2BAC3B,IAAK,gBACH,OAAOsB,GAAkBrB,oCCjElBsB,GAOX,WAAAn4B,CAAY2N,SACV1N,KAAK0N,MAAQA,EACb1N,KAAKm4B,eAAiB,IAAI7mB,IAC1B,MAAM8mB,EAAW,IAAI9mB,IACrBtR,KAAKq4B,WAAa,GAClB,IAAK,IAAI93B,EAAK,EAAGA,EAAKmN,EAAMzJ,OAAQ1D,IAAM,CAExC,MAAMyR,EAAOtE,EAAMnN,QAEOuG,IAAtBkL,EAAK8kB,cACP92B,KAAKm4B,eAAe9vB,IAAI2J,EAAK8kB,aAAcv2B,GAG7C,MAAM+3B,EAA6B,QAAX5pB,EAAAsD,EAAKqV,cAAM,IAAA3Y,EAAAA,EAAInO,EAClC63B,EAASpgB,IAAIsgB,IAChBF,EAAS/vB,IAAIiwB,EAAiB,CAC5B/3B,GAAI+3B,EAEJroB,KAAM+B,EAAKqV,OAASrnB,KAAK0N,MAAMsE,EAAKqV,QAASpX,KAAO+B,EAAK/B,OAIzD+B,EAAK8V,KAAO9V,EAAK+kB,KACnB/2B,KAAKq4B,WAAWl4B,KAAK,CACnBI,GAAIA,EACJunB,IAAK9V,EAAK8V,IACViP,IAAK/kB,EAAK+kB,KAGhB,CACA/2B,KAAKu4B,UJtDg3Y,IAAI/D,GIsD51Y,CAC3B5C,OAAQ,CAAC,QACTO,YAAa,CAAC,MACdM,cAAe,CAAEK,QAAQ,EAAMC,MAAO,IACtCpB,YAAagE,KAEf,MAAM6C,EAAa/oB,MAAMxO,KAAKm3B,EAAS7Y,UJ5DqkO,EAAClG,EAAE1J,KAAK,IAAI,MAAMuc,KAAKvc,EAAE4hB,GAAElY,EAAE6S,EAAC,EI6D1oOuM,CAAOz4B,KAAKu4B,UAAWC,GACvBx4B,KAAK04B,SAAW,IAAIC,GAAO34B,KAAKq4B,WAAWp0B,QAC3C,IAAK,IAAI7B,EAAI,EAAGA,EAAIpC,KAAKq4B,WAAWp0B,OAAQ7B,IAAK,CAE/C,MAAM0lB,IAAEA,EAAGiP,IAAEA,GAAQ/2B,KAAKq4B,WAAWj2B,GACrCpC,KAAK04B,SAAS1hB,IAAI+f,EAAKjP,EACzB,CACA9nB,KAAK04B,SAASzwB,QAChB,CAQA,eAAOoP,CAASC,GACd,MAAMtJ,EAAS,IAAIrD,EAAa2M,GAC1BqgB,EAAgBiB,GAAcrxB,OAAOyG,GAE3C,OAAO,IAAIkqB,GAAWR,GAAoBC,GAC5C,CAOA,SAAA3kB,GACE,MAAM2kB,EAA+BJ,GAAkBv3B,KAAK0N,OAEtDI,EAAS,IAAIhG,EAEnB,OADA8wB,GAAcvxB,OAAOswB,EAAe7pB,GAC7BA,EAAO7F,QAChB,CAOA,IAAA0U,GACE,OAAO3c,KAAK0N,MAAMzJ,MACpB,CASA,eAAA40B,CAAgB5W,EAAe6W,EAAa,GAI1C,MJrHmjU,EAACzf,EAAE1J,EAAEuc,EAAE,MAAM,MAAMuG,cAAclpB,GAAG8P,EAAEyX,SAASllB,EAAE,IAAIrC,KAAK2iB,GAAGtL,EAAEmT,GAAG1a,EAAE1J,EAAEuc,GAAG9pB,EAAE,GAAG,IAAI,MAAM2rB,GAAGmC,MAAMlQ,EAAEyQ,MAAMzC,EAAE0C,MAAMzC,MAAMrN,EAAE,CAAC,MAAMsN,EAAEF,EAAE/pB,QAAQ,EAAE0nB,EAAE,CAACprB,GAAG8Y,EAAE2X,aAAavf,IAAIsc,GAAGmC,MAAMlQ,EAAEkO,EAAEuC,MAAM/vB,OAAO6sB,KAAKU,GAAG8K,WAAW/K,EAAE0C,MAAMzC,GAAGvtB,OAAOyW,OAAOwU,EAAEtS,EAAE+Y,cAAc3gB,IAAIsc,KAAe,MAAVniB,EAAE2P,QAAc3P,EAAE2P,OAAOoQ,KAAKvpB,EAAEjC,KAAKwrB,EAAE,CAAC,OAAOhc,IAAIgkB,IAAoB,MAAjB/nB,EAAEooB,eAAqB5xB,EAAE2d,KAAKkQ,IAAI7tB,GIkHn4U42B,CAAOh5B,KAAKu4B,UAAWtW,GAAOrhB,KAC3CyD,GAAyBrE,KAAK0N,MAAMrJ,EAAO9D,MAE/BsC,MAAM,EAAGi2B,EAC1B,CAWA,mBAAAG,CACEnR,EACAiP,EACA+B,EAAa,EACbI,EAAS,IAET,MAAMC,ENjIH,SAAgBne,EAAO6M,EAAKC,EAAKgR,EAAa5V,IAAUkW,EAAclW,KACzE,IAAImW,EAAkB,EACtB,MAAMh1B,EAAS,QAEIyC,IAAfgyB,IAA0BA,EAAa5V,UACvBpc,IAAhBsyB,IAA2BC,EAAkBhR,GAAS+Q,EAR1C,OAWhB,MAAM9G,EAAI,IAAI1L,GAAU,GAAIiC,IAG5B,IAAIb,EAAO,CACPR,KAAM,EACNC,MAAOzM,EAAM8P,IAAI7mB,OAAS,EAC1BynB,KAAM,EAENzD,QAAQ,IACRE,QAAQ,GACRD,OAAQ,IACRE,OAAQ,IAGZ,MAAML,EAASvpB,KAAK4qB,IAAItB,EAAMJ,IAE9B,KAAOM,GAAM,CACT,MAAMP,EAAQO,EAAKP,MACbD,EAAOQ,EAAKR,KAElB,GAAIC,EAAQD,GAAQxM,EAAMoP,SAGtB,IAAK,IAAIhoB,EAAIolB,EAAMplB,GAAKqlB,EAAOrlB,IAAK,CAChC,MAAM7B,EAAKya,EAAM8P,IAAI1oB,GACY,CAC7B,MAAM0mB,EAAOO,GAAaxB,EAAKC,EAAK9M,EAAM+P,OAAO,EAAI3oB,GAAI4Y,EAAM+P,OAAO,EAAI3oB,EAAI,GAAI2lB,GAClFuK,EAAEnyB,KAAK,CAACI,KAAIuoB,QAChB,CACJ,KAEG,CAEH,MAAM6C,EAAKnE,EAAOC,GAAU,EACtB6R,EAASte,EAAM+P,OAAO,EAAIY,GAC1B4N,EAASve,EAAM+P,OAAO,EAAIY,EAAI,GAG9BprB,EAAKya,EAAM8P,IAAIa,GACY,CAC7B,MAAM7C,EAAOO,GAAaxB,EAAKC,EAAKwR,EAAQC,EAAQxR,GACpDuK,EAAEnyB,KAAK,CAACI,KAAIuoB,QAChB,CAEA,MAAM0Q,GAAYxR,EAAK0D,KAAO,GAAK,EAG7B+N,EAAW,CACbjS,OACAC,MAAOkE,EAAI,EACXD,KAAM8N,EACNvR,OAAQD,EAAKC,OACbE,OAAQH,EAAKG,OACbD,OAAsB,IAAdF,EAAK0D,KAAa4N,EAAStR,EAAKE,OACxCE,OAAsB,IAAdJ,EAAK0D,KAAa6N,EAASvR,EAAKI,OACxCU,KAAM,GAGJ4Q,EAAY,CACdlS,KAAMmE,EAAI,EACVlE,QACAiE,KAAM8N,EACNvR,OAAsB,IAAdD,EAAK0D,KAAa4N,EAAStR,EAAKC,OACxCE,OAAsB,IAAdH,EAAK0D,KAAa6N,EAASvR,EAAKG,OACxCD,OAAQF,EAAKE,OACbE,OAAQJ,EAAKI,OACbU,KAAM,GAGV2Q,EAAS3Q,KAAOlB,GAAQC,EAAKC,EAAKC,EAAQ0R,GAC1CC,EAAU5Q,KAAOlB,GAAQC,EAAKC,EAAKC,EAAQ2R,GAG3CpH,EAAEnyB,KAAKs5B,GACPnH,EAAEnyB,KAAKu5B,EACX,CAKA,KAAOpH,EAAEruB,QAAyB,MAAfquB,EAAElL,OAAO7mB,IAAY,CACpC,MAAMo5B,EAAYrH,EAAE7pB,MACpB,GAAIkxB,EAAU7Q,KAAOuQ,EAAiB,OAAOh1B,EAE7C,GADAA,EAAOlE,KAAKw5B,EAAUp5B,IAClB8D,EAAOJ,SAAW60B,EAAY,OAAOz0B,CAC7C,CAGA2jB,EAAOsK,EAAE7pB,KACb,CAEA,OAAOpE,CACX,CM6ByBu1B,CACnB55B,KAAK04B,SACL3B,EACAjP,EACAgR,EACAI,GACAt4B,KAAKL,IACL,MAAMs5B,EAAY75B,KAAKq4B,WAAW93B,GAClC,OAAOP,KAAK0N,MAAMmsB,EAAUt5B,GAAW,IAEzC,OAAO44B,CACT,CAQA,YAAA5a,CAAahe,GACX,OAAOP,KAAK0N,MAAMnN,EACpB,CAQA,sBAAAmc,CAAuBoa,GACrB,MAAMvlB,EAASvR,KAAKm4B,eAAe1mB,IAAIqlB,GACvC,QAAehwB,IAAXyK,EAGJ,OAAOvR,KAAKue,aAAahN,EAC3B,CAKA,eAAA+K,CAAgB/b,WACd,MAAMyR,EAAOhS,KAAK0N,MAAMnN,GACxB,IAAKyR,EACH,MAAO,GAET,MAAMsK,EAAkBtK,EAAKqV,OACS,QAAjC1Y,EAAuB,QAAvBD,EAAA1O,KAAK0N,MAAMsE,EAAKqV,eAAO,IAAA3Y,OAAA,EAAAA,EAAEsoB,gBAAQ,IAAAroB,EAAAA,EAAI,GACtCqD,EAAKglB,SACT,OAAOvnB,MAAMxO,KAAK,IAAI4V,IAAI,CAACtW,KAAO+b,KAAmB1b,KAClD2Q,GAAWvR,KAAK0N,MAAM6D,IAE3B,CAOA,EAAE5K,OAAOgd,YACP,IAAK,MAAM3R,KAAQhS,KAAK0N,YAChBsE,CAEV,kB3BrDA,WAAAjS,CAAYsE,GACVrE,KAAKqE,OAASA,CAChB,CAKQ,aAAAy1B,CAAcvoB,GACpB,MAAO,KAAKA,GACd,CAKQ,iBAAAwoB,CACNnb,EACAC,EACAzP,EACAb,GAEA,MAAO,KAAKqQ,KAAcC,KAAYzP,KAAWb,GACnD,CAKQ,kBAAAyrB,CACNpb,EACAC,EACAtQ,GAEA,MAAO,KAAKqQ,KAAcC,KAAYtQ,GACxC,CAKQ,gBAAA0rB,CAAiBrb,EAAoBC,GAC3C,MAAO,UAAUD,KAAcC,GACjC,CAKQ,kBAAAqb,CACNtb,EACAC,EACAtQ,GAEA,MAAO,gBAAgBqQ,KAAcC,KAAYtQ,GACnD,CAKQ,aAAA4rB,CAAc5rB,SACpB,GAAc,IAAVA,EACF,OAAOxP,EAAWC,OAAOE,aAG3B,MAAMk7B,EAAa57B,KAAK2V,IAAI5F,EAAQ,EAAGxP,EAAWC,OAAOC,OAAOgF,OAAS,GACzE,OAA2C,QAApCyK,EAAA3P,EAAWC,OAAOC,OAAOm7B,UAAW,IAAA1rB,EAAAA,EAAI,SACjD,CAKQ,mBAAA2rB,CACNC,EACA9Y,GAEA,OAAI8Y,EACKv7B,EAAWC,OAAOG,cAEvBqiB,EACKziB,EAAWC,OAAOI,mBAEpBL,EAAWC,OAAOK,cAC3B,CAKQ,eAAAk7B,CAAgBC,GACtB,OAAOA,EACJpE,QAAQ,MAAO,QACfA,QAAQ,KAAM,OACdA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,MACpB,CAKQ,cAAAqE,CAAelpB,GACrB,MAAMS,EAAOhS,KAAKqE,OAAO0X,WAAWwC,aAAahN,GACjD,IAAKS,EACH,MAAO,iBAAiBT,KAG1B,MAAMmpB,EAAc16B,KAAKu6B,gBAAgBvoB,EAAK/B,MACxC0qB,EAAkB3oB,EAAKkJ,SACzBlb,KAAKu6B,gBAAgBvoB,EAAKkJ,UAC1B,GAEJ,OAAOyf,EACH,GAAGD,WAAqBC,IACxBD,CACN,CAKQ,cAAAE,CAAerpB,SAOrB,MAAO,CAAE+oB,cAHwDxzB,KAAf,UAAjC9G,KAAKqE,OAAOyX,aAAawB,MAAM,UAAE,IAAA5O,OAAA,EAAAA,EAAG6C,IAGlCiQ,cADjBxhB,KAAKqE,OAAOyX,aAAatM,aAAawV,SAASzT,GAEnD,CAKQ,wBAAAspB,CAAyBl7B,GAC/B,MAAM6V,EAAQxV,KAAKqE,OAAO2X,UAAU/D,SAAStY,EAAKyP,SAClD,OAAOoG,aAAK,EAALA,EAAOjE,OAAO5R,EAAKwP,UAC5B,CAKQ,sBAAA2rB,CAAuBn7B,GAC7B,MAAM6V,EAAQxV,KAAKqE,OAAO2X,UAAU/D,SAAStY,EAAKyP,SAClD,OAAOoG,aAAK,EAALA,EAAOjE,OAAO5R,EAAKke,gBAC5B,CAKQ,iBAAAkd,CAAkBxpB,GAExB,IADavR,KAAKqE,OAAO0X,WAAWwC,aAAahN,GAE/C,OAAO,KAGT,MAAMypB,EAAch7B,KAAKy6B,eAAelpB,GAClC0pB,EAAYj7B,KAAKu6B,gBAAgB/2B,OAAO+N,IACxC2pB,EAASl7B,KAAK85B,cAAcvoB,GAC5B4pB,EAAcn7B,KAAK46B,eAAerpB,GAMxC,MAAO,MAAM2pB,cAAmBF,OAAiBC,wCAL/Bj7B,KAAKq6B,oBACrBc,EAAYb,SACZa,EAAY3Z,mBAIhB,CAKQ,iBAAA4Z,CAAkBz7B,EAAmB4O,GAC3C,MAAMiH,EAAQxV,KAAKqE,OAAO2X,UAAU/D,SAAStY,EAAKyP,SAClD,IAAKoG,EACH,MAAO,GAGT,MAAMoJ,EAAapJ,EAAMjE,OAAO5R,EAAKwP,WAC/B0P,EAAWrJ,EAAMjE,OAAO5R,EAAKke,iBAC7Bwd,EAAar7B,KAAK85B,cAAclb,GAChC0c,EAAWt7B,KAAK85B,cAAcjb,GAC9B0c,EAAav7B,KAAKm6B,cAAc5rB,GAChCitB,EAAcx7B,KAAK+5B,kBACvBnb,EACAC,EACAlf,EAAKyP,QACLb,GAGIktB,EAAmBz7B,KAAKqE,OAAO2X,UAAU5D,oBAAoB5C,GAC7DkmB,EAAYD,EAAiBxrB,KAC7B0rB,EAAYF,EAAiB1yB,KAE7BuJ,EAAgBjU,EACpBmX,EAAM7B,cAAchU,EAAKwP,UAAWxP,EAAK0P,YAErCgD,EAAchU,EAAasB,EAAK2T,SAEhCsoB,EAAmB57B,KAAKu6B,gBAAgBmB,GAK9C,MAAO,CACL,MAAMF,cAHU,GAFOx7B,KAAKu6B,gBAAgBoB,MAELC,OADvB,GAAGj8B,EAAKyP,WAAWzP,EAAK0P,iBACoCiD,OAAmBD,yDAGFkpB,OAC7F,MAAMF,UAAmBG,cAAwBD,OACjD,MAAMC,UAAoBF,cAAqBC,OAEnD,CAMQ,gBAAAM,CAAiBl8B,GACvB,MAAM07B,EAAar7B,KAAK85B,cAAcn6B,EAAKsB,MACrCq6B,EAAWt7B,KAAK85B,cAAcn6B,EAAKuB,IACnC46B,EAAQ/8B,EAAWC,OAAOE,aAC1B68B,EAAS/7B,KAAKi6B,iBAAiBt6B,EAAKsB,KAAMtB,EAAKuB,IAGrD,MAAO,CACL,MAAM66B,cAHM,UAAUl9B,EAAiBc,EAAKb,0EAGiDg9B,OAC7F,MAAMT,UAAmBU,cAAmBD,sBAC5C,MAAMC,UAAeT,cAAqBQ,sBAE9C,CAKQ,kBAAAE,CAAmBr8B,EAAoB4O,GAC7C,MAAM8sB,EAAar7B,KAAK85B,cAAcn6B,EAAKsB,MACrCq6B,EAAWt7B,KAAK85B,cAAcn6B,EAAKuB,IACnCq6B,EAAav7B,KAAKm6B,cAAc5rB,GAChC0tB,EAAiBj8B,KAAKg6B,mBAAmBr6B,EAAKsB,KAAMtB,EAAKuB,GAAIqN,GAE7D6K,OACqBtS,IAAzBnH,EAAKqP,gBACDnQ,EAAiBc,EAAKqP,iBACtB,MAIN,MAAO,CACL,MAAMitB,cAHU,cADUj8B,KAAKu6B,gBAAgBnhB,mEAI0DmiB,OACzG,MAAMF,UAAmBY,cAA2BV,sBACpD,MAAMU,UAAuBX,cAAqBC,sBAEtD,CAKQ,sBAAAW,CACN1d,EACAC,EACAlQ,WAEA,MAAMqQ,EAAa5e,KAAK86B,uBAAuBtc,GACzCK,EAAW7e,KAAK66B,yBAAyBpc,GAC/C,IAAKG,IAAeC,EAClB,MAAO,GAGT,MAAMsd,EAAgBn8B,KAAK85B,cAAclb,GACnCwd,EAAcp8B,KAAK85B,cAAcjb,GACjC0c,EAAav7B,KAAKm6B,cAAc5rB,GAChC8tB,EAAqBr8B,KAAKk6B,mBAC9Btb,EACAC,EACAtQ,GAGImQ,EAAY1e,KAAKqE,OAAO2X,UAAU/D,SAASuG,EAASpP,SACpDuP,EAAU3e,KAAKqE,OAAO2X,UAAU/D,SAASwG,EAAOrP,SAEhDktB,EAAuB5d,EACzB1e,KAAKqE,OAAO2X,UAAU5D,oBAAoBsG,GAC1C,KACE6d,EAAqB5d,EACvB3e,KAAKqE,OAAO2X,UAAU5D,oBAAoBuG,GAC1C,KAEE6d,EACsB,QAA1B9tB,EAAA4tB,eAAAA,EAAsBrsB,YAAI,IAAAvB,EAAAA,EAAI,SAASlL,OAAOgb,EAASpP,WACnDqtB,EACoB,QAAxB9tB,EAAA4tB,eAAAA,EAAoBtsB,YAAI,IAAAtB,EAAAA,EAAI,SAASnL,OAAOib,EAAOrP,WAE/CstB,GAAgBJ,aAAoB,EAApBA,EAAsBvzB,OAAQ,UAC9C4zB,GAAcJ,aAAkB,EAAlBA,EAAoBxzB,OAAQ,UAE1C6zB,EAAkBv+B,EAAamgB,EAASlL,SACxCupB,EAAkBle,EACpBtgB,EAAasgB,EAAQhL,cAAc8K,EAAOtP,UAAWsP,EAAOpP,YAC5D,MAEEytB,EAAuB98B,KAAKu6B,gBAAgBiC,GAC5CO,EAAqB/8B,KAAKu6B,gBAAgBkC,GAC1CO,EAAuBh9B,KAAKu6B,gBAAgBmC,GAC5CO,EAAqBj9B,KAAKu6B,gBAAgBoC,GAK1CO,EAAY,GAAGF,KAAwBF,MAHvB,GAAGte,EAASpP,WAAWoP,EAASnP,gBAGkCutB,WAAyBK,KAAsBF,MAFnH,GAAGte,EAAOrP,WAAWqP,EAAOpP,gBAE8HwtB,KAExKv9B,iBAAEA,GAAqBP,EAAWC,QAChCQ,aAAcD,EAAUE,iBAAkB09B,GAChDp+B,EAAWQ,SAEb,MAAO,CACL,MAAM88B,cAA+Ba,gDAAwD59B,aAA4Bi8B,gBAAyBh8B,OAClJ,MAAM48B,UAAsBE,cAA+Bd,6BAAsC4B,OACjG,MAAMd,UAA2BD,cAAwBb,6BAAsC4B,OAEnG,CAKQ,eAAAC,GACN,MAAMC,EAAW,IAAIxmB,IACfyG,EAAQtd,KAAKqE,OAAOyX,aAAawB,MAEvC,IAAK,MAAMggB,KAAchgB,EACvB,IAAK,IAAI/L,EAAS,EAAGA,EAAS+rB,EAAWr5B,OAAQsN,IAAU,CACzD,MAAM5R,EAAO29B,EAAW/rB,GACxB,QAAazK,IAATnH,EAEJ,GADA09B,EAASrmB,IAAIzF,GACT7R,EAAcC,GAAO,CACvB,MAAMif,EAAa5e,KAAK66B,yBAAyBl7B,GAC3Ckf,EAAW7e,KAAK86B,uBAAuBn7B,GACzCif,GAAYye,EAASrmB,IAAI4H,GACzBC,GAAUwe,EAASrmB,IAAI6H,EAC7B,MAAWhf,EAAaF,KAGtB09B,EAASrmB,IAAIrX,EAAKsB,MAClBo8B,EAASrmB,IAAIrX,EAAKuB,IAEtB,CAGF,OAAOm8B,CACT,CAKQ,wBAAAE,CAAyB59B,EAAmB4O,GAClD,MAAMivB,EAA8B,GACpC,IAAIC,EAAc99B,EACdomB,EAAepmB,EAAK8d,eAExB,KAAOsI,GAAc,CACnB,MAAM2X,EAAY19B,KAAKk8B,uBACrBnW,EACA0X,EACAlvB,GAEFivB,EAAkBr9B,QAAQu9B,GAE1BD,EAAc1X,EACdA,EAAeA,EAAatI,cAC9B,CAEA,OAAO+f,CACT,CAKQ,YAAAG,GACN,MAAMzf,EAAkB,GAClBsf,EAA8B,GAC9BlgB,EAAQtd,KAAKqE,OAAOyX,aAAawB,MAEvC,IAAK,IAAI/O,EAAQ,EAAGA,EAAQ+O,EAAMrZ,OAAQsK,IAAS,CACjD,MAAM+uB,EAAahgB,EAAM/O,GACzB,GAAK+uB,EAEL,IAAK,IAAI/rB,EAAS,EAAGA,EAAS+rB,EAAWr5B,OAAQsN,IAAU,CACzD,MAAM5R,EAAO29B,EAAW/rB,QACXzK,IAATnH,IAEU,IAAV4O,EASA7O,EAAcC,IAChBue,EAAM/d,QAAQH,KAAKo7B,kBAAkBz7B,EAAM4O,IAEvC5O,EAAK8d,gBACP+f,EAAkBr9B,QACbH,KAAKu9B,yBAAyB59B,EAAM4O,KAGlC3O,EAAeD,IACxBue,EAAM/d,QAAQH,KAAKg8B,mBAAmBr8B,EAAM4O,IAfxC1O,EAAaF,IACfue,EAAM/d,QAAQH,KAAK67B,iBAAiBl8B,IAgB1C,CACF,CAEA,MAAO,IAAIue,KAAUsf,EACvB,CAOA,YAAAI,GACE,MAAMP,EAAWr9B,KAAKo9B,kBAChBlf,EAAQle,KAAK29B,eAEbnkB,EAAU,IAAI1Z,EACpB0Z,EAAQtZ,YACRsZ,EAAQpZ,WAAW,YAEnB,IAAK,MAAMmR,KAAU8rB,EAAU,CAC7B,MAAMQ,EAAc79B,KAAK+6B,kBAAkBxpB,GACvCssB,GACFrkB,EAAQpY,OAAO,CAACy8B,GAEpB,CAKA,OAHArkB,EAAQpZ,WAAW,SACnBoZ,EAAQpY,OAAO8c,GAER1E,EAAQnY,OACjB,qF4BzhBA,WAAAtB,CAAYic,EAAsBD,GAChC,MAAMiG,EAAS,IAAImD,GAAOnJ,GACpB+F,EAAe,IAAI/C,GAAahD,EAAWD,GACjD/b,KAAK89B,YAAc,IAAIhc,GACrB9F,EACAD,EACAgG,EACAC,GAEFhiB,KAAK+9B,YAAc,IAAIzZ,GACrBtI,EACAD,EACAgG,EACAC,EAEJ,CAMA,KAAAxM,CAAMyM,GACJ,OAAOjiB,KAAK89B,YAAYtoB,MAAMyM,EAChC,CAMA,UAAAsC,CAAWtC,GACT,OAAOjiB,KAAK+9B,YAAYxZ,WAAWtC,EACrC","x_google_ignoreList":[2,3,4,5,21,22,23,24]}
1
+ {"version":3,"file":"router.umd.js","sources":["../src/timetable/time.ts","../src/routing/plotter.ts","../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js","../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js","../node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js","../src/timetable/proto/v1/timetable.ts","../src/timetable/route.ts","../src/timetable/tripStopId.ts","../src/timetable/io.ts","../src/timetable/timetable.ts","../src/routing/query.ts","../src/routing/route.ts","../src/routing/result.ts","../src/routing/access.ts","../src/routing/state.ts","../src/routing/plainRouter.ts","../src/routing/rangeResult.ts","../src/routing/rangeState.ts","../src/routing/rangeRouter.ts","../src/routing/raptor.ts","../node_modules/tinyqueue/index.js","../node_modules/geokdbush/index.js","../node_modules/kdbush/index.js","../node_modules/slimsearch/dist/index.js","../src/stops/i18n.ts","../src/stops/proto/v1/stops.ts","../src/stops/io.ts","../src/stops/stopsIndex.ts","../src/routing/router.ts"],"sourcesContent":[null,null,"// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./wire/varint.js\";\n/**\n * Int64Support for the current environment.\n */\nexport const protoInt64 = /*@__PURE__*/ makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (!!globalThis.Deno ||\n typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\");\n const MAX = BigInt(\"9223372036854775807\");\n const UMIN = BigInt(\"0\");\n const UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nexport function configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nexport function getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (_) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n","// Copyright 2021-2025 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./varint.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { getTextEncoding } from \"./text-encoding.js\";\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexport const UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MIN = -0x80000000;\nexport class BinaryWriter {\n constructor(encodeUtf8 = getTextEncoding().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n this.buf = [];\n }\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n const tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n const tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, decodeUtf8 = getTextEncoding().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // @ts-ignore TS7029: Fallthrough case in switch -- ignore instead of expect-error for compiler settings without noFallthroughCasesInSwitch: true\n case WireType.Bit64:\n this.pos += 4;\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n // biome-ignore lint/suspicious/noAssignInExpressions: no\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > INT32_MAX ||\n arg < INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (Number.isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > FLOAT32_MAX || arg < FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"\nexport default class TinyQueue {\n constructor(data = [], compare = defaultCompare) {\n this.data = data;\n this.length = this.data.length;\n this.compare = compare;\n\n if (this.length > 0) {\n for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n }\n }\n\n push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n }\n\n pop() {\n if (this.length === 0) return undefined;\n\n const top = this.data[0];\n const bottom = this.data.pop();\n this.length--;\n\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n\n return top;\n }\n\n peek() {\n return this.data[0];\n }\n\n _up(pos) {\n const {data, compare} = this;\n const item = data[pos];\n\n while (pos > 0) {\n const parent = (pos - 1) >> 1;\n const current = data[parent];\n if (compare(item, current) >= 0) break;\n data[pos] = current;\n pos = parent;\n }\n\n data[pos] = item;\n }\n\n _down(pos) {\n const {data, compare} = this;\n const halfLength = this.length >> 1;\n const item = data[pos];\n\n while (pos < halfLength) {\n let left = (pos << 1) + 1;\n let best = data[left];\n const right = left + 1;\n\n if (right < this.length && compare(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare(best, item) >= 0) break;\n\n data[pos] = best;\n pos = left;\n }\n\n data[pos] = item;\n }\n}\n\nfunction defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n","\nimport TinyQueue from 'tinyqueue';\n\nconst earthRadius = 6371;\nconst rad = Math.PI / 180;\n\nexport function around(index, lng, lat, maxResults = Infinity, maxDistance = Infinity, predicate) {\n let maxHaverSinDist = 1;\n const result = [];\n\n if (maxResults === undefined) maxResults = Infinity;\n if (maxDistance !== undefined) maxHaverSinDist = haverSin(maxDistance / earthRadius);\n\n // a distance-sorted priority queue that will contain both points and kd-tree nodes\n const q = new TinyQueue([], compareDist);\n\n // an object that represents the top kd-tree node (the whole Earth)\n let node = {\n left: 0, // left index in the kd-tree array\n right: index.ids.length - 1, // right index\n axis: 0, // 0 for longitude axis and 1 for latitude axis\n dist: 0, // will hold the lower bound of children's distances to the query point\n minLng: -180, // bounding box of the node\n minLat: -90,\n maxLng: 180,\n maxLat: 90\n };\n\n const cosLat = Math.cos(lat * rad);\n\n while (node) {\n const right = node.right;\n const left = node.left;\n\n if (right - left <= index.nodeSize) { // leaf node\n\n // add all points of the leaf node to the queue\n for (let i = left; i <= right; i++) {\n const id = index.ids[i];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, index.coords[2 * i], index.coords[2 * i + 1], cosLat);\n q.push({id, dist});\n }\n }\n\n } else { // not a leaf node (has child nodes)\n\n const m = (left + right) >> 1; // middle index\n const midLng = index.coords[2 * m];\n const midLat = index.coords[2 * m + 1];\n\n // add middle point to the queue\n const id = index.ids[m];\n if (!predicate || predicate(id)) {\n const dist = haverSinDist(lng, lat, midLng, midLat, cosLat);\n q.push({id, dist});\n }\n\n const nextAxis = (node.axis + 1) % 2;\n\n // first half of the node\n const leftNode = {\n left,\n right: m - 1,\n axis: nextAxis,\n minLng: node.minLng,\n minLat: node.minLat,\n maxLng: node.axis === 0 ? midLng : node.maxLng,\n maxLat: node.axis === 1 ? midLat : node.maxLat,\n dist: 0\n };\n // second half of the node\n const rightNode = {\n left: m + 1,\n right,\n axis: nextAxis,\n minLng: node.axis === 0 ? midLng : node.minLng,\n minLat: node.axis === 1 ? midLat : node.minLat,\n maxLng: node.maxLng,\n maxLat: node.maxLat,\n dist: 0\n };\n\n leftNode.dist = boxDist(lng, lat, cosLat, leftNode);\n rightNode.dist = boxDist(lng, lat, cosLat, rightNode);\n\n // add child nodes to the queue\n q.push(leftNode);\n q.push(rightNode);\n }\n\n // fetch closest points from the queue; they're guaranteed to be closer\n // than all remaining points (both individual and those in kd-tree nodes),\n // since each node's distance is a lower bound of distances to its children\n while (q.length && q.peek().id != null) {\n const candidate = q.pop();\n if (candidate.dist > maxHaverSinDist) return result;\n result.push(candidate.id);\n if (result.length === maxResults) return result;\n }\n\n // the next closest kd-tree node\n node = q.pop();\n }\n\n return result;\n}\n\n// lower bound for distance from a location to points inside a bounding box\nfunction boxDist(lng, lat, cosLat, node) {\n const minLng = node.minLng;\n const maxLng = node.maxLng;\n const minLat = node.minLat;\n const maxLat = node.maxLat;\n\n // query point is between minimum and maximum longitudes\n if (lng >= minLng && lng <= maxLng) {\n if (lat < minLat) return haverSin((lat - minLat) * rad);\n if (lat > maxLat) return haverSin((lat - maxLat) * rad);\n return 0;\n }\n\n // query point is west or east of the bounding box;\n // calculate the extremum for great circle distance from query point to the closest longitude;\n const haverSinDLng = Math.min(haverSin((lng - minLng) * rad), haverSin((lng - maxLng) * rad));\n const extremumLat = vertexLat(lat, haverSinDLng);\n\n // if extremum is inside the box, return the distance to it\n if (extremumLat > minLat && extremumLat < maxLat) {\n return haverSinDistPartial(haverSinDLng, cosLat, lat, extremumLat);\n }\n // otherwise return the distan e to one of the bbox corners (whichever is closest)\n return Math.min(\n haverSinDistPartial(haverSinDLng, cosLat, lat, minLat),\n haverSinDistPartial(haverSinDLng, cosLat, lat, maxLat)\n );\n}\n\nfunction compareDist(a, b) {\n return a.dist - b.dist;\n}\n\nfunction haverSin(theta) {\n const s = Math.sin(theta / 2);\n return s * s;\n}\n\nfunction haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2) {\n return cosLat1 * Math.cos(lat2 * rad) * haverSinDLng + haverSin((lat1 - lat2) * rad);\n}\n\nfunction haverSinDist(lng1, lat1, lng2, lat2, cosLat1) {\n const haverSinDLng = haverSin((lng1 - lng2) * rad);\n return haverSinDistPartial(haverSinDLng, cosLat1, lat1, lat2);\n}\n\nexport function distance(lng1, lat1, lng2, lat2) {\n const h = haverSinDist(lng1, lat1, lng2, lat2, Math.cos(lat1 * rad));\n return 2 * earthRadius * Math.asin(Math.sqrt(h));\n}\n\nfunction vertexLat(lat, haverSinDLng) {\n const cosDLng = 1 - 2 * haverSinDLng;\n if (cosDLng <= 0) return lat > 0 ? 90 : -90;\n return Math.atan(Math.tan(lat * rad) / cosDLng) / rad;\n}\n","\nconst ARRAY_TYPES = [\n Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array,\n Int32Array, Uint32Array, Float32Array, Float64Array\n];\n\n/** @typedef {Int8ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int16ArrayConstructor | Uint16ArrayConstructor | Int32ArrayConstructor | Uint32ArrayConstructor | Float32ArrayConstructor | Float64ArrayConstructor} TypedArrayConstructor */\n\nconst VERSION = 1; // serialized format version\nconst HEADER_SIZE = 8;\n\nexport default class KDBush {\n\n /**\n * Creates an index from raw `ArrayBuffer` data.\n * @param {ArrayBuffer} data\n */\n static from(data) {\n if (!(data instanceof ArrayBuffer)) {\n throw new Error('Data must be an instance of ArrayBuffer.');\n }\n const [magic, versionAndType] = new Uint8Array(data, 0, 2);\n if (magic !== 0xdb) {\n throw new Error('Data does not appear to be in a KDBush format.');\n }\n const version = versionAndType >> 4;\n if (version !== VERSION) {\n throw new Error(`Got v${version} data when expected v${VERSION}.`);\n }\n const ArrayType = ARRAY_TYPES[versionAndType & 0x0f];\n if (!ArrayType) {\n throw new Error('Unrecognized array type.');\n }\n const [nodeSize] = new Uint16Array(data, 2, 1);\n const [numItems] = new Uint32Array(data, 4, 1);\n\n return new KDBush(numItems, nodeSize, ArrayType, data);\n }\n\n /**\n * Creates an index that will hold a given number of items.\n * @param {number} numItems\n * @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).\n * @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).\n * @param {ArrayBuffer} [data] (For internal use only)\n */\n constructor(numItems, nodeSize = 64, ArrayType = Float64Array, data) {\n if (isNaN(numItems) || numItems < 0) throw new Error(`Unpexpected numItems value: ${numItems}.`);\n\n this.numItems = +numItems;\n this.nodeSize = Math.min(Math.max(+nodeSize, 2), 65535);\n this.ArrayType = ArrayType;\n this.IndexArrayType = numItems < 65536 ? Uint16Array : Uint32Array;\n\n const arrayTypeIndex = ARRAY_TYPES.indexOf(this.ArrayType);\n const coordsByteSize = numItems * 2 * this.ArrayType.BYTES_PER_ELEMENT;\n const idsByteSize = numItems * this.IndexArrayType.BYTES_PER_ELEMENT;\n const padCoords = (8 - idsByteSize % 8) % 8;\n\n if (arrayTypeIndex < 0) {\n throw new Error(`Unexpected typed array class: ${ArrayType}.`);\n }\n\n if (data && (data instanceof ArrayBuffer)) { // reconstruct an index from a buffer\n this.data = data;\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = numItems * 2;\n this._finished = true;\n } else { // initialize a new index\n this.data = new ArrayBuffer(HEADER_SIZE + coordsByteSize + idsByteSize + padCoords);\n this.ids = new this.IndexArrayType(this.data, HEADER_SIZE, numItems);\n this.coords = new this.ArrayType(this.data, HEADER_SIZE + idsByteSize + padCoords, numItems * 2);\n this._pos = 0;\n this._finished = false;\n\n // set header\n new Uint8Array(this.data, 0, 2).set([0xdb, (VERSION << 4) + arrayTypeIndex]);\n new Uint16Array(this.data, 2, 1)[0] = nodeSize;\n new Uint32Array(this.data, 4, 1)[0] = numItems;\n }\n }\n\n /**\n * Add a point to the index.\n * @param {number} x\n * @param {number} y\n * @returns {number} An incremental index associated with the added item (starting from `0`).\n */\n add(x, y) {\n const index = this._pos >> 1;\n this.ids[index] = index;\n this.coords[this._pos++] = x;\n this.coords[this._pos++] = y;\n return index;\n }\n\n /**\n * Perform indexing of the added points.\n */\n finish() {\n const numAdded = this._pos >> 1;\n if (numAdded !== this.numItems) {\n throw new Error(`Added ${numAdded} items when expected ${this.numItems}.`);\n }\n // kd-sort both arrays for efficient search\n sort(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0);\n\n this._finished = true;\n return this;\n }\n\n /**\n * Search the index for items within a given bounding box.\n * @param {number} minX\n * @param {number} minY\n * @param {number} maxX\n * @param {number} maxY\n * @returns {number[]} An array of indices correponding to the found items.\n */\n range(minX, minY, maxX, maxY) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n\n // recursively search for items in range in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n const x = coords[2 * i];\n const y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n\n /**\n * Search the index for items within a given radius.\n * @param {number} qx\n * @param {number} qy\n * @param {number} r Query radius.\n * @returns {number[]} An array of indices correponding to the found items.\n */\n within(qx, qy, r) {\n if (!this._finished) throw new Error('Data not yet indexed - call index.finish().');\n\n const {ids, coords, nodeSize} = this;\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n // recursively search for items within radius in the kd-sorted arrays\n while (stack.length) {\n const axis = stack.pop() || 0;\n const right = stack.pop() || 0;\n const left = stack.pop() || 0;\n\n // if we reached \"tree node\", search linearly\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n // otherwise find the middle index\n const m = (left + right) >> 1;\n\n // include the middle item if it's in range\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n // queue search in halves that intersect the query\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(1 - axis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(1 - axis);\n }\n }\n\n return result;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} nodeSize\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction sort(ids, coords, nodeSize, left, right, axis) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1; // middle index\n\n // sort ids and coords around the middle index so that the halves lie\n // either left/right or top/bottom correspondingly (taking turns)\n select(ids, coords, m, left, right, axis);\n\n // recursively kd-sort first half and second half on the opposite axis\n sort(ids, coords, nodeSize, left, m - 1, 1 - axis);\n sort(ids, coords, nodeSize, m + 1, right, 1 - axis);\n}\n\n/**\n * Custom Floyd-Rivest selection algorithm: sort ids and coords so that\n * [left..k-1] items are smaller than k-th item (on either x or y axis)\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} k\n * @param {number} left\n * @param {number} right\n * @param {number} axis\n */\nfunction select(ids, coords, k, left, right, axis) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, axis);\n }\n\n const t = coords[2 * k + axis];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + axis] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + axis] < t) i++;\n while (coords[2 * j + axis] > t) j--;\n }\n\n if (coords[2 * left + axis] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\n/**\n * @param {Uint16Array | Uint32Array} ids\n * @param {InstanceType<TypedArrayConstructor>} coords\n * @param {number} i\n * @param {number} j\n */\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\n/**\n * @param {InstanceType<TypedArrayConstructor>} arr\n * @param {number} i\n * @param {number} j\n */\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n\n/**\n * @param {number} ax\n * @param {number} ay\n * @param {number} bx\n * @param {number} by\n */\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n","const It=\"ENTRIES\",U=\"KEYS\",B=\"VALUES\",Bt=\"\";class L{set;_type;_path;constructor(e,n){const o=e._tree,s=Array.from(o.keys());this.set=e,this._type=n,this._path=s.length>0?[{node:o,keys:s}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:n}=x(this._path);if(x(n)===\"\")return{done:!1,value:this.result()};const o=e.get(x(n));return this._path.push({node:o,keys:Array.from(o.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=x(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>x(e)).filter(e=>e!==\"\").join(\"\")}value(){return x(this._path).node.get(\"\")}result(){switch(this._type){case B:return this.value();case U:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const x=t=>t[t.length-1],xt=(t,e,n)=>{const o=new Map;if(typeof e!=\"string\")return o;const s=e.length+1,r=s+n,i=new Uint8Array(r*s).fill(n+1);for(let c=0;c<s;++c)i[c]=c;for(let c=1;c<r;++c)i[c*s]=c;return G(t,e,n,o,i,1,s,\"\"),o},G=(t,e,n,o,s,r,i,c)=>{const a=r*i;t:for(const d of t.keys())if(d===\"\"){const u=s[a-1];u<=n&&o.set(c,[t.get(d),u])}else{let u=r;for(let f=0;f<d.length;++f,++u){const m=d[f],_=i*u,g=_-i;let h=s[_];const l=Math.max(0,u-n-1),p=Math.min(i-1,u+n);for(let w=l;w<p;++w){const k=m!==e[w],C=s[g+w]+ +k,z=s[g+w+1]+1,I=s[_+w]+1,F=s[_+w+1]=Math.min(C,z,I);F<h&&(h=F)}if(h>n)continue t}G(t.get(d),e,n,o,s,u,i,c+d)}};class y{_tree;_prefix;_size=void 0;constructor(e=new Map,n=\"\"){this._tree=e,this._prefix=n}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error(\"Mismatched prefix\");const[n,o]=S(this._tree,e.slice(this._prefix.length));if(n===void 0){const[s,r]=A(o);for(const i of s.keys())if(i!==\"\"&&i.startsWith(r)){const c=new Map;return c.set(i.slice(r.length),s.get(i)),new y(c,e)}}return new y(n,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Ft(this._tree,e)}entries(){return new L(this,It)}forEach(e){for(const[n,o]of this)e(n,o,this)}fuzzyGet(e,n){return xt(this._tree,e,n)}get(e){const n=O(this._tree,e);return n!==void 0?n.get(\"\"):void 0}has(e){return O(this._tree,e)?.has(\"\")??!1}keys(){return new L(this,U)}set(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");return this._size=void 0,E(this._tree,e).set(\"\",n),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);return o.set(\"\",n(o.get(\"\"))),this}fetch(e,n){if(typeof e!=\"string\")throw new Error(\"key must be a string\");this._size=void 0;const o=E(this._tree,e);let s=o.get(\"\");return s===void 0&&o.set(\"\",s=n()),s}values(){return new L(this,B)}[Symbol.iterator](){return this.entries()}static from(e){const n=new y;for(const[o,s]of e)n.set(o,s);return n}static fromObject(e){return y.from(Object.entries(e))}}const S=(t,e,n=[])=>{if(e.length===0||t==null)return[t,n];for(const o of t.keys())if(o!==\"\"&&e.startsWith(o))return n.push([t,o]),S(t.get(o),e.slice(o.length),n);return n.push([t,e]),S(void 0,\"\",n)},O=(t,e)=>{if(e.length===0||!t)return t;for(const n of t.keys())if(n!==\"\"&&e.startsWith(n))return O(t.get(n),e.slice(n.length))},E=(t,e)=>{const n=e.length;t:for(let o=0;t&&o<n;){for(const r of t.keys())if(r!==\"\"&&e[o]===r[0]){const i=Math.min(n-o,r.length);let c=1;for(;c<i&&e[o+c]===r[c];)++c;const a=t.get(r);if(c===r.length)t=a;else{const d=new Map;d.set(r.slice(c),a),t.set(e.slice(o,o+c),d),t.delete(r),t=d}o+=c;continue t}const s=new Map;return t.set(e.slice(o),s),s}return t},Ft=(t,e)=>{const[n,o]=S(t,e);if(n!==void 0){if(n.delete(\"\"),n.size===0)K(o);else if(n.size===1){const[s,r]=n.entries().next().value;Q(o,s,r)}}},K=t=>{if(t.length===0)return;const[e,n]=A(t);if(e.delete(n),e.size===0)K(t.slice(0,-1));else if(e.size===1){const[o,s]=e.entries().next().value;o!==\"\"&&Q(t.slice(0,-1),o,s)}},Q=(t,e,n)=>{if(t.length===0)return;const[o,s]=A(t);o.set(s+e,n),o.delete(s)},A=t=>t[t.length-1],Y=(t,e)=>t._idToShortId.has(e),zt=(t,e)=>{const n=t._idToShortId.get(e);if(n!=null)return t._storedFields.get(n)},St=/[\\n\\r\\p{Z}\\p{P}]+/u,V=\"or\",Z=\"and\",bt=\"and_not\",H=t=>new Promise(e=>setTimeout(e,t)),vt=(t,e)=>{t.includes(e)||t.push(e)},X=(t,e)=>{for(const n of e)t.includes(n)||t.push(n)},tt=({score:t},{score:e})=>e-t,et=()=>new Map,b=t=>{const e=new Map;for(const n of Object.keys(t))e.set(parseInt(n,10),t[n]);return e},v=async t=>{const e=new Map;let n=0;for(const o of Object.keys(t))e.set(parseInt(o,10),t[o]),++n%1e3===0&&await H(0);return e},T=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)?t[e]:void 0,nt={[V]:(t,e)=>{for(const n of e.keys()){const o=t.get(n);if(o==null)t.set(n,e.get(n));else{const{score:s,terms:r,match:i}=e.get(n);o.score=o.score+s,o.match=Object.assign(o.match,i),X(o.terms,r)}}return t},[Z]:(t,e)=>{const n=new Map;for(const o of e.keys()){const s=t.get(o);if(s==null)continue;const{score:r,terms:i,match:c}=e.get(o);X(s.terms,i),n.set(o,{score:s.score+r,terms:s.terms,match:Object.assign(s.match,c)})}return n},[bt]:(t,e)=>{for(const n of e.keys())t.delete(n);return t}},kt=(t,e,n,o,s,r)=>{const{k:i,b:c,d:a}=r;return Math.log(1+(n-e+.5)/(e+.5))*(a+t*(i+1)/(t+i*(1-c+c*o/s)))},Ct=t=>(e,n,o)=>({term:e,fuzzy:typeof t.fuzzy==\"function\"?t.fuzzy(e,n,o):t.fuzzy??!1,prefix:typeof t.prefix==\"function\"?t.prefix(e,n,o):t.prefix===!0,termBoost:typeof t.boostTerm==\"function\"?t.boostTerm(e,n,o):1}),ot=(t,e,n,o)=>{for(const s of Object.keys(t._fieldIds))if(t._fieldIds[s]===n){t._options.logger(\"warn\",`SlimSearch: document with ID ${t._documentIds.get(e)} has changed before removal: term \"${o}\" was not present in field \"${s}\". Removing a document after it has changed can corrupt the index!`,\"version_conflict\");return}},st=(t,e,n,o)=>{const s=t._index.fetch(o,et);let r=s.get(e);if(r==null)r=new Map,r.set(n,1),s.set(e,r);else{const i=r.get(n);r.set(n,(i??0)+1)}},M=(t,e,n,o)=>{if(!t._index.has(o)){ot(t,n,e,o);return}const s=t._index.fetch(o,et),r=s.get(e),i=r?.get(n);!r||typeof i>\"u\"?ot(t,n,e,o):i<=1?r.size<=1?s.delete(e):r.delete(n):r.set(n,i-1),t._index.get(o).size===0&&t._index.delete(o)},Lt=(t,e,n,o,s)=>{let r=t._fieldLength.get(e);r==null&&t._fieldLength.set(e,r=[]),r[n]=s;const i=(t._avgFieldLength[n]||0)*o+s;t._avgFieldLength[n]=i/(o+1)},Ot=(t,e)=>{const n=t._nextId;return t._idToShortId.set(e,n),t._documentIds.set(n,e),t._documentCount+=1,t._nextId+=1,n},Et=(t,e,n)=>{const{storeFields:o,extractField:s}=t._options;if(o?.length===0)return;let r=t._storedFields.get(e);r===void 0&&t._storedFields.set(e,r={});for(const i of o){const c=s(n,i);c!=null&&(r[i]=c)}},D=(t,e)=>{const{extractField:n,stringifyField:o,tokenize:s,processTerm:r,fields:i,idField:c}=t._options,a=n(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);if(Y(t,a))throw new Error(`SlimSearch: duplicate ID ${a}`);const d=Ot(t,a);Et(t,d,e);for(const u of i){const f=n(e,u);if(f==null)continue;const m=s(o(f,u),u),_=t._fieldIds[u],g=new Set(m).size;Lt(t,d,_,t._documentCount-1,g);for(const h of m){const l=r(h,u);if(Array.isArray(l))for(const p of l)st(t,_,d,p);else l&&st(t,_,d,l)}}},j=(t,e)=>{for(const n of e)D(t,n)},At=(t,e,n={})=>{const{chunkSize:o=10}=n,s={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:c,promise:a},d,u)=>(c.push(d),(u+1)%o===0?{chunk:[],promise:a.then(()=>new Promise(f=>setTimeout(f,0))).then(()=>j(t,c))}:{chunk:c,promise:a}),s);return i.then(()=>j(t,r))},Vt={k:1.2,b:.7,d:.5},q={idField:\"id\",extractField:(t,e)=>t[e],stringifyField:t=>t.toString(),tokenize:t=>t.split(St),processTerm:t=>t.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(t,e)=>{console?.[t]?.(e)},autoVacuum:!0},it={combineWith:V,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:Vt},Tt={combineWith:Z,prefix:(t,e,n)=>e===n.length-1},$={batchSize:1e3,batchWait:10},N={minDirtFactor:.1,minDirtCount:20},W={...$,...N},Mt=t=>{if(q.hasOwnProperty(t))return T(q,t);throw new Error(`SlimSearch: unknown option \"${t}\"`)},P=Symbol(\"*\"),Dt=(t,e)=>{const n=new Map,o={...t._options.searchOptions,...e};for(const[s,r]of t._documentIds){const i=o.boostDocument?o.boostDocument(r,\"\",t._storedFields.get(s)):1;n.set(s,{score:i,terms:[],match:{}})}return n},rt=(t,e=V)=>{if(t.length===0)return new Map;const n=e.toLowerCase();if(!(n in nt))throw new Error(`Invalid combination operator: ${e}`);return t.reduce(nt[n])},R=(t,e,n,o,s,r,i,c,a,d=new Map)=>{if(r==null)return d;for(const u of Object.keys(i)){const f=i[u],m=t._fieldIds[u],_=r.get(m);if(_==null)continue;let g=_.size;const h=t._avgFieldLength[m];for(const l of _.keys()){if(!t._documentIds.has(l)){M(t,m,l,n),g-=1;continue}const p=c?c(t._documentIds.get(l),n,t._storedFields.get(l)):1;if(!p)continue;const w=_.get(l),k=t._fieldLength.get(l)[m],C=kt(w,g,t._documentCount,k,h,a),z=o*s*f*p*C,I=d.get(l);if(I){I.score+=z,vt(I.terms,e);const F=T(I.match,n);F?F.push(u):I.match[n]=[u]}else d.set(l,{score:z,terms:[e],match:{[n]:[u]}})}}return d},jt=(t,e,n)=>{const o={...t._options.searchOptions,...n},s=(o.fields??t._options.fields).reduce((h,l)=>({...h,[l]:T(o.boost,l)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:c,bm25:a}=o,{fuzzy:d,prefix:u}={...it.weights,...i},f=t._index.get(e.term),m=R(t,e.term,e.term,1,e.termBoost,f,s,r,a);let _,g;if(e.prefix&&(_=t._index.atPrefix(e.term)),e.fuzzy){const h=e.fuzzy===!0?.2:e.fuzzy,l=h<1?Math.min(c,Math.round(e.term.length*h)):h;l&&(g=t._index.fuzzyGet(e.term,l))}if(_)for(const[h,l]of _){const p=h.length-e.term.length;if(!p)continue;g?.delete(h);const w=u*h.length/(h.length+.3*p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}if(g)for(const h of g.keys()){const[l,p]=g.get(h);if(!p)continue;const w=d*h.length/(h.length+p);R(t,e.term,h,w,e.termBoost,l,s,r,a,m)}return m},ct=(t,e,n={})=>{if(e===P)return Dt(t,n);if(typeof e!=\"string\"){const u={...n,...e,queries:void 0},f=e.queries.map(m=>ct(t,m,u));return rt(f,u.combineWith)}const{tokenize:o,processTerm:s,searchOptions:r}=t._options,i={tokenize:o,processTerm:s,...r,...n},{tokenize:c,processTerm:a}=i,d=c(e).flatMap(u=>a(u)).filter(u=>!!u).map(Ct(i)).map(u=>jt(t,u,i));return rt(d,i.combineWith)},ut=(t,e,n={})=>{const{searchOptions:o}=t._options,s={...o,...n},r=ct(t,e,n),i=[];for(const[c,{score:a,terms:d,match:u}]of r){const f=d.length||1,m={id:t._documentIds.get(c),score:a*f,terms:Object.keys(u),queryTerms:d,match:u};Object.assign(m,t._storedFields.get(c)),(s.filter==null||s.filter(m))&&i.push(m)}return e===P&&s.boostDocument==null||i.sort(tt),i},qt=(t,e,n={})=>{n={...t._options.autoSuggestOptions,...n};const o=new Map;for(const{score:r,terms:i}of ut(t,e,n)){const c=i.join(\" \"),a=o.get(c);a!=null?(a.score+=r,a.count+=1):o.set(c,{score:r,terms:i,count:1})}const s=[];for(const[r,{score:i,terms:c,count:a}]of o)s.push({suggestion:r,terms:c,score:i/a});return s.sort(tt),s};class $t{_options;_index;_documentCount;_documentIds;_idToShortId;_fieldIds;_fieldLength;_avgFieldLength;_nextId;_storedFields;_dirtCount;_currentVacuum;_enqueuedVacuum;_enqueuedVacuumConditions;constructor(e){if(!e?.fields)throw new Error('SlimSearch: option \"fields\" must be provided');const n=e.autoVacuum==null||e.autoVacuum===!0?W:e.autoVacuum;this._options={...q,...e,autoVacuum:n,searchOptions:{...it,...e.searchOptions},autoSuggestOptions:{...Tt,...e.autoSuggestOptions}},this._index=new y,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=N,this.addFields(this._options.fields)}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}get documentCount(){return this._documentCount}get termCount(){return this._index.size}toJSON(){const e=[];for(const[n,o]of this._index){const s={};for(const[r,i]of o)s[r]=Object.fromEntries(i);e.push([n,s])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,version:2}}addFields(e){for(let n=0;n<e.length;n++)this._fieldIds[e[n]]=n}}const dt=t=>`SlimSearch: ${t} should be given the same options used when serializing the index`,at=t=>new $t(t),lt=({documentCount:t,nextId:e,fieldIds:n,averageFieldLength:o,dirtCount:s,version:r},i)=>{if(r!==2)throw new Error(\"SlimSearch: cannot deserialize an index created with an incompatible version\");const c=at(i);return c._documentCount=t,c._nextId=e,c._idToShortId=new Map,c._fieldIds=n,c._avgFieldLength=o,c._dirtCount=s??0,c._index=new y,c},ht=(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=b(o),i._fieldLength=b(s),i._storedFields=b(r);for(const[c,a]of i._documentIds)i._idToShortId.set(a,c);for(const[c,a]of n){const d=new Map;for(const u of Object.keys(a))d.set(parseInt(u,10),b(a[u]));i._index.set(c,d)}return i},ft=async(t,e)=>{const{index:n,documentIds:o,fieldLength:s,storedFields:r}=t,i=lt(t,e);i._documentIds=await v(o),i._fieldLength=await v(s),i._storedFields=await v(r);for(const[a,d]of i._documentIds)i._idToShortId.set(d,a);let c=0;for(const[a,d]of n){const u=new Map;for(const f of Object.keys(d))u.set(parseInt(f,10),await v(d[f]));++c%1e3===0&&await H(0),i._index.set(a,u)}return i},Nt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndex\"));return ht(JSON.parse(t),e)},Wt=(t,e)=>{if(!e)throw new Error(dt(\"loadJSONIndexAsync\"));return ft(JSON.parse(t),e)},mt=(t,e)=>{if(e==null)return!0;const{minDirtCount:n=W.minDirtCount,minDirtFactor:o=W.minDirtFactor}=e;return t.dirtCount>=n&&t.dirtFactor>=o},_t=async(t,e,n)=>{const o=t._dirtCount;if(mt(t,n)){const s=e.batchSize??$.batchSize,r=e.batchWait??$.batchWait;let i=1;for(const[c,a]of t._index){for(const[d,u]of a)for(const[f]of u)t._documentIds.has(f)||(u.size<=1?a.delete(d):u.delete(f));t._index.get(c).size===0&&t._index.delete(c),i%s===0&&await new Promise(d=>setTimeout(d,r)),i+=1}t._dirtCount-=o}await null,t._currentVacuum=t._enqueuedVacuum,t._enqueuedVacuum=null},gt=(t,e,n)=>t._currentVacuum?(t._enqueuedVacuumConditions=t._enqueuedVacuumConditions&&n,t._enqueuedVacuum!=null||(t._enqueuedVacuum=t._currentVacuum.then(()=>{const o=t._enqueuedVacuumConditions;return t._enqueuedVacuumConditions=N,_t(t,e,o)})),t._enqueuedVacuum):mt(t,n)?(t._currentVacuum=_t(t,e),t._currentVacuum):Promise.resolve(),pt=t=>{if(t._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:n,batchSize:o,batchWait:s}=t._options.autoVacuum;gt(t,{batchSize:o,batchWait:s},{minDirtCount:n,minDirtFactor:e})},Pt=(t,e={})=>gt(t,e),wt=(t,e,n,o)=>{if(n===1){t._avgFieldLength[e]=0;return}const s=t._avgFieldLength[e]*n-o;t._avgFieldLength[e]=s/(n-1)},J=(t,e)=>{const n=t._idToShortId.get(e);if(n==null)throw new Error(`SlimSearch: cannot discard document with ID ${e}: it is not in the index`);t._idToShortId.delete(e),t._documentIds.delete(n),t._storedFields.delete(n),t._fieldLength.get(n)?.forEach((o,s)=>{wt(t,s,t._documentCount,o)}),t._fieldLength.delete(n),t._documentCount-=1,t._dirtCount+=1,pt(t)},Rt=(t,e)=>{const n=t._options.autoVacuum;try{t._options.autoVacuum=!1;for(const o of e)J(t,o)}finally{t._options.autoVacuum=n}pt(t)},yt=(t,e)=>{const{tokenize:n,processTerm:o,extractField:s,stringifyField:r,fields:i,idField:c}=t._options,a=s(e,c);if(a==null)throw new Error(`SlimSearch: document does not have ID field \"${c}\"`);const d=t._idToShortId.get(a);if(d==null)throw new Error(`SlimSearch: cannot remove document with ID ${a}: it is not in the index`);for(const u of i){const f=s(e,u);if(f==null)continue;const m=n(r(f,u),u),_=t._fieldIds[u],g=new Set(m).size;wt(t,_,t._documentCount,g);for(const h of m){const l=o(h,u);if(Array.isArray(l))for(const p of l)M(t,_,d,p);else l&&M(t,_,d,l)}}t._storedFields.delete(d),t._documentIds.delete(d),t._idToShortId.delete(a),t._fieldLength.delete(d),t._documentCount-=1},Jt=function(t,e){if(e)for(const n of e)yt(t,n);else{if(arguments.length>1)throw new Error(\"Expected documents to be present. Omit the argument to remove all documents.\");t._index=new y,t._documentCount=0,t._documentIds=new Map,t._idToShortId=new Map,t._fieldLength=new Map,t._avgFieldLength=[],t._storedFields=new Map,t._nextId=0}},Ut=(t,e)=>{const{idField:n,extractField:o}=t._options,s=o(e,n);J(t,s),D(t,e)};export{y as SearchableMap,P as WILDCARD,D as add,j as addAll,At as addAllAsync,qt as autoSuggest,at as createIndex,J as discard,Rt as discardAll,Mt as getDefaultValue,zt as getStoredFields,Y as has,ht as loadIndex,ft as loadIndexAsync,Nt as loadJSONIndex,Wt as loadJSONIndexAsync,yt as remove,Jt as removeAll,Ut as replace,ut as search,Pt as vacuum};\n//# sourceMappingURL=index.js.map\n",null,null,null,null,null],"names":["timeToString","time","hours","Math","floor","minutes","toString","padStart","durationToString","duration","DOT_CONFIG","colors","rounds","defaultRound","originStation","destinationStation","defaultStation","continuationFill","penWidth","continuation","continuationEdge","isVehicleEdge","edge","isTransferEdge","isAccessEdge","DotBuilder","constructor","this","lines","addHeader","push","addComment","comment","addNode","id","attrs","attrStr","Object","entries","map","k","v","join","addEdge","from","to","attrPart","addRaw","build","varint64read","lowBits","highBits","shift","b","buf","pos","assertBounds","middleByte","Error","varint64write","lo","hi","bytes","i","hasNext","byte","splitBits","hasMoreBits","TWO_PWR_32_DBL","int64FromString","dec","minus","slice","base","add1e6digit","begin","end","digit1e6","Number","negate","newBits","uInt64ToString","toUnsigned","String","mid","high","digitA","digitB","digitC","decimalFrom1e7WithLeadingZeros","digit1e7","partial","length","varint32write","value","varint32read","result","readBytes","protoInt64","makeInt64Support","dv","DataView","ArrayBuffer","BigInt","getBigInt64","getBigUint64","setBigInt64","setBigUint64","globalThis","Deno","process","env","BUF_BIGINT_DISABLE","MIN","MAX","UMIN","UMAX","zero","supported","parse","bi","uParse","enc","getInt32","uEnc","setInt32","uDec","assertInt64String","assertUInt64String","bits","negative","int64ToString","test","symbol","Symbol","for","getTextEncoding","undefined","te","TextEncoder","td","TextDecoder","encodeUtf8","text","encode","decodeUtf8","decode","checkUtf8","encodeURIComponent","_","WireType","FLOAT32_MAX","FLOAT32_MIN","BinaryWriter","stack","chunks","finish","Uint8Array","len","offset","set","fork","chunk","prev","pop","uint32","byteLength","raw","tag","fieldNo","type","assertUInt32","int32","assertInt32","bool","string","float","arg","o","isNaN","isFinite","assertFloat32","buffer","setFloat32","double","setFloat64","fixed32","setUint32","sfixed32","sint32","sfixed64","view","tc","fixed64","int64","sint64","sign","uint64","BinaryReader","varint64","byteOffset","wireType","skip","start","Varint","Bit64","Bit32","LengthDelimited","StartGroup","fn","wt","EndGroup","subarray","RangeError","zze","s","getUint32","getFloat32","getFloat64","isInteger","TransferType","RouteType","transferTypeFromJSON","object","TRANSFER_TYPE_UNSPECIFIED","TRANSFER_TYPE_RECOMMENDED_TRANSFER_POINT","TRANSFER_TYPE_TIMED_TRANSFER","TRANSFER_TYPE_REQUIRES_MINIMAL_TIME","TRANSFER_TYPE_IN_SEAT_TRANSFER","UNRECOGNIZED","routeTypeFromJSON","ROUTE_TYPE_UNSPECIFIED","ROUTE_TYPE_TRAM","ROUTE_TYPE_SUBWAY","ROUTE_TYPE_RAIL","ROUTE_TYPE_BUS","ROUTE_TYPE_FERRY","ROUTE_TYPE_CABLE_TRAM","ROUTE_TYPE_AERIAL_LIFT","ROUTE_TYPE_FUNICULAR","ROUTE_TYPE_TROLLEYBUS","ROUTE_TYPE_MONORAIL","createBaseRoute","stopTimes","pickupDropOffTypes","stops","serviceRouteId","Route","message","writer","input","reader","fromJSON","isSet","bytesFromBase64","toJSON","obj","base64FromBytes","round","create","fromPartial","_a","_b","_c","_d","Transfer","destination","minTransferTime","transferTypeToJSON","TripStop","stopIndex","routeId","tripIndex","TripTransferEntry","origin","destinations","Array","isArray","e","StopAdjacency","routes","transfers","end2","ServiceRoute","name","routeTypeToJSON","Timetable","stopsAdjacency","routesAdjacency","serviceRoutes","tripContinuations","guaranteedTripTransfers","_e","b64","Buffer","bin","atob","arr","charCodeAt","forEach","fromCharCode","btoa","nbStops","nbTrips","stopIndices","Map","stopId","existingIndices","get","of","params","trips","firstTrip","stopIds","Uint32Array","stop","numStops","trip","Uint16Array","baseIndex","arrivalTime","departureTime","totalStopEntries","ceil","globalIndex","pickUp","pickUpType","dropOff","dropOffType","byteIndex","isSecondPair","serialize","getNbStops","getNbTrips","serviceRoute","arrivalAt","arrivalIndex","arrival","tripStopOffset","arrivalAtOffset","departureAtOffset","dropOffTypeAtOffset","departureFrom","departureIndex","departure","pickUpTypeFrom","dropOffTypeAt","findEarliestTrip","after","beforeTrip","min","lb","stopRouteIndices","stopRouteIndex","VALUE_MASK","MAX_VALUE","TRIP_INDEX_SHIFT","ROUTE_ID_SHIFT","STOP_INDEX_SHIFT","validateValue","isLittleEndian","STANDARD_ENDIANNESS","uint32ArrayToBytes","array","bytesToUint32Array","uint16ArrayToBytes","setUint16","bytesToUint16Array","getUint16","serializeRoutesAdjacency","protoRoutesAdjacency","route","routeData","parseTransferType","ProtoTransferType","serializeTransferType","parseRouteType","ProtoRouteType","serializeRouteType","serializeTripTransfers","tripTransfers","tripBoardingId","originStopIndex","originRouteId","originTripIndex","tripStopId","tripStop","deserializeTripTransfers","protoTripTransfer","entry","protoTripStop","ALL_TRANSPORT_MODES","Set","EMPTY_TRIP_BOARDINGS","activeStops","add","protoTimetable","transfer","assign","ProtoTimetable","fromData","data","protoStopsAdjacency","j","newTransfer","stopAdjacency","deserializeStopsAdjacency","deserializeRoutesAdjacency","protoServiceRoutes","deserializeServiceRoutesMap","isActive","has","getRoute","getTransfers","getContinuousTrips","getServiceRouteInfo","routesPassingThrough","stopData","findReachableRoutes","fromStops","transportModes","reachableRoutes","filterByMode","originStop","existingHopOnStopIndex","isTripTransferGuaranteed","fromTripStop","toTripStop","guaranteedTransfers","findFirstBoardableTrip","earliestTrip","transferTime","t","getGuaranteedTripTransfers","Query","builder","fromValue","toValue","departureTimeValue","options","optionsValue","Builder","seconds","maxTransfers","maxDuration","maxInitialWaitingTime","RangeQuery","super","lastDepartureTime","lastDepartureTimeValue","rangeOptions","rangeOptionsValue","optimizeBeyondLatestDeparture","legs","cumulativeAccessTime","leg","lastVehicleArrivalTime","totalTransferTime","totalDuration","abs","index","fromStop","platform","toStop","transferDetails","accessDetails","travelDetails","filter","line","trim","pickUpDropOffTypeMap","toPickupDropOffType","rawType","Result","routingState","stopsIndex","timetable","expandDestinations","targets","expanded","target","equivalentStop","equivalentStops","bestRouteToSourceStopId","sourceId","found","findStopBySourceStopId","size","bestRoute","destinationStops","fastestDestination","fastestArrivalTime","fastestLegNumber","arrivalData","getArrival","legNumber","previousVehicleEdge","currentStop","graph","boardingEdge","vehicleLeg","continuationOf","vehicleEdge","chainedEdges","buildVehicleLeg","hopOffStopIndex","buildGuaranteedTransferLeg","buildTransferLeg","buildAccessLeg","reverse","edges","firstEdge","lastEdge","firstRoute","lastRoute","findStopById","fromEdge","toEdge","fromRoute","toRoute","fromStopId","toStopId","earliestArrival","arrivalEdge","AccessFinder","collectAccessPaths","queryOrigin","fallbackMinTransferTime","equivalentOrigins","accessPaths","existingAccess","values","collectDepartureTimes","slotMap","path","searchFrom","searchTo","dep","paths","sort","a","depTime","UNREACHED_TIME","RoutingState","maxRounds","_destinationBest","maxArrivalTime","reachedStops","destinationSet","earliestArrivalTimes","fill","earliestArrivalLegs","origins","r","seedAccessPaths","seededOrigins","access","destinationBest","improvementBound","_round","initRound","updateArrival","resetFor","arrivals","earliestArrivalAtAnyDestination","isDestination","fromTestData","state","dest","denseRounds","splice","PlainRouter","accessFinder","raptor","query","accessLegs","flatMap","run","RangeResult","runs","_runs","_destinations","normalizeTargets","getRoutes","targetStops","bestRun","bestArrival","latestDepartureRoute","fastestRoute","fastestRun","shortestDuration","Infinity","earliestArrivalAt","best","shortestDurationTo","shortest","allShortestDurations","durations","existing","allEarliestArrivals","iterator","RangeRaptorState","latestDeparture","roundLabels","changedInRound","setCurrentRun","currentRun","round0","currentRunArrival","changed","curr","RangeRouter","rangeRoute","earliest","latest","noDestinations","departureSlots","rangeState","paretoRuns","paretoDestBest","trivialDests","includes","trivialDestCovered","isParetoOptimal","Raptor","markedStops","edgesAtCurrentRound","clear","hopOnStopIndex","scanRoute","continuations","findTripContinuations","stopsFromContinuations","scanRouteContinuation","considerTransfers","continuousTrips","previousEdge","tripContinuation","newlyMarkedStops","currentStopIndex","edgesAtPreviousRound","activeTripIndex","activeTripBoardStopIndex","activeTripStopOffset","earliestArrivalOnPreviousRound","firstBoardableTrip","exceedsInitialWait","exceedsMaxDuration","arrivalsAtCurrentRound","currentArrival","arrivalAfterTransfer","TinyQueue","compare","defaultCompare","_down","item","_up","top","bottom","peek","parent","current","halfLength","left","right","rad","PI","boxDist","lng","lat","cosLat","node","minLng","maxLng","minLat","maxLat","haverSin","haverSinDLng","extremumLat","cosDLng","atan","tan","vertexLat","haverSinDistPartial","compareDist","dist","theta","sin","cosLat1","lat1","lat2","cos","haverSinDist","lng1","lng2","ARRAY_TYPES","Int8Array","Uint8ClampedArray","Int16Array","Int32Array","Float32Array","Float64Array","KDBush","magic","versionAndType","version","ArrayType","nodeSize","numItems","max","IndexArrayType","arrayTypeIndex","indexOf","coordsByteSize","BYTES_PER_ELEMENT","idsByteSize","padCoords","ids","coords","_pos","_finished","x","y","numAdded","range","minX","minY","maxX","maxY","axis","m","within","qx","qy","r2","sqDist","select","n","z","log","exp","sd","sqrt","swapItem","swap","tmp","ax","ay","bx","by","dx","dy","U","B","L","_type","_path","_tree","keys","next","dive","backtrack","done","key","_prefix","G","c","d","u","f","g","h","l","p","w","C","I","F","_size","atPrefix","startsWith","S","A","Ft","fuzzyGet","xt","O","E","update","fetch","fromObject","delete","K","Q","St","V","Z","bt","vt","X","tt","score","et","T","prototype","hasOwnProperty","call","nt","terms","match","kt","ot","_fieldIds","_options","logger","_documentIds","st","_index","M","Lt","_fieldLength","_avgFieldLength","D","extractField","stringifyField","tokenize","processTerm","fields","idField","_idToShortId","Y","_nextId","_documentCount","Ot","storeFields","_storedFields","Et","q","split","toLowerCase","searchOptions","console","autoVacuum","it","combineWith","prefix","fuzzy","maxFuzzy","boost","weights","bm25","Tt","N","minDirtFactor","minDirtCount","W","batchSize","batchWait","P","rt","reduce","R","ct","boostDocument","Dt","queries","term","termBoost","boostTerm","Ct","jt","$t","_dirtCount","_currentVacuum","_enqueuedVacuum","_enqueuedVacuumConditions","autoSuggestOptions","addFields","isVacuuming","dirtCount","dirtFactor","documentCount","termCount","fromEntries","nextId","documentIds","fieldIds","fieldLength","averageFieldLength","storedFields","generateAccentVariants","lowerCaseTerm","alternatives","accentMap","ae","oe","ue","accents","accent","replace","LocationType","locationTypeFromJSON","LOCATION_TYPE_UNSPECIFIED","LOCATION_TYPE_SIMPLE_STOP_OR_PLATFORM","LOCATION_TYPE_STATION","LOCATION_TYPE_ENTRANCE_EXIT","LOCATION_TYPE_GENERIC_NODE","LOCATION_TYPE_BOARDING_AREA","Stop","sourceStopId","lon","children","locationType","locationTypeToJSON","_f","_g","_h","StopsMap","serializeStopsMap","serializeStop","serializeLocationType","deserializeStopsMap","protoStopsMap","intKey","deserializeStop","protoStop","parseProtoLocationType","protoLocationType","ProtoLocationType","StopsIndex","sourceStopsMap","stopsSet","stopPoints","effectiveStopId","textIndex","stopsArray","addAll","geoIndex","KDTree","ProtoStopsMap","findStopsByName","maxResults","queryTerms","search","findStopsByLocation","radius","nearestStops","maxDistance","maxHaverSinDist","midLng","midLat","nextAxis","leftNode","rightNode","candidate","around","stopPoint","stationNodeId","vehicleEdgeNodeId","transferEdgeNodeId","accessEdgeNodeId","continuationNodeId","getRoundColor","colorIndex","getStationFillColor","isOrigin","escapeDotString","str","formatStopName","escapedName","escapedPlatform","getStationInfo","getVehicleEdgeFromStopId","getVehicleEdgeToStopId","createStationNode","displayName","stopIdStr","nodeId","stationInfo","createVehicleEdge","fromNodeId","toNodeId","roundColor","routeOvalId","serviceRouteInfo","routeName","routeType","escapedRouteName","createAccessEdge","color","ovalId","createTransferEdge","transferOvalId","createContinuationEdge","fromStationId","toStationId","continuationOvalId","fromServiceRouteInfo","toServiceRouteInfo","fromRouteName","toRouteName","fromRouteType","toRouteType","fromArrivalTime","toDepartureTime","escapedFromRouteName","escapedToRouteName","escapedFromRouteType","escapedToRouteType","ovalLabel","edgePenWidth","collectStations","stations","roundEdges","collectContinuationChain","continuationEdges","currentEdge","edgeParts","collectEdges","plotDotGraph","stationNode","plainRouter","rangeRouter"],"mappings":"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","x_google_ignoreList":[2,3,4,5,21,22,23,24]}