{"version":3,"sources":["../../../../src/classes/ribbon/codecs/codec-candor.ts"],"sourcesContent":["// @ts-nocheck\nimport { Bits as n } from \"./utils/bits\";\nimport r from \"./utils/msgpackr-943ed70\";\nimport {\n  OptionsList,\n  spinbonuses_rules,\n  kicksets,\n  tetrominoes,\n  minocolors\n} from \"./utils/shared\";\n\nimport { strictShallowEqual } from \"fast-equals\";\n\nconst e = Buffer;\n\nlet cached = {};\nfunction itdo(e: any) {\n  const t = Object.prototype.toString.call(e);\n  if (cached[t]) {\n    return cached[t];\n  } else {\n    return (cached[t] = t.substring(8, t.length - 1).toLowerCase());\n  }\n}\nfunction initOptions() {\n  let OptionsTemplate = {};\n  for (const [e, t] of Object.entries(OptionsList)) {\n    OptionsTemplate[e] = t.default;\n    const n = itdo(t.default);\n    switch (n) {\n      case \"boolean\":\n      case \"number\":\n      case \"array\":\n      case \"object\":\n        // @ts-ignore\n        t.type = n;\n        break;\n      case \"string\":\n        // @ts-ignore\n        t.type = t.allowed || t.possibles ? \"table\" : \"string\";\n        break;\n      default:\n        throw new TypeError(\n          `Error while templating ${e}: typeof ${n} is not supported as default values`\n        );\n    }\n  }\n}\ninitOptions();\nconst ve = {\n  int64AsType: \"number\",\n  bundleStrings: false,\n  sequential: false\n};\nconst ke = new r.Packr(ve);\nconst we = new r.Unpackr(ve);\nconst Be = {\n  F_ALLOC: 1,\n  F_HOOK: 2,\n  F_ID: 128\n};\nconst Le = new (class {\n  _commands = new Map();\n  _codes = new Map();\n  _PACK = null;\n  _UNPACK = null;\n  SymCmd = Symbol(\"cmd\");\n  FLAG = Be;\n  SetMsgpackr(e, t) {\n    this._PACK = e.pack.bind(e);\n    this._UNPACK = t.unpack.bind(t);\n  }\n  GetHandlers() {\n    const c = [];\n    for (const t of this._commands.values()) {\n      if (t.flags & this.FLAG.F_HOOK) {\n        c.push(t.name);\n      }\n    }\n    const h = this._commands.get(\"__pack__\")?.table;\n    if (h) {\n      c.push.apply(c, Object.keys(h));\n    }\n    return c;\n  }\n  Add(t, n) {\n    this._commands.set(t, n);\n    this._codes.set(n.code, n);\n    n.name = t;\n    if (n.flags & this.FLAG.F_ALLOC) {\n      n.buffer = e.from([n.code]);\n    }\n    if (n.table) {\n      n._kv = new Map();\n      n._vk = new Map();\n      n.getkv = (e) => n._kv.get(e);\n      n.getvk = (e) => n._vk.get(e);\n      for (const [e, t] of Object.entries(n.table)) {\n        n._kv.set(e, t);\n        n._vk.set(t, e);\n      }\n    }\n  }\n  Encode(t, n, i = {}) {\n    const s = this._commands.get(t) ?? this._commands.get(\"__pack__\");\n    let o = s.code;\n    let r = 1;\n    if (s.flags & this.FLAG.F_ALLOC) {\n      return s.buffer;\n    }\n    if (!i.batched && (s.flags & this.FLAG.F_ID || i.id)) {\n      r += 3;\n      o |= this.FLAG.F_ID;\n    }\n    const a = s.encode(n, this._PACK, t);\n    const l = e.allocUnsafe(r + a.byteLength);\n    l.writeUInt8(o, 0);\n    l.set(a, r);\n    return l;\n  }\n  Decode(e) {\n    const t = new n(e);\n    const i = t.peek(6, 2);\n    const s = this._codes.get(i);\n    const o = {\n      command: s?.name\n    };\n    let r = 1;\n    if (!s) {\n      throw new ReferenceError(\n        `received an unknown code [0x${i.toString(16).padStart(2, \"0\")}]`\n      );\n    }\n    if (s.flags & this.FLAG.F_ALLOC) {\n      return o;\n    }\n    if (e[0] & this.FLAG.F_ID) {\n      o.id = t.peek(24, 8);\n      r += 3;\n    }\n    e = e.subarray(r);\n    try {\n      o.data = s.decode(e, this._UNPACK);\n    } catch (t) {\n      console.error(`Failed to decode command ${s.name}: ${e.toString()}`);\n      throw t;\n    }\n    if (this.SymCmd in o.data) {\n      o.command = o.data[this.SymCmd];\n      o.data = o.data.data;\n    }\n    return o;\n  }\n})();\n{\n  const { F_ALLOC: t, F_HOOK: n, F_ID: i } = Le.FLAG;\n  const s = {\n    code: 25,\n    flags: t\n  };\n  Le.Add(\"new\", s);\n  const o = {\n    code: 63,\n    flags: t\n  };\n  Le.Add(\"die\", o);\n  const r = {\n    code: 19,\n    flags: n | t\n  };\n  Le.Add(\"rejected\", r);\n  const a = {\n    code: 33,\n    flags: n | t\n  };\n  Le.Add(\"reload\", a);\n  Le.Add(\"ping\", {\n    code: 9,\n    flags: n,\n    encode({ recvid: t }) {\n      const n = e.allocUnsafe(4);\n      n.writeUInt32BE(t, 0);\n      return n;\n    },\n    decode(e) {\n      return {\n        recvid: e.readUInt32BE(0)\n      };\n    }\n  });\n  Le.Add(\"session\", {\n    code: 44,\n    encode({ ribbonid: t, tokenid: n }) {\n      const i = e.allocUnsafe(16);\n      i.write(t, 0, 8, \"hex\");\n      i.write(n, 8, 8, \"hex\");\n      return i;\n    },\n    decode: (e) => ({\n      ribbonid: e.toString(\"hex\", 0, 8),\n      tokenid: e.toString(\"hex\", 8, 16)\n    })\n  });\n  Le.Add(\"packets\", {\n    code: 7,\n    encode({ packets: t }) {\n      const n = t.reduce((e, t) => e + t.length, 0);\n      const i = e.allocUnsafe(n + t.length * 4);\n      for (let e = 0, n = 0; e < t.length; e++) {\n        const s = t[e];\n        i.writeUInt32BE(s.length, n);\n        i.set(s, n + 4);\n        n += s.length + 4;\n      }\n      return i;\n    },\n    decode(e) {\n      const t = [];\n      for (let n = 0; n < e.length; ) {\n        const i = e.readUInt32BE(n);\n        n += 4;\n        const s = e.subarray(n, n + i);\n        t.push(s);\n        n += i;\n      }\n      return {\n        packets: t\n      };\n    }\n  });\n  Le.Add(\"kick\", {\n    table: {\n      outdated: 1,\n      kick: 2,\n      restrict: 3,\n      block: 4,\n      anticheat: 5,\n      manual: 6,\n      rename: 7\n    },\n    flags: n,\n    code: 4,\n    encode({ reason: t }) {\n      let n = e.allocUnsafe(1);\n      const i = this.getkv(t);\n      n.writeUInt8(i, 0);\n      if (!i) {\n        n = e.concat([n, e.from(t)]);\n      }\n      return n;\n    },\n    decode(e) {\n      const t = e.readUInt8(0);\n      let n = this.getvk(t);\n      n ||= e.toString(\"utf8\", 1);\n      return {\n        reason: n\n      };\n    }\n  });\n  Le.Add(\"nope\", {\n    table: {\n      \"protocol violation\": 0,\n      \"ribbon expired\": 1\n    },\n    code: 42,\n    encode({ reason: t }) {\n      return e.from([this.getkv(t)]);\n    },\n    decode(e) {\n      const t = e.readUInt8(0);\n      return {\n        reason: this.getvk(t)\n      };\n    }\n  });\n  Le.Add(\"pni\", {\n    table: {\n      background: 0,\n      split: 1,\n      load: 2\n    },\n    code: 51,\n    flags: n,\n    encode({ type: t, timeout: n }) {\n      const i = e.allocUnsafe(3);\n      i.writeUInt8(this.getkv(t), 0);\n      i.writeUInt16BE(n, 1);\n      return i;\n    },\n    decode(e) {\n      return {\n        type: this.getvk(e.readUInt8(0)),\n        timeout: e.readUInt16BE(1)\n      };\n    }\n  });\n  Le.Add(\"notify\", {\n    table: {\n      deny: 1,\n      warm: 2,\n      ok: 3,\n      error: 4,\n      announce: 5\n    },\n    code: 49,\n    flags: n | i,\n    encode(t, n) {\n      const i = this.getkv(t.type);\n      const s = e.from([i]);\n      switch (i) {\n        case 1: {\n          const n = e.allocUnsafe(2 + t.msg.length);\n          n.writeUInt16BE(t.timeout);\n          n.write(t.msg, 2);\n          return e.concat([s, n]);\n        }\n        case 2:\n        case 3:\n        case 4:\n        case 5:\n          return e.concat([s, e.from(t.msg)]);\n        default:\n          return e.concat([s, n(t)]);\n      }\n    },\n    decode(e, t) {\n      const n = e.readUInt8(0);\n      const i = this.getvk(n);\n      switch (n) {\n        case 1:\n          return {\n            type: i,\n            timeout: e.readUInt16BE(1),\n            msg: e.toString(\"utf8\", 3)\n          };\n        case 2:\n        case 3:\n        case 4:\n        case 5:\n          return {\n            type: i,\n            msg: e.toString(\"utf8\", 1)\n          };\n        default:\n          return t(e.subarray(1));\n      }\n    }\n  });\n  Le.Add(\"__pack__\", {\n    table: {\n      \"config.handling\": 1,\n      \"channel.subscribe\": 2,\n      \"channel.unsubscribe\": 3,\n      \"social.presence\": 16,\n      \"social.invite\": 17,\n      \"social.link\": 18,\n      \"social.online\": 19,\n      \"social.notification\": 20,\n      \"social.notification.ack\": 21,\n      \"social.dm\": 22,\n      \"social.dm.fail\": 23,\n      \"social.relation.ack\": 24,\n      \"social.relation.add\": 25,\n      \"social.relation.remove\": 26,\n      \"social.relation.update\": 27,\n      \"social.relation.clear\": 28,\n      \"social.party.invite\": 29,\n      \"social.party.invite.accept\": 30,\n      \"game.enter\": 48,\n      \"game.replace\": 49,\n      \"game.forfeit\": 50,\n      \"game.ready\": 51,\n      \"game.start\": 52,\n      \"game.spectate\": 53,\n      \"game.submit\": 54,\n      \"game.advance\": 55,\n      \"game.abort\": 56,\n      \"game.end\": 57,\n      \"game.score\": 58,\n      \"game.waitstate\": 59,\n      \"game.match\": 60,\n      \"game.match.score\": 61,\n      \"game.replay\": 62,\n      \"game.replay.enter\": 63,\n      \"game.replay.ige\": 64,\n      \"game.replay.state\": 65,\n      \"game.replay.board\": 66,\n      \"game.replay.end\": 67,\n      \"game.scope.start\": 68,\n      \"game.scope.end\": 69,\n      \"game.setspec\": 70,\n      \"game.records.revolved\": 71,\n      \"party.ready\": 80,\n      \"party.leave\": 81,\n      \"party.members\": 83,\n      \"party.sync\": 82,\n      \"staff.chat\": 96,\n      \"staff.spam\": 97,\n      \"staff.warn\": 98,\n      \"staff.silence\": 99,\n      \"staff.lift\": 100,\n      \"staff.kickfail\": 101,\n      \"staff.shout\": 102,\n      \"staff.waterfall\": 103,\n      \"staff.game.event\": 104,\n      \"staff.xrc\": 105,\n      \"room.create\": 128,\n      \"room.join\": 129,\n      \"room.leave\": 130,\n      \"room.abort\": 131,\n      \"room.start\": 132,\n      \"room.kick\": 133,\n      \"room.unban\": 134,\n      \"room.banlist\": 135,\n      \"room.setid\": 136,\n      \"room.setconfig\": 137,\n      \"room.update\": 138,\n      \"room.update.bracket\": 139,\n      \"room.update.host\": 140,\n      \"room.update.auto\": 141,\n      \"room.update.supporter\": 142,\n      \"room.player.add\": 143,\n      \"room.player.remove\": 144,\n      \"room.bracket.switch\": 145,\n      \"room.bracket.move\": 146,\n      \"room.owner.transfer\": 147,\n      \"room.owner.revoke\": 148,\n      \"room.chat\": 149,\n      \"room.chat.send\": 150,\n      \"room.chat.clear\": 151,\n      \"room.chat.delete\": 152,\n      \"room.chat.gift\": 153,\n      \"room.chat.game\": 154,\n      \"room.call\": 155,\n      \"league.enter\": 177,\n      \"league.leave\": 178,\n      \"league.match\": 179,\n      \"league.counts\": 180,\n      \"league.ready\": 181,\n      \"server.maintenance\": 208,\n      \"server.announcement\": 209,\n      \"server.authorize\": 210,\n      \"server.migrate\": 211,\n      \"server.migrated\": 212,\n      \"xrc.relog\": 255\n    },\n    flags: i,\n    code: 43,\n    encode(t, n, i) {\n      const s = n(t);\n      const o = e.allocUnsafe(1 + s.length);\n      const r = this.getkv(i);\n      o.writeUInt8(r, 0);\n      o.set(s, 1);\n      return o;\n    },\n    decode(e, t) {\n      const n = e.readUInt8(0);\n      const i = this.getvk(n);\n      const s = t(e.subarray(1));\n      return {\n        [Le.SymCmd]: i,\n        data: s\n      };\n    }\n  });\n}\nconst Se = {\n  Table: 0,\n  Array: 1,\n  Struct: 2,\n  String: 3,\n  Buffer: 4,\n  Boolean: 5,\n  Int: 6,\n  UInt: 7,\n  DInt: 8,\n  Float: 9,\n  UFloat: 10,\n  Double: 11,\n  Number: 12,\n  Any: 13\n};\nconst Te = {\n  NaN: 0,\n  Infinity: 1,\n  UInt: 2,\n  Int: 3,\n  Double: 4\n};\nconst Me = {\n  BUFFER: 1,\n  DOUBLE: 2,\n  QWORD: 3,\n  HEX: 4\n};\nclass Ee {\n  static TYPES = Se;\n  static TYPES_INDEX = Array.from(Object.keys(this.TYPES));\n  static SUPPORTED_TYPES = new Set([\n    \"undefined\",\n    \"null\",\n    \"boolean\",\n    \"number\",\n    \"string\",\n    \"array\"\n  ]);\n  static cla32(e) {\n    if (e >>> 0 === e) {\n      return Math.max(32 - Math.clz32(e), 1);\n    } else {\n      return Math.max(32 - Math.clz32(~e) + 1, 2);\n    }\n  }\n  static GetIntSize(e) {\n    return Math.ceil(this.cla32(e) / 4);\n  }\n  static DInt = class {\n    constructor({ min: e, max: t }) {\n      this._minBits = e;\n      this._maxBits = t;\n      this._minSize = Math.pow(2, e);\n      this._maxSize = Math.pow(2, t);\n    }\n    get minSize() {\n      return this._minSize;\n    }\n    get maxSize() {\n      return this._maxSize;\n    }\n    readSize(e) {\n      if (e) {\n        return this._maxBits;\n      } else {\n        return this._minBits;\n      }\n    }\n    writeSize(e) {\n      let t;\n      switch (e) {\n        case e >>> 0:\n          t = this._minSize <= e;\n          break;\n        case e | 0:\n          t = -this._minSize / 2 > e;\n          break;\n        default:\n          throw new RangeError(\n            `Float/Double is not supported for DInt: got ${e}`\n          );\n      }\n      return {\n        bit: t,\n        size: t ? this._maxBits : this._minBits\n      };\n    }\n  };\n  static Number = new (class {\n    TYPES = Te;\n    encode(e, t) {\n      const { TYPES: n } = this;\n      if (typeof t != \"number\") {\n        throw new TypeError(`Attempted to encode ${typeof t} as a number`);\n      }\n      if (Number.isNaN(t)) {\n        return e.writeUInt(n.NaN, 3);\n      }\n      if (!Number.isFinite(t)) {\n        e.writeUInt(n.Infinity, 3);\n        return e.writeBoolean(t === Number.POSITIVE_INFINITY);\n      }\n      switch (t) {\n        case t >>> 0: {\n          const i = Ee.GetIntSize(t);\n          e.writeUInt(n.UInt, 3);\n          e.writeUInt(i - 1, 3);\n          e.writeUInt(t, i * 4);\n          break;\n        }\n        case t | 0: {\n          const i = Ee.GetIntSize(t);\n          e.writeUInt(n.Int, 3);\n          e.writeUInt(i - 1, 3);\n          e.writeInt(t, i * 4);\n          break;\n        }\n        default:\n          e.writeUInt(n.Double, 3);\n          e.writeDouble(t);\n      }\n    }\n    decode(e) {\n      switch (e.readUInt(3)) {\n        case 0:\n          return NaN;\n        case 1:\n          if (e.readBoolean()) {\n            return Number.POSITIVE_INFINITY;\n          } else {\n            return Number.NEGATIVE_INFINITY;\n          }\n        case 2: {\n          const t = e.readUInt(3) + 1;\n          return e.readUInt(t * 4);\n        }\n        case 3: {\n          const t = e.readUInt(3) + 1;\n          return e.readInt(t * 4);\n        }\n        case 4:\n          return e.readDouble();\n      }\n    }\n  })();\n  static Table = class {\n    constructor(e, t = \"strict\") {\n      this._kv = new Map();\n      this._vk = new Map();\n      for (const [t, a] of e.entries()) {\n        this._kv.set(a, t + 1);\n        this._vk.set(t + 1, a);\n      }\n      this._mode = t;\n      this._size = Math.floor(Math.log2(this._kv.size)) + 1;\n      this.has = this._kv.has.bind(this._kv);\n    }\n    get mode() {\n      return this._mode;\n    }\n    get size() {\n      return this._size;\n    }\n    get struct() {\n      const a = {};\n      for (const [t, l] of this._kv.entries()) {\n        a[t] = \"0x\" + l.toString(16).padStart(2, \"0\");\n      }\n      return a;\n    }\n    getkv(e) {\n      return this._kv.get(e);\n    }\n    getvk(e) {\n      return this._vk.get(e);\n    }\n  };\n  static Array = class {\n    constructor(e = \"default\", { list: t, min: n, max: i } = {}) {\n      this._mode = e;\n      switch (e) {\n        case \"strict\":\n          this._table = new Ee.Table(t);\n          break;\n        case \"flexible\":\n          throw new Error(\"Flexible mode is not implemented yet\");\n        case \"default\":\n      }\n      n = n ?? 7;\n      i = i ?? 15;\n      const h = {\n        min: n,\n        max: i\n      };\n      this._prop = new Ee.DInt(h);\n    }\n    get mode() {\n      return this._mode;\n    }\n    encode(e, t) {\n      e.writeDInt(t.length, this._prop);\n      switch (this._mode) {\n        case \"strict\":\n          for (const n of t) {\n            e.writeTable(n, this._table);\n          }\n          break;\n        case \"flexible\":\n          throw new Error(\"Flexible mode is not implemented yet\");\n        default:\n          for (const n of t) {\n            e.writeAny(n, this);\n          }\n      }\n    }\n    decode(e) {\n      const t = e.readDInt(this._prop);\n      const n = [];\n      if (this._mode === \"strict\") {\n        for (let i = 0; i < t; i++) {\n          n.push(e.readTable(this._table));\n        }\n      } else {\n        for (let i = 0; i < t; i++) {\n          n.push(e.readAny(this));\n        }\n      }\n      return n;\n    }\n  };\n  static init() {\n    this.SUPPORTED_TYPES_TABLE = new this.Table(\n      Array.from(this.SUPPORTED_TYPES.keys())\n    );\n    this.DEFAULT_ARRAY = new this.Array();\n    this.DEFAULT_PROP = new this.DInt({\n      min: 8,\n      max: 32\n    });\n  }\n  constructor() {\n    this.ref = new Map();\n    this.refid = 0;\n  }\n  static Encoder = class t extends this {\n    static TYPES = Me;\n    constructor(e = null, t = null) {\n      super();\n      this._buffer = [];\n      this._size = 0;\n      this._packr = e;\n      this._packBuffer = t;\n    }\n    get buffer() {\n      return this._buffer;\n    }\n    get size() {\n      return this._size;\n    }\n    get byteLength() {\n      return Math.ceil(this._size / 8);\n    }\n    realign() {\n      return (this._size += (8 - (this._size % 8)) % 8);\n    }\n    _insert(e, t, n = null) {\n      if (n) {\n        this.realign();\n      }\n      this._size += t;\n      return this._buffer.push({\n        val: e,\n        size: t,\n        type: n\n      });\n    }\n    writeTable(e, t) {\n      if (t.mode === \"strict\") {\n        return this._insert(t.getkv(e), t.size);\n      }\n      const n = t.getkv(e);\n      if (n === undefined) {\n        this._insert(null, t.size);\n        return this.writeAny(e);\n      } else {\n        return this._insert(n, t.size);\n      }\n    }\n    writeArray(e, t = Ee.DEFAULT_ARRAY) {\n      if (t.mode === \"strict\") {\n        return t.encode(this, e);\n      } else if (this.ref.has(e)) {\n        this._insert(true, 1);\n        return this.writeDInt(this.ref.get(e), Ee.DEFAULT_PROP);\n      } else {\n        this._insert(false, 1);\n        this.ref.set(e, this.refid++);\n        return t.encode(this, e);\n      }\n    }\n    writeStruct(e, t) {\n      return t.encode(this, e);\n    }\n    writeString(n, i = true) {\n      n = e.from(i ? `${n}\\0` : n);\n      return this._insert(n, n.byteLength * 8, t.TYPES.BUFFER);\n    }\n    writeBuffer(e) {\n      return this._insert(e, e.byteLength * 8, t.TYPES.BUFFER);\n    }\n    writeBoolean(e) {\n      return this._insert(!!e, 1);\n    }\n    writeInt(e, t) {\n      return this._insert(e, t);\n    }\n    writeUInt(e, t) {\n      return this._insert(e, t);\n    }\n    writeUInt64(e) {\n      return this._insert(e, 64, t.TYPES.QWORD);\n    }\n    writeDInt(e, t) {\n      const n = t.writeSize(e);\n      this._insert(n.bit, 1);\n      return this._insert(e, n.size);\n    }\n    writeFloat(e, t, n) {\n      this._insert(e < 0, 1);\n      return this._insert(Math.round(e * n), t);\n    }\n    writeUFloat(e, t, n) {\n      return this._insert(Math.round(e * n), t);\n    }\n    writeDouble(e) {\n      return this._insert(e, 64, t.TYPES.DOUBLE);\n    }\n    writeNumber(e) {\n      return Ee.Number.encode(this, e);\n    }\n    writeHex(e, n) {\n      return this._insert(e, n * 8, t.TYPES.HEX);\n    }\n    writeAny(e, t) {\n      const n = b(e);\n      if (!Ee.SUPPORTED_TYPES.has(n)) {\n        throw new TypeError(\n          `Type ${n} is not implemented for NetCodec.TYPES.Any`\n        );\n      }\n      this.writeTable(n, Ee.SUPPORTED_TYPES_TABLE);\n      switch (n) {\n        case \"boolean\":\n          this.writeBoolean(e);\n          break;\n        case \"null\":\n        case \"undefined\":\n          break;\n        case \"number\":\n          Ee.Number.encode(this, e);\n          break;\n        case \"string\":\n          this.writeString(e);\n          break;\n        case \"array\":\n          this.writeArray(e, t);\n      }\n    }\n    writeByType(e, t, ...n) {\n      return this[`write${Ee.TYPES_INDEX[e]}`](t, ...n);\n    }\n    pack(e) {\n      this._packr.useBuffer(this._packBuffer);\n      const n = this._packr.pack(e);\n      return this._insert(n, n.byteLength * 8, t.TYPES.BUFFER);\n    }\n    finalize(i = null) {\n      const s = i ?? e.allocUnsafe(this.byteLength);\n      const o = new n(s);\n      for (const { val: e, size: n, type: i } of this._buffer) {\n        switch (i) {\n          case t.TYPES.BUFFER:\n            o.offset += (8 - (o.offset % 8)) % 8;\n            s.set(e, o.offset / 8);\n            o.seek(e.byteLength * 8, 2);\n            break;\n          case t.TYPES.DOUBLE:\n            o.offset += (8 - (o.offset % 8)) % 8;\n            s.writeDoubleBE(e, o.offset / 8);\n            o.seek(64, 2);\n            break;\n          case t.TYPES.QWORD:\n            o.offset += (8 - (o.offset % 8)) % 8;\n            s.writeBigUInt64BE(e, o.offset / 8);\n            o.seek(64, 2);\n            break;\n          case t.TYPES.HEX:\n            o.offset += (8 - (o.offset % 8)) % 8;\n            s.write(e, o.offset / 8, \"hex\");\n            o.seek(n, 2);\n            break;\n          default:\n            o.write(e, n);\n        }\n      }\n      return s;\n    }\n  };\n  static Decoder = class e extends this {\n    static _MAX_BITS = Math.log2(Number.MAX_SAFE_INTEGER);\n    static _MAX_BITS_SIGNED = 32;\n    constructor(e, t = null) {\n      super();\n      this._bits = new n(e);\n      this._unpack = t;\n    }\n    get length() {\n      return this._bits.length;\n    }\n    get offset() {\n      return this._bits.offset;\n    }\n    set offset(e) {\n      this._bits.offset = e;\n    }\n    get buffer() {\n      return this._bits.buffer;\n    }\n    get byteOffset() {\n      return Math.ceil(this.offset / 8);\n    }\n    realign() {\n      this.offset = this.byteOffset * 8;\n    }\n    _read_signed(t) {\n      const n = e._MAX_BITS_SIGNED - t;\n      return (this._read(t) << n) >> n;\n    }\n    _read(e) {\n      return this._bits.read(e);\n    }\n    readTable(e) {\n      const t = e.size;\n      if (this.peek(t) !== 0) {\n        return e.getvk(this._read(t));\n      } else {\n        this.seek(t, 2);\n        return this.readAny();\n      }\n    }\n    readArray(e = Ee.DEFAULT_ARRAY) {\n      if (e.mode === \"strict\") {\n        return e.decode(this);\n      }\n      if (this._read(1)) {\n        return this.ref.get(this.readDInt(Ee.DEFAULT_PROP));\n      }\n      const t = [];\n      this.ref.set(this.refid++, t);\n      t.push.apply(t, e.decode(this));\n      return t;\n    }\n    readStruct(e) {\n      return e.decode(this);\n    }\n    readString(e) {\n      const t = this.byteOffset;\n      let n;\n      if (typeof e == \"number\") {\n        n = t + e;\n        this.seek(n * 8);\n      } else {\n        n = this.buffer.indexOf(0, t);\n        this.seek((n + 1) * 8);\n      }\n      return this.buffer.toString(\"utf8\", t, n);\n    }\n    readBuffer(e) {\n      const t = this.byteOffset;\n      const n = t + e;\n      this.seek(n * 8);\n      return this.buffer.subarray(t, n);\n    }\n    readBoolean() {\n      return !!this._read(1);\n    }\n    readInt(t) {\n      if (t > e._MAX_BITS_SIGNED) {\n        throw new RangeError(\n          `${t} of bits is not supported for signed values, max is ${e._MAX_BITS_SIGNED}`\n        );\n      }\n      return this._read_signed(t);\n    }\n    readUInt(t) {\n      if (t > e._MAX_BITS) {\n        throw new RangeError(\n          `${t} of bits is not supported, max is ${e._MAX_BITS}`\n        );\n      }\n      return this._read(t);\n    }\n    readUInt64() {\n      const e = this.byteOffset;\n      this.seek(e * 8 + 64);\n      return this.buffer.readBigUInt64BE(e);\n    }\n    readDInt(e, t = false) {\n      const n = e.readSize(this._read(1));\n      if (t) {\n        return this._read_signed(n);\n      } else {\n        return this._read(n);\n      }\n    }\n    readFloat(e, t) {\n      if (this.peek(1)) {\n        return this._read_signed(e + 1) / t;\n      } else {\n        this.seek(1, 2);\n        return this._read(e) / t;\n      }\n    }\n    readUFloat(e, t) {\n      return this._read(e) / t;\n    }\n    readDouble() {\n      const e = this.byteOffset;\n      this.seek(e * 8 + 64);\n      return this.buffer.readDoubleBE(e);\n    }\n    readNumber() {\n      return Ee.Number.decode(this);\n    }\n    readHex(e) {\n      const t = this.byteOffset;\n      const n = t + e;\n      this.seek(n * 8);\n      return this.buffer.toString(\"hex\", t, n);\n    }\n    readAny(e) {\n      switch (this.readTable(Ee.SUPPORTED_TYPES_TABLE)) {\n        case \"boolean\":\n          return this.readBoolean();\n        case \"null\":\n          return null;\n        case \"undefined\":\n          return;\n        case \"number\":\n          return Ee.Number.decode(this);\n        case \"string\":\n          return this.readString();\n        case \"array\":\n          return this.readArray(e);\n      }\n    }\n    readByType(e, ...t) {\n      return this[`read${Ee.TYPES_INDEX[e]}`](...t);\n    }\n    peek(e, t) {\n      return this._bits.peek(e, t);\n    }\n    peekTable(e, t = this.offset) {\n      return e.getvk(this.peek(e.size, t));\n    }\n    peekDInt(e, t = this.offset) {\n      return this.peek(e.readSize(this.peek(1, t)), t + 1);\n    }\n    seek(e, t) {\n      this._bits.seek(e, t);\n    }\n    unpack() {\n      this.realign();\n      return this._unpack(this.byteOffset);\n    }\n  };\n}\nclass De {\n  static _MAX_BUFFER = 65536;\n  static BUFFER = e.alloc(this._MAX_BUFFER);\n  static _LIST = {};\n  static get LIST() {\n    return this._LIST;\n  }\n  static AddExtension(t, n = {}) {\n    this._LIST[t.name] = t;\n    if (\"ownBuffer\" in n) {\n      t.BUFFER = e.alloc(this._MAX_BUFFER);\n    }\n  }\n  static AddTable(e, t, n) {\n    this[\"$$\" + e] = new Ee.Table(t, n);\n  }\n  static AddProperty(e, t) {\n    this[\"$\" + e] = new Ee.DInt(t);\n  }\n  static LoadExtensions(e) {\n    let a = 10;\n    function l(e) {\n      return e.encode.call(e, new Ee.Encoder(this, e.constructor.BUFFER));\n    }\n    function h(e, t, n, i) {\n      return e.decode(new Ee.Decoder(t, (e) => n(i + e)));\n    }\n    for (const n of Object.values(this._LIST)) {\n      n.ext_code = a++;\n      e.addExtension({\n        Class: n,\n        type: n.ext_code,\n        pack: l,\n        unpack: h.bind(null, n)\n      });\n    }\n  }\n}\nclass Oe extends De {\n  static AddStructure(e) {\n    this._cstFields = new Map();\n    this._fixFields = new Map();\n    this._optFields = new Map();\n    for (const [t, { mode: n, type: c, size: h, value: u }] of Object.entries(\n      e\n    )) {\n      switch (n) {\n        case \"static\":\n          this._cstFields.set(t, u);\n          break;\n        case \"fixed\":\n          const e = {\n            type: c,\n            size: h\n          };\n          this._fixFields.set(t, e);\n          break;\n        case \"optional\":\n          const n = {\n            type: c,\n            size: h\n          };\n          this._optFields.set(t, n);\n      }\n    }\n    super.AddTable(\"prop\", Array.from(this._optFields.keys()));\n  }\n  static encode(e, t) {\n    for (const [n, { type: i, size: s }] of this._fixFields.entries()) {\n      e.writeByType(i, t[n], s);\n    }\n    for (const [n, { type: i, size: s }] of this._optFields.entries()) {\n      if (t[n] !== undefined) {\n        if (i !== Ee.TYPES.DInt || t[n] !== null) {\n          e.writeTable(n, this.$$prop);\n          e.writeByType(i, t[n], s);\n        }\n      }\n    }\n    e.writeUInt(null, this.$$prop.size);\n  }\n  static decode(e) {\n    const t = {};\n    const n = this.$$prop.size;\n    for (const [n, { type: i, size: s }] of this._fixFields.entries()) {\n      t[n] = e.readByType(i, s);\n    }\n    for (let i = e.peek(n); i !== 0; i = e.peek(n)) {\n      const n = e.readTable(this.$$prop);\n      const { type: i, size: s } = this._optFields.get(n);\n      const o = e.readByType(i, s);\n      t[n] = o;\n    }\n    for (const [e, n] of this._cstFields.entries()) {\n      t[e] = n;\n    }\n    return t;\n  }\n}\nclass Pe extends De {\n  static init() {\n    super.AddExtension(this);\n    super.AddProperty(\"prov\", {\n      min: 18,\n      max: 26\n    });\n  }\n  static decode(e) {\n    return new this(e.readUInt(13), e.readDInt(this.$prov), e.unpack());\n  }\n  constructor(e, t, n) {\n    super();\n    this.gameid = e;\n    this.provisioned = t;\n    this.frames = n.map((e) => new Re(e));\n  }\n  encode(e) {\n    const t = this.constructor;\n    const n = this.provisioned;\n    e.writeUInt(this.gameid, 13);\n    e.writeDInt(n, t.$prov);\n    e.pack(this.frames);\n    return e.finalize();\n  }\n}\nclass We extends De {\n  static init() {\n    super.AddExtension(this);\n    super.AddProperty(\"long\", {\n      min: 16,\n      max: 32\n    });\n  }\n  static decode(e) {\n    const t = [];\n    const n = e.readUInt(13);\n    for (let i = 0; i < n; i++) {\n      const n = {\n        board: {}\n      };\n      n.gameid = e.readUInt(13);\n      n.board.f = e.readUInt(10);\n      n.board.g = e.readDInt(this.$long);\n      n.board.w = e.readUInt(Ue.MAX_WIDTH);\n      n.board.h = e.readUInt(Ue.MAX_HEIGHT);\n      n.board.b = e.readStruct(Ue);\n      t[i] = n;\n    }\n    return new this(t);\n  }\n  constructor(e) {\n    super();\n    this.boards = e;\n  }\n  encode(e) {\n    const t = this.constructor;\n    e.writeUInt(this.boards.length, 13);\n    for (const {\n      gameid: n,\n      board: { b: i, f: s, g: o, w: r, h: a }\n    } of this.boards) {\n      e.writeUInt(n, 13);\n      e.writeUInt(s, 10);\n      e.writeDInt(o, t.$long);\n      e.writeUInt(r, Ue.MAX_WIDTH);\n      e.writeUInt(a, Ue.MAX_HEIGHT);\n      e.writeStruct(i, Ue);\n    }\n    return e.finalize();\n  }\n}\nclass He extends De {\n  static init() {\n    super.AddExtension(this);\n    super.AddTable(\"extraStat\", [\n      \"none\",\n      \"revives\",\n      \"escapeartist\",\n      \"blockrationing_app\",\n      \"blockrationing_final\",\n      \"talentless\"\n    ]);\n  }\n  static decode(e) {\n    const t = [];\n    const n = e.readUInt(13);\n    for (let i = 0; i < n; i++) {\n      const n = {\n        stats: {},\n        allies: []\n      };\n      t[i] = n;\n      n.gameid = e.readUInt(13);\n      n.stats.rank = e.readUInt(6);\n      n.stats.altitude = e.readFloat(18, 10);\n      n.stats.btb = e.readUInt(13);\n      n.specCount = e.readUInt(10);\n      n.speedrun = e.readBoolean();\n      n.nearWR = e.readBoolean();\n      const s = e.readUInt(3);\n      for (let t = 0; t < s; t++) {\n        n.allies.push(e.readUInt(13));\n      }\n      n.stats.revives = 0;\n      n.stats.escapeartist = 0;\n      n.stats.blockrationing_app = 0;\n      n.stats.blockrationing_final = 0;\n      switch (e.readTable(this.$$extraStat)) {\n        case \"none\":\n          break;\n        case \"revives\":\n          n.stats.revives = e.readUInt(8);\n          break;\n        case \"escapeartist\":\n          n.stats.escapeartist = e.readUInt(9);\n          break;\n        case \"blockrationing_app\":\n          n.stats.blockrationing_app = e.readFloat(10, 100);\n          break;\n        case \"blockrationing_final\":\n          n.stats.blockrationing_final = e.readUInt(11);\n          break;\n        case \"talentless\":\n          n.talentless = true;\n      }\n    }\n    return new this(t);\n  }\n  constructor(e) {\n    super();\n    this.sb = e;\n  }\n  encode(e) {\n    const t = this.constructor;\n    e.writeUInt(this.sb.length, 13);\n    for (const {\n      gameid: n,\n      stats: i,\n      allies: s,\n      specCount: o,\n      speedrun: r,\n      nearWR: a,\n      talentless: l\n    } of this.sb) {\n      e.writeUInt(n, 13);\n      e.writeUInt(Math.floor(i.rank), 6);\n      e.writeFloat(i.altitude.toFixed(2), 18, 10);\n      e.writeUInt(i.btb, 13);\n      e.writeUInt(o, 10);\n      e.writeBoolean(r);\n      e.writeBoolean(a);\n      if (s) {\n        e.writeUInt(s.length, 3);\n        for (const t of s) {\n          e.writeUInt(t, 13);\n        }\n      } else {\n        e.writeUInt(0, 3);\n      }\n      let c = \"none\";\n      if (i.revives) {\n        c = \"revives\";\n      }\n      if (i.escapeartist) {\n        c = \"escapeartist\";\n      }\n      if (i.blockrationing_app) {\n        c = \"blockrationing_app\";\n      }\n      if (i.blockrationing_final) {\n        c = \"blockrationing_final\";\n      }\n      if (l) {\n        c = \"talentless\";\n      }\n      e.writeTable(c, t.$$extraStat);\n      switch (c) {\n        case \"none\":\n        case \"talentless\":\n          break;\n        case \"revives\":\n          e.writeUInt(i.revives, 8);\n          break;\n        case \"escapeartist\":\n          e.writeUInt(i.escapeartist, 9);\n          break;\n        case \"blockrationing_app\":\n          e.writeFloat(i.blockrationing_app.toFixed(3), 10, 100);\n          break;\n        case \"blockrationing_final\":\n          e.writeUInt(i.blockrationing_final, 11);\n      }\n    }\n    return e.finalize();\n  }\n}\nclass Re extends De {\n  static init() {\n    super.AddExtension(this, {\n      ownBuffer: true\n    });\n    super.AddProperty(\"frame\", {\n      min: 18,\n      max: 26\n    });\n    super.AddTable(\"type\", [\n      \"keydown\",\n      \"keyup\",\n      \"start\",\n      \"full\",\n      \"end\",\n      \"ige\",\n      \"strategy\",\n      \"manual_target\"\n    ]);\n    super.AddTable(\"key\", [\n      \"moveLeft\",\n      \"moveRight\",\n      \"rotate180\",\n      \"rotateCCW\",\n      \"rotateCW\",\n      \"softDrop\",\n      \"hardDrop\",\n      \"undo\",\n      \"redo\",\n      \"hold\",\n      \"retry\",\n      \"exit\"\n    ]);\n  }\n  static decode(e) {\n    const t = {};\n    t.type = e.readTable(this.$$type);\n    t.frame = e.readDInt(this.$frame);\n    switch (t.type) {\n      case \"keydown\":\n      case \"keyup\": {\n        const n = e.readTable(this.$$key);\n        const i = e.readBoolean();\n        const s = {\n          key: n,\n          subframe: e.readFloat(4, 10)\n        };\n        if (i) {\n          s.hoisted = true;\n        }\n        t.data = s;\n        break;\n      }\n      case \"start\":\n        t.data = {};\n        break;\n      case \"full\":\n        t.data = e.readStruct($e);\n        break;\n      case \"end\":\n        t.data = e.readStruct(nt);\n        break;\n      case \"ige\":\n        t.data = e.readStruct(je);\n        break;\n      case \"strategy\":\n        t.data = e.readUInt(3);\n        break;\n      case \"manual_target\":\n        t.data = e.readUInt(13);\n        break;\n      default:\n        t.data = e.unpack();\n    }\n    return new this(t);\n  }\n  constructor(e) {\n    super();\n    this.type = e.type;\n    this.frame = e.frame;\n    this.data = e.data;\n  }\n  encode(e) {\n    const t = this.constructor;\n    e.writeTable(this.type, t.$$type);\n    e.writeDInt(this.frame, t.$frame);\n    switch (this.type) {\n      case \"keydown\":\n      case \"keyup\": {\n        const n = this.data.hoisted;\n        const i = this.data.subframe;\n        e.writeTable(this.data.key, t.$$key);\n        e.writeBoolean(n);\n        e.writeFloat(i, 4, 10);\n        return e.finalize();\n      }\n      case \"start\":\n        return e.finalize();\n      case \"full\":\n        e.writeStruct(this.data, $e);\n        return e.finalize();\n      case \"end\":\n        e.writeStruct(this.data, nt);\n        return e.finalize();\n      case \"ige\":\n        e.writeStruct(this.data, je);\n        return e.finalize();\n      case \"strategy\":\n        e.writeUInt(this.data, 3);\n        return e.finalize();\n      case \"manual_target\":\n        e.writeUInt(this.data, 13);\n        return e.finalize();\n      default:\n        console.warn(\n          `Fallback to packer ${this.type} -> ${JSON.stringify(this.data)}`\n        );\n        e.pack(this.data);\n        return e.finalize();\n    }\n  }\n}\nclass Ne extends De {\n  static init() {\n    super.AddExtension(this);\n  }\n  static decode(e) {\n    const t = [];\n    const n = e.readUInt(13);\n    for (let i = 0; i < n; i++) {\n      const n = {};\n      n.userid = e.readHex(12);\n      n.gameid = e.readUInt(13);\n      n.alive = e.readBoolean();\n      n.naturalorder = e.readUInt(13);\n      n.options = e.readStruct(et);\n      t.push(n);\n    }\n    return t;\n  }\n  constructor(e) {\n    super();\n    this.players = e;\n  }\n  encode(e) {\n    e.writeUInt(this.players.length, 13);\n    for (const {\n      gameid: t,\n      userid: n,\n      alive: i,\n      naturalorder: s,\n      options: o\n    } of this.players) {\n      e.writeHex(n, 12);\n      e.writeUInt(t, 13);\n      e.writeBoolean(i);\n      e.writeUInt(s, 13);\n      e.writeStruct(o, et);\n    }\n    return e.finalize();\n  }\n}\nclass $e extends De {\n  static init() {\n    super.AddTable(\"piece\", [null, ...Object.keys(tetrominoes)], \"flexible\");\n    super.AddTable(\"ixs\", [\"off\", \"hold\", \"tap\"]);\n  }\n  static encode(e, t) {\n    const n = t.game.board;\n    const i = t.game.bag;\n    const s = t.game.hold;\n    const o = t.game.g;\n    const r = t.game.controlling;\n    const a = t.game.falling;\n    const l = t.game.handling;\n    e.writeUInt(i.length, 12);\n    for (const t of i) {\n      e.writeTable(t, this.$$piece);\n    }\n    e.writeStruct(n, Ue);\n    e.writeBoolean(s.locked);\n    e.writeTable(s.piece, this.$$piece);\n    e.writeDouble(o);\n    e.writeBoolean(r.inputSoftdrop);\n    e.writeBoolean(r.lastshift === -1);\n    e.writeBoolean(r.lShift.held);\n    e.writeBoolean(r.rShift.held);\n    e.writeUInt(t.diyusi, 4);\n    e.writeDouble(r.lShift.arr);\n    e.writeDouble(r.rShift.arr);\n    e.writeDouble(r.lShift.das);\n    e.writeDouble(r.rShift.das);\n    e.writeStruct(a, Xe);\n    e.writeFloat(l.arr, 6, 10);\n    e.writeUInt(l.sdf, 6);\n    e.writeBoolean(l.safelock);\n    e.writeBoolean(l.cancel);\n    e.writeBoolean(l.may20g);\n    e.writeBoolean(t.game.playing);\n    e.writeFloat(l.das, 8, 10);\n    e.writeFloat(l.dcd, 8, 10);\n    e.writeTable(l.irs, this.$$ixs);\n    e.writeTable(l.ihs, this.$$ixs);\n    e.writeStruct(t.stats, qe);\n  }\n  static decode(e) {\n    const t = {};\n    const n = {\n      bag: [],\n      controlling: {\n        lShift: {\n          dir: -1\n        },\n        rShift: {\n          dir: 1\n        }\n      },\n      handling: {}\n    };\n    const i = n.controlling;\n    const s = n.handling;\n    const o = e.readUInt(12);\n    for (let t = 0; t < o; t++) {\n      n.bag.push(e.readTable(this.$$piece));\n    }\n    n.board = e.readStruct(Ue);\n    n.hold = {\n      locked: e.readBoolean(),\n      piece: e.readTable(this.$$piece)\n    };\n    n.g = e.readDouble();\n    i.inputSoftdrop = e.readBoolean();\n    i.lastshift = e.readBoolean() ? -1 : 1;\n    i.lShift.held = e.readBoolean();\n    i.rShift.held = e.readBoolean();\n    t.diyusi = e.readUInt(4);\n    i.lShift.arr = e.readDouble();\n    i.rShift.arr = e.readDouble();\n    i.lShift.das = e.readDouble();\n    i.rShift.das = e.readDouble();\n    n.falling = e.readStruct(Xe);\n    s.arr = e.readFloat(6, 10);\n    s.sdf = e.readUInt(6);\n    s.safelock = e.readBoolean();\n    s.cancel = e.readBoolean();\n    s.may20g = e.readBoolean();\n    n.playing = e.readBoolean();\n    s.das = e.readFloat(8, 10);\n    s.dcd = e.readFloat(8, 10);\n    s.irs = e.readTable(this.$$ixs);\n    s.ihs = e.readTable(this.$$ixs);\n    t.stats = e.readStruct(qe);\n    t.game = n;\n    return t;\n  }\n}\nclass Ue extends De {\n  static MAX_WIDTH = Math.log2(512);\n  static MAX_HEIGHT = Math.log2(512);\n  static init() {\n    super.AddTable(\"blk\", [false, null, ...minocolors]);\n  }\n  static encode(e, t) {\n    const n = t[0]?.length ?? 0;\n    const i = t.length;\n    if (!n) {\n      return e.writeUInt(0, this.MAX_WIDTH);\n    }\n    e.writeUInt(n, this.MAX_WIDTH);\n    e.writeUInt(i, this.MAX_HEIGHT);\n    for (const n of t) {\n      if (n.some((e) => e !== null)) {\n        for (const t of n) {\n          e.writeTable(t, this.$$blk);\n        }\n      } else {\n        e.writeTable(false, this.$$blk);\n      }\n    }\n  }\n  static decode(e) {\n    const t = [];\n    const n = e.readUInt(this.MAX_WIDTH);\n    if (!n) {\n      return t;\n    }\n    const i = e.readUInt(this.MAX_HEIGHT);\n    for (let s = 0; s < i; s++) {\n      if (e.peekTable(this.$$blk) !== false) {\n        t[s] = [];\n        for (let i = 0; i < n; i++) {\n          t[s][i] = e.readTable(this.$$blk);\n        }\n      } else {\n        e.seek(4, 2);\n        t[s] = new Array(n).fill(null);\n      }\n    }\n    return t;\n  }\n}\nclass Xe extends De {\n  static init() {\n    super.AddTable(\"piece\", [null, ...Object.keys(tetrominoes)], \"flexible\");\n  }\n  static encode(e, t) {\n    e.writeTable(t.type, this.$$piece);\n    e.writeInt(t.x, Ue.MAX_WIDTH);\n    e.writeUInt(t.r, 2);\n    e.writeUInt(t.hy, Ue.MAX_HEIGHT);\n    e.writeUInt(t.irs, 2);\n    e.writeUInt(t.kick, 5);\n    e.writeUInt(t.keys, 16);\n    e.writeUInt(t.flags, 15);\n    e.writeUInt(t.safelock, 3);\n    e.writeUInt(t.lockresets, 5);\n    e.writeUInt(t.rotresets, 6);\n    e.writeBoolean(t.skip.length);\n    if (t.skip.length) {\n      for (const n of t.skip) {\n        e.writeUInt(n + 1, 7);\n      }\n      e.writeUInt(0, 7);\n    }\n    e.writeDouble(t.y);\n    e.writeDouble(t.locking);\n  }\n  static decode(e) {\n    const t = {};\n    t.type = e.readTable(this.$$piece);\n    t.x = e.readInt(Ue.MAX_WIDTH);\n    t.r = e.readUInt(2);\n    t.hy = e.readUInt(Ue.MAX_HEIGHT);\n    t.irs = e.readUInt(2);\n    t.kick = e.readUInt(5);\n    t.keys = e.readUInt(16);\n    t.flags = e.readUInt(15);\n    t.safelock = e.readUInt(3);\n    t.lockresets = e.readUInt(5);\n    t.rotresets = e.readUInt(6);\n    t.skip = [];\n    if (e.readBoolean()) {\n      const n = 7;\n      for (let i = e.peek(n); i !== 0; i = e.peek(n)) {\n        t.skip.push(e.readUInt(n) - 1);\n      }\n      e.seek(n, 2);\n    }\n    t.y = e.readDouble();\n    t.locking = e.readDouble();\n    return t;\n  }\n}\nclass qe extends De {\n  static init() {\n    super.AddTable(\"piece\", [...Object.keys(tetrominoes)], \"flexible\");\n    super.AddProperty(\"short\", {\n      min: 8,\n      max: 16\n    });\n    super.AddProperty(\"long\", {\n      min: 16,\n      max: 32\n    });\n    this._clears = [\n      \"singles\",\n      \"doubles\",\n      \"triples\",\n      \"quads\",\n      \"pentas\",\n      \"realtspins\",\n      \"minitspins\",\n      \"minitspinsingles\",\n      \"tspinsingles\",\n      \"minitspindoubles\",\n      \"tspindoubles\",\n      \"minitspintriples\",\n      \"tspintriples\",\n      \"minitspinquads\",\n      \"tspinquads\",\n      \"tspinpentas\",\n      \"allclear\"\n    ];\n  }\n  static encode(e, t) {\n    const n = t.garbage;\n    const i = t.clears;\n    const s = t.finesse;\n    e.writeDInt(t.lines, this.$short);\n    e.writeDInt(t.level_lines, this.$short);\n    e.writeDInt(t.level_lines_needed, this.$short);\n    e.writeDInt(t.inputs, this.$long);\n    e.writeDInt(t.holds, this.$long);\n    e.writeDInt(t.score, this.$long);\n    e.writeUInt(t.level, 8);\n    e.writeDInt(t.combo, this.$long);\n    e.writeDInt(t.topcombo, this.$long);\n    e.writeUInt(t.combopower, 3);\n    e.writeDInt(t.btb, this.$short);\n    e.writeDInt(t.topbtb, this.$short);\n    e.writeUInt(t.btbpower, 8);\n    e.writeDInt(t.tspins, this.$long);\n    e.writeDInt(t.piecesplaced, this.$long);\n    for (const t of this._clears) {\n      e.writeDInt(i[t], this.$short);\n    }\n    e.writeDInt(n.sent, this.$long);\n    e.writeDInt(n.sent_nomult, this.$long);\n    e.writeDInt(n.maxspike, this.$long);\n    e.writeDInt(n.maxspike_nomult, this.$long);\n    e.writeDInt(n.received, this.$long);\n    e.writeDInt(n.attack, this.$long);\n    e.writeDInt(n.cleared, this.$long);\n    e.writeDInt(t.kills, this.$short);\n    e.writeDInt(s.combo, this.$long);\n    e.writeDInt(s.faults, this.$long);\n    e.writeDInt(s.perfectpieces, this.$long);\n    e.writeStruct(t.zenith, Ke);\n  }\n  static decode(e) {\n    const t = {\n      zenlevel: 1,\n      zenprogress: 0,\n      clears: {},\n      garbage: {},\n      finesse: {}\n    };\n    t.lines = e.readDInt(this.$short);\n    t.level_lines = e.readDInt(this.$short);\n    t.level_lines_needed = e.readDInt(this.$short);\n    t.inputs = e.readDInt(this.$long);\n    t.holds = e.readDInt(this.$long);\n    t.score = e.readDInt(this.$long);\n    t.level = e.readUInt(8);\n    t.combo = e.readDInt(this.$long);\n    t.topcombo = e.readDInt(this.$long);\n    t.combopower = e.readUInt(3);\n    t.btb = e.readDInt(this.$short);\n    t.topbtb = e.readDInt(this.$short);\n    t.btbpower = e.readUInt(8);\n    t.tspins = e.readDInt(this.$long);\n    t.piecesplaced = e.readDInt(this.$long);\n    for (const n of this._clears) {\n      t.clears[n] = e.readDInt(this.$short);\n    }\n    t.garbage.sent = e.readDInt(this.$long);\n    t.garbage.sent_nomult = e.readDInt(this.$long);\n    t.garbage.maxspike = e.readDInt(this.$long);\n    t.garbage.maxspike_nomult = e.readDInt(this.$long);\n    t.garbage.received = e.readDInt(this.$long);\n    t.garbage.attack = e.readDInt(this.$long);\n    t.garbage.cleared = e.readDInt(this.$long);\n    t.kills = e.readDInt(this.$short);\n    t.finesse.combo = e.readDInt(this.$long);\n    t.finesse.faults = e.readDInt(this.$long);\n    t.finesse.perfectpieces = e.readDInt(this.$long);\n    t.zenith = e.readStruct(Ke);\n    return t;\n  }\n}\nclass Ke extends De {\n  static init() {\n    super.AddProperty(\"long\", {\n      min: 16,\n      max: 32\n    });\n  }\n  static encode(e, t) {\n    e.writeDouble(t.altitude);\n    e.writeDouble(t.rank);\n    e.writeDouble(t.peakrank);\n    e.writeDouble(t.avgrankpts);\n    e.writeDouble(t.totalbonus);\n    e.writeFloat(t.targetingfactor, 16, 100);\n    e.writeFloat(t.targetinggrace, 16, 100);\n    e.writeUInt(t.floor, 4);\n    e.writeUInt(t.revives, 8);\n    e.writeUInt(t.revivesTotal, 8);\n    e.writeBoolean(t.speedrun);\n    e.writeBoolean(t.speedrun_seen);\n    for (let n = 0; n < 9; n++) {\n      e.writeDInt(t.splits[n], this.$long);\n    }\n  }\n  static decode(e) {\n    const t = {};\n    t.altitude = e.readDouble();\n    t.rank = e.readDouble();\n    t.peakrank = e.readDouble();\n    t.avgrankpts = e.readDouble();\n    t.totalbonus = e.readDouble();\n    t.targetingfactor = e.readFloat(16, 100);\n    t.targetinggrace = e.readFloat(16, 100);\n    t.floor = e.readUInt(4);\n    t.revives = e.readUInt(8);\n    t.revivesTotal = e.readUInt(8);\n    t.revivesMaxOfBoth = Math.max(t.revives, t.revivesTotal - t.revives);\n    t.speedrun = e.readBoolean();\n    t.speedrun_seen = e.readBoolean();\n    t.splits = [];\n    for (let n = 0; n < 9; n++) {\n      t.splits[n] = e.readDInt(this.$long);\n    }\n    return t;\n  }\n}\nclass je extends De {\n  static init() {\n    super.AddProperty(\"byte\", {\n      min: 8,\n      max: 24\n    });\n    super.AddTable(\"type\", [\n      \"interaction\",\n      \"interaction_confirm\",\n      \"target\",\n      \"targeted\",\n      \"allow_targeting\",\n      \"kev\",\n      \"custom\"\n    ]);\n    super.AddTable(\"int_type\", [\n      \"garbage\",\n      \"zenith.climb_pts\",\n      \"zenith.bonus\",\n      \"zenith.incapacitated\",\n      \"zenith.revive\"\n    ]);\n  }\n  static encode(e, t) {\n    const n = t.frame;\n    const i = t.type;\n    const s = t.data;\n    e.writeDInt(t.id, this.$byte);\n    e.writeDInt(n, this.$byte);\n    e.writeTable(i, this.$$type);\n    switch (i) {\n      case \"interaction\":\n        return e.writeStruct(s, Ve);\n      case \"interaction_confirm\":\n        e.writeTable(s.type, this.$$int_type);\n        switch (s.type) {\n          case \"garbage\":\n            return e.writeStruct(s, Ve);\n          case \"zenith.climb_pts\":\n          case \"zenith.bonus\":\n            e.writeUInt(s.gameid, 13);\n            e.writeDInt(s.frame, this.$byte);\n            return e.writeDouble(s.amt);\n          case \"zenith.incapacitated\":\n          case \"zenith.revive\":\n            e.writeUInt(s.gameid, 13);\n            return e.writeDInt(s.frame, this.$byte);\n          default:\n            throw new Error(`Unknown interaction type received: ${s.type}`);\n        }\n      case \"target\":\n        e.writeUInt(s.targets.length, 13);\n        for (const t of s.targets) {\n          e.writeUInt(t, 13);\n        }\n        break;\n      case \"targeted\":\n        e.writeBoolean(s.value);\n        e.writeUInt(s.gameid, 13);\n        e.writeDInt(s.frame, this.$byte);\n        break;\n      case \"allow_targeting\":\n        e.writeBoolean(s.value);\n        break;\n      case \"kev\":\n        e.writeUInt(s.victim.gameid, 13);\n        e.writeUInt(s.killer.gameid, 13);\n        e.writeDInt(s.frame, this.$byte);\n        e.writeUInt(s.fire, 10);\n        break;\n      case \"custom\":\n        return e.writeStruct(s, Qe);\n    }\n  }\n  static decode(e) {\n    const t = {};\n    t.id = e.readDInt(this.$byte);\n    t.frame = e.readDInt(this.$byte);\n    t.type = e.readTable(this.$$type);\n    e: switch (t.type) {\n      case \"interaction\":\n        t.data = e.readStruct(Ve);\n        break;\n      case \"interaction_confirm\": {\n        const n = e.readTable(this.$$int_type);\n        switch (n) {\n          case \"garbage\":\n            t.data = e.readStruct(Ve);\n            break e;\n          case \"zenith.climb_pts\":\n          case \"zenith.bonus\":\n            t.data = {\n              type: n,\n              gameid: e.readUInt(13),\n              frame: e.readDInt(this.$byte),\n              amt: e.readDouble()\n            };\n            break e;\n          case \"zenith.incapacitated\":\n          case \"zenith.revive\":\n            t.data = {\n              type: n,\n              gameid: e.readUInt(13),\n              frame: e.readDInt(this.$byte)\n            };\n            break e;\n        }\n        break;\n      }\n      case \"target\": {\n        const n = [];\n        const i = e.readUInt(13);\n        for (let t = 0; t < i; t++) {\n          n.push(e.readUInt(13));\n        }\n        t.data = {\n          targets: n\n        };\n        break;\n      }\n      case \"targeted\":\n        t.data = {\n          value: e.readBoolean(),\n          gameid: e.readUInt(13),\n          frame: e.readDInt(this.$byte)\n        };\n        break;\n      case \"allow_targeting\":\n        t.data = {\n          value: e.readBoolean()\n        };\n        break;\n      case \"kev\":\n        t.data = {\n          victim: {\n            gameid: e.readUInt(13)\n          },\n          killer: {\n            gameid: e.readUInt(13)\n          },\n          frame: e.readDInt(this.$byte),\n          fire: e.readUInt(10)\n        };\n        break;\n      case \"custom\":\n        t.data = e.readStruct(Qe);\n    }\n    return t;\n  }\n}\nclass Ve extends Oe {\n  static init() {\n    super.AddProperty(\"byte\", {\n      min: 8,\n      max: 24\n    });\n    super.AddTable(\"type\", [\"garbage\", \"corruption\"]);\n    super.AddTable(\"actorType\", [\"none\", \"clears\", \"time\", \"line\"]);\n    super.AddTable(\"blk\", [null, ...minocolors]);\n    super.AddTable(\"position\", [\n      \"aboveStack\",\n      \"aboveUnclearable\",\n      \"abovePerma\",\n      \"bottom\"\n    ]);\n    const n = {\n      mode: \"fixed\",\n      type: Ee.TYPES.Table,\n      size: this.$$type\n    };\n    const F = {\n      mode: \"fixed\",\n      type: Ee.TYPES.DInt,\n      size: this.$byte\n    };\n    const P = {\n      mode: \"optional\",\n      type: Ee.TYPES.String,\n      size: true\n    };\n    const H = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: 13\n    };\n    const W = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$position\n    };\n    const G = {\n      mode: \"optional\",\n      type: Ee.TYPES.DInt,\n      size: this.$byte\n    };\n    const U = {\n      mode: \"optional\",\n      type: Ee.TYPES.DInt,\n      size: this.$byte\n    };\n    const $ = {\n      mode: \"optional\",\n      type: Ee.TYPES.DInt,\n      size: this.$byte\n    };\n    const j = {\n      mode: \"optional\",\n      type: Ee.TYPES.DInt,\n      size: this.$byte\n    };\n    const X = {\n      mode: \"optional\",\n      type: Ee.TYPES.Int,\n      size: Ue.MAX_WIDTH\n    };\n    const Y = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: Ue.MAX_HEIGHT\n    };\n    const q = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$blk\n    };\n    const V = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$blk\n    };\n    const K = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: 24\n    };\n    const Q = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: Ue.MAX_WIDTH\n    };\n    const Z = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: 16\n    };\n    const J = {\n      mode: \"optional\",\n      type: Ee.TYPES.Boolean\n    };\n    const ee = {\n      mode: \"optional\",\n      type: Ee.TYPES.Boolean\n    };\n    const te = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: Ue.MAX_WIDTH\n    };\n    const ne = {\n      mode: \"optional\",\n      type: Ee.TYPES.Double\n    };\n    const ie = {\n      mode: \"optional\",\n      type: Ee.TYPES.String\n    };\n    const se = {\n      mode: \"optional\",\n      type: Ee.TYPES.String\n    };\n    const oe = {\n      mode: \"optional\",\n      type: Ee.TYPES.String\n    };\n    const re = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$actorType\n    };\n    const ae = {\n      mode: \"optional\",\n      type: Ee.TYPES.Any\n    };\n    const le = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$actorType\n    };\n    const ce = {\n      mode: \"optional\",\n      type: Ee.TYPES.Any\n    };\n    const he = {\n      type: n,\n      amt: F,\n      username: P,\n      gameid: H,\n      position: W,\n      frame: G,\n      cid: U,\n      iid: $,\n      ackiid: j,\n      x: X,\n      y: Y,\n      pos: q,\n      neg: V,\n      color: K,\n      column: Q,\n      delay: Z,\n      queued: J,\n      hardened: ee,\n      size: te,\n      zthalt: ne,\n      actor_neg: ie,\n      actor_pos: se,\n      anchor: oe,\n      actor_neg_data_type: re,\n      actor_neg_data_amt: ae,\n      actor_pos_data_type: le,\n      actor_pos_data_amt: ce\n    };\n    super.AddStructure(he);\n  }\n}\nclass Ye extends Oe {\n  static init() {\n    super.AddTable(\"action\", [\"add\", \"remove\"]);\n    super.AddTable(\"position\", [\n      \"aboveStack\",\n      \"aboveUnclearable\",\n      \"abovePerma\",\n      \"bottom\"\n    ]);\n    super.AddTable(\"actorType\", [\"none\", \"clears\", \"time\", \"line\"]);\n    super.AddTable(\"blk\", [null, ...minocolors]);\n    super.AddProperty(\"byte\", {\n      min: 8,\n      max: 32\n    });\n    const O = {\n      mode: \"fixed\",\n      type: Ee.TYPES.Table,\n      size: this.$$action\n    };\n    const D = {\n      mode: \"fixed\",\n      type: Ee.TYPES.DInt,\n      size: this.$byte\n    };\n    const z = {\n      mode: \"fixed\",\n      type: Ee.TYPES.UInt,\n      size: Ue.MAX_WIDTH\n    };\n    const I = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$blk\n    };\n    const R = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$blk\n    };\n    const P = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$position\n    };\n    const H = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: Ue.MAX_WIDTH\n    };\n    const N = {\n      mode: \"optional\",\n      type: Ee.TYPES.UInt,\n      size: 16\n    };\n    const W = {\n      mode: \"optional\",\n      type: Ee.TYPES.String\n    };\n    const G = {\n      mode: \"optional\",\n      type: Ee.TYPES.String\n    };\n    const U = {\n      mode: \"optional\",\n      type: Ee.TYPES.String\n    };\n    const $ = {\n      mode: \"optional\",\n      type: Ee.TYPES.String\n    };\n    const j = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$actorType\n    };\n    const X = {\n      mode: \"optional\",\n      type: Ee.TYPES.Any\n    };\n    const Y = {\n      mode: \"optional\",\n      type: Ee.TYPES.Table,\n      size: this.$$actorType\n    };\n    const q = {\n      mode: \"optional\",\n      type: Ee.TYPES.Any\n    };\n    const V = {\n      action: O,\n      amt: D,\n      size: z,\n      pos: I,\n      neg: R,\n      position: P,\n      column: H,\n      slow: N,\n      effect: W,\n      actor_neg: G,\n      actor_pos: U,\n      anchor: $,\n      actor_neg_data_type: j,\n      actor_neg_data_amt: X,\n      actor_pos_data_type: Y,\n      actor_pos_data_amt: q\n    };\n    super.AddStructure(V);\n  }\n}\nclass Qe extends De {\n  static init() {\n    super.AddTable(\"type\", [\n      \"garbage\",\n      \"map\",\n      \"queue\",\n      \"piece\",\n      \"lines\",\n      \"boardsize\",\n      \"boardresize\",\n      \"holderstate\",\n      \"setoptions\",\n      \"constants\",\n      \"tetrominoes\"\n    ]);\n  }\n  static encode(e, { type: t, data: n }) {\n    e.writeTable(t, this.$$type);\n    switch (t) {\n      case \"garbage\":\n        return e.writeStruct(n, Ve);\n      case \"map\":\n        e.writeStruct(n.map, Ze);\n        e.writeUInt(n.w, Ue.MAX_WIDTH);\n        return e.writeUInt(n.h, Ue.MAX_HEIGHT);\n      case \"queue\":\n        e.writeBoolean(n.start);\n        return e.writeString(n.queue.toString());\n      case \"piece\":\n        return e.writeString(n.piece);\n      case \"lines\":\n        return e.writeStruct(n, Ye);\n      case \"boardsize\":\n      case \"boardresize\":\n        e.writeUInt(n.w, Ue.MAX_WIDTH);\n        return e.writeUInt(n.h, Ue.MAX_HEIGHT);\n      case \"holderstate\":\n      case \"constants\":\n        return e.pack(n);\n      case \"setoptions\":\n        return e.writeStruct(n.options, et);\n      case \"tetrominoes\":\n        return e.writeStruct(n, Je);\n    }\n  }\n  static decode(e) {\n    const t = {};\n    t.type = e.readTable(this.$$type);\n    t.data = {};\n    switch (t.type) {\n      case \"garbage\":\n        t.data = e.readStruct(Ve);\n        break;\n      case \"map\":\n        t.data.map = e.readStruct(Ze);\n        t.data.w = e.readUInt(Ue.MAX_WIDTH);\n        t.data.h = e.readUInt(Ue.MAX_HEIGHT);\n        break;\n      case \"queue\":\n        t.data.start = e.readBoolean();\n        t.data.queue = e.readString().split(\",\");\n        break;\n      case \"piece\":\n        t.data.piece = e.readString();\n        break;\n      case \"lines\":\n        t.data = e.readStruct(Ye);\n        break;\n      case \"boardsize\":\n      case \"boardresize\":\n        t.data.w = e.readUInt(Ue.MAX_WIDTH);\n        t.data.h = e.readUInt(Ue.MAX_HEIGHT);\n        break;\n      case \"holderstate\":\n      case \"constants\":\n        t.data = e.unpack();\n        break;\n      case \"setoptions\":\n        t.data.options = e.readStruct(et);\n        break;\n      case \"tetrominoes\":\n        t.data = e.readStruct(Je);\n    }\n    return t;\n  }\n}\nclass Ze extends De {\n  static init() {\n    super.AddTable(\n      \"letters\",\n      [\"?\", \",\", \"_\", \"#\", \"@\", \"z\", \"l\", \"o\", \"s\", \"i\", \"j\", \"t\", \"g\", \"d\"],\n      \"flexible\"\n    );\n    super.AddProperty(\"word\", {\n      min: 16,\n      max: 32\n    });\n  }\n  static encode(e, t) {\n    const n = t.split(\"\");\n    e.writeDInt(n.length, this.$word);\n    for (const t of n) {\n      e.writeTable(t, this.$$letters);\n    }\n  }\n  static decode(e) {\n    let t = \"\";\n    const n = e.readDInt(this.$word);\n    for (let i = 0; i < n; i++) {\n      t += e.readTable(this.$$letters);\n    }\n    return t;\n  }\n}\nclass Je extends De {\n  static init() {\n    super.AddProperty(\"tiny\", {\n      min: 3,\n      max: 7\n    });\n    super.AddTable(\n      \"spinbonus\",\n      [...Object.keys(spinbonuses_rules)],\n      \"flexible\"\n    );\n    super.AddTable(\"colors\", [...minocolors]);\n    super.AddTable(\"kicksets\", [...Object.keys(kicksets)], \"flexible\");\n    super.AddTable(\"special\", [\"i\", \"i2\", \"i3\", \"l3\", \"i5\", \"oo\"]);\n  }\n  static encode(e, t) {\n    const n = t.tetrominoes;\n    const i = t.minotypes;\n    const s = t.tetrominoes_color;\n    const o = Object.keys(n);\n    e.writeUInt(o.length, 8);\n    for (const t of o) {\n      e.writeString(t);\n    }\n    for (const [t, o] of Object.entries(n)) {\n      const { matrix: n, preview: r } = o;\n      e.writeDInt(n.w, this.$tiny);\n      e.writeDInt(n.h, this.$tiny);\n      e.writeUInt(n.dx, 5);\n      e.writeUInt(n.dy, 5);\n      e.writeDInt(n.data[0].length, this.$tiny);\n      const [a, l] = [Ee.cla32(n.w - 1), Ee.cla32(n.h - 1)];\n      for (const t of n.data) {\n        for (const [n, i] of t) {\n          e.writeUInt(n, a);\n          e.writeUInt(i, l);\n        }\n      }\n      e.writeDInt(r.w, this.$tiny);\n      e.writeDInt(r.h, this.$tiny);\n      for (const [t, n] of r.data) {\n        e.writeUInt(t, a);\n        e.writeUInt(n, l);\n      }\n      e.writeBoolean(o.weight !== undefined);\n      e.writeBoolean(o.spinbonus_override);\n      e.writeBoolean(o.kickset_override);\n      e.writeBoolean(o.kickset_special);\n      e.writeBoolean(i.includes(t));\n      e.writeTable(s[t], this.$$colors);\n      if (o.weight !== undefined) {\n        e.writeDInt(o.weight, this.$tiny);\n      }\n      if (o.spinbonus_override) {\n        e.writeTable(o.spinbonus_override.rule, this.$$spinbonus);\n        e.writeBoolean(o.spinbonus_override.mini);\n      }\n      if (o.kickset_override) {\n        e.writeTable(o.kickset_override, this.$$kicksets);\n      }\n      if (o.kickset_special) {\n        e.writeTable(o.kickset_special, this.$$special);\n      }\n    }\n  }\n  static decode(e) {\n    const t = {};\n    const n = [];\n    const i = {};\n    const s = e.readUInt(8);\n    const o = [];\n    for (let n = 0; n < s; n++) {\n      const n = e.readString();\n      t[n] = {\n        matrix: {},\n        preview: {}\n      };\n      o.push(n);\n    }\n    for (const s of o) {\n      const o = t[s];\n      const { matrix: r, preview: a } = o;\n      r.w = e.readDInt(this.$tiny);\n      r.h = e.readDInt(this.$tiny);\n      r.dx = e.readUInt(5);\n      r.dy = e.readUInt(5);\n      const l = e.readDInt(this.$tiny);\n      const [c, h] = [Ee.cla32(r.w - 1), Ee.cla32(r.h - 1)];\n      r.data = [];\n      for (let t = 0; t < 4; t++) {\n        r.data[t] = [];\n        for (let n = 0; n < l; n++) {\n          const [i, s] = [e.readUInt(c), e.readUInt(h)];\n          r.data[t][n] = [i, s];\n        }\n      }\n      a.w = e.readDInt(this.$tiny);\n      a.h = e.readDInt(this.$tiny);\n      a.data = [];\n      for (let t = 0; t < l; t++) {\n        const [n, i] = [e.readUInt(c), e.readUInt(h)];\n        a.data[t] = [n, i];\n      }\n      const u = e.readBoolean();\n      const p = e.readBoolean();\n      const d = e.readBoolean();\n      const _ = e.readBoolean();\n      const f = e.readBoolean();\n      i[s] = e.readTable(this.$$colors);\n      if (u) {\n        o.weight = e.readDInt(this.$tiny);\n      }\n      if (p) {\n        o.spinbonus_override = {\n          rule: e.readTable(this.$$spinbonus),\n          mini: e.readBoolean()\n        };\n      }\n      if (d) {\n        o.kickset_override = e.readTable(this.$$kicksets);\n      }\n      if (_) {\n        o.kickset_special = e.readTable(this.$$special);\n      }\n      if (f) {\n        n.push(s);\n      }\n    }\n    return {\n      minotypes: n,\n      tetrominoes: t,\n      tetrominoes_color: i\n    };\n  }\n}\nclass et extends De {\n  static TypeOrders = [\n    \"boolean\",\n    \"number\",\n    \"table\",\n    \"object\",\n    \"array\",\n    \"string\"\n  ];\n  static OptsBook = OptionsList;\n  static init() {\n    super.AddTable(\"options\", Object.keys(this.OptsBook));\n    super.AddTable(\n      \"minoskin\",\n      [\"i\", \"j\", \"l\", \"o\", \"s\", \"t\", \"z\", \"ghost\", \"other\"],\n      \"flexible\"\n    );\n    super.AddTable(\"skins\", [\"tetrio\", \"_bombs\", \"connected_test\"], \"flexible\");\n    super.AddTable(\"ixs\", [\"off\", \"hold\", \"tap\"]);\n    for (const [e, t] of Object.entries(this.OptsBook)) {\n      if (t.allowed) {\n        super.AddTable(\"_\" + e, t.allowed);\n      } else if (t.possibles) {\n        super.AddTable(\"_\" + e, t.possibles, \"flexible\");\n      }\n    }\n  }\n  static *ParseOptions(e) {\n    const { TypeOrders: t, OptsBook: n } = this;\n    const i = Object.keys(e);\n    for (const s of t) {\n      for (const t of i) {\n        const i = n[t];\n        if (i.type !== s) {\n          continue;\n        }\n        const o = e[t];\n        yield [t, o, i];\n      }\n    }\n  }\n  static encode(e, t) {\n    for (const [n, i, s] of this.ParseOptions(t)) {\n      e.writeTable(n, this.$$options);\n      switch (s.type) {\n        case \"object\":\n          if (n === \"handling\") {\n            e.writeFloat(i.arr, 6, 10);\n            e.writeUInt(i.sdf, 6);\n            e.writeBoolean(i.safelock);\n            e.writeBoolean(i.cancel);\n            e.writeBoolean(i.may20g);\n            e.writeFloat(i.das, 8, 10);\n            e.writeFloat(i.dcd, 8, 10);\n            e.writeTable(i.irs, this.$$ixs);\n            e.writeTable(i.ihs, this.$$ixs);\n          } else if (n === \"minoskin\") {\n            e.writeUInt(Object.keys(i).length, 8);\n            for (const [t, n] of Object.entries(i)) {\n              e.writeTable(t, this.$$minoskin);\n              e.writeTable(n, this.$$skins);\n            }\n          }\n          break;\n        case \"array\":\n          e.writeArray(i);\n          break;\n        case \"boolean\":\n          e.writeBoolean(i);\n          break;\n        case \"table\":\n          e.writeTable(i, this[`$$_${n}`], s.mode);\n          break;\n        case \"number\":\n          e.writeNumber(i);\n          break;\n        case \"string\":\n          e.writeString(i);\n          break;\n        default:\n          throw new TypeError(\n            `Unknown type for key: ${n} value: ${i} | got -> ${s.type}`\n          );\n      }\n    }\n    e.writeTable(null, this.$$options);\n  }\n  static decode(e) {\n    const t = this.$$options.size;\n    const n = this.OptsBook;\n    const i = {};\n    let s = null;\n    let o = null;\n    for (let r = e.peek(t); r !== 0; r = e.peek(t)) {\n      const t = e.readTable(this.$$options);\n      const r = n[t]?.type;\n      switch (r) {\n        case \"object\":\n          if (t === \"handling\") {\n            const n = {};\n            n.arr = e.readFloat(6, 10);\n            n.sdf = e.readUInt(6);\n            n.safelock = e.readBoolean();\n            n.cancel = e.readBoolean();\n            n.may20g = e.readBoolean();\n            n.das = e.readFloat(8, 10);\n            n.dcd = e.readFloat(8, 10);\n            n.irs = e.readTable(this.$$ixs);\n            n.ihs = e.readTable(this.$$ixs);\n            i[t] = n;\n          } else if (t === \"minoskin\") {\n            const n = {};\n            const s = e.readUInt(8);\n            i[t] = n;\n            for (let t = 0; t < s; t++) {\n              const t = e.readTable(this.$$minoskin);\n              const i = e.readTable(this.$$skins);\n              n[t] = i;\n            }\n          }\n          break;\n        case \"array\":\n          i[t] = e.readArray();\n          break;\n        case \"boolean\":\n          i[t] = e.readBoolean();\n          break;\n        case \"table\":\n          i[t] = e.readTable(this[`$$_${t}`]);\n          break;\n        case \"number\":\n          i[t] = e.readNumber();\n          break;\n        case \"string\":\n          i[t] = e.readString();\n          break;\n        default:\n          console.error(\"Options dump: \", i);\n          throw new TypeError(\n            `Unknown type for key: ${t} | got -> ${r}\\nLast Key: ${s}\\nLast Value: ${o}\\n`\n          );\n      }\n      s = t;\n      o = i[t];\n    }\n    e.seek(t, 2);\n    return i;\n  }\n}\nclass tt extends et {\n  static *ParseOptions(e) {\n    for (const [n, i, s] of super.ParseOptions(e)) {\n      if (s.default !== i) {\n        if (s.type !== \"object\" || !strictShallowEqual(s.default, i)) {\n          yield [n, i, s];\n        }\n      }\n    }\n  }\n}\nclass nt extends De {\n  static init() {\n    super.AddExtension(this, {\n      ownBuffer: true\n    });\n    super.AddTable(\"gor\", [\n      null,\n      \"topout\",\n      \"garbagesmash\",\n      \"zenith\",\n      \"clear\",\n      \"topout_clear\",\n      \"winner\",\n      \"forfeit\",\n      \"retry\",\n      \"drop\",\n      \"dropnow\",\n      \"disconnect\"\n    ]);\n  }\n  static encode(e, t) {\n    const n = t.successful;\n    const i = t.gameoverreason;\n    const s = t.killer.gameid;\n    const o = t.killer.type === \"spark\";\n    const r = t.killer.username ?? \"\";\n    const { apm: a, pps: l, vsscore: c } = t.aggregatestats;\n    const { game: h, stats: u, diyusi: p } = t;\n    e.writeBoolean(n);\n    e.writeTable(i, this.$$gor);\n    e.writeUInt(s, 13);\n    e.writeBoolean(o, 1);\n    e.writeString(r);\n    e.writeStruct(t.options, tt);\n    e.writeDouble(a);\n    e.writeDouble(l);\n    e.writeDouble(c);\n    e.writeStruct(\n      {\n        game: h,\n        stats: u,\n        diyusi: p\n      },\n      $e\n    );\n  }\n  static decode(e) {\n    const t = {\n      killer: {},\n      aggregatestats: {}\n    };\n    t.successful = e.readBoolean();\n    t.gameoverreason = e.readTable(this.$$gor);\n    t.killer.gameid = e.readUInt(13);\n    t.killer.type = e.readBoolean() ? \"spark\" : \"sizzle\";\n    t.killer.username = e.readString();\n    t.options = e.readStruct(tt);\n    t.aggregatestats.apm = e.readDouble();\n    t.aggregatestats.pps = e.readDouble();\n    t.aggregatestats.vsscore = e.readDouble();\n    Object.assign(t, e.readStruct($e));\n    return t;\n  }\n}\nEe.init();\nPe.init();\nWe.init();\nHe.init();\nRe.init();\nNe.init();\n$e.init();\nUe.init();\nXe.init();\nqe.init();\nKe.init();\nje.init();\nVe.init();\nYe.init();\nQe.init();\nJe.init();\nZe.init();\net.init();\nnt.init();\nDe.LoadExtensions(r);\nLe.SetMsgpackr(ke, we);\n\nexport { Le as CandorCodec };\n"],"names":["Bits","n","r","OptionsList","spinbonuses_rules","kicksets","tetrominoes","minocolors","strictShallowEqual","e","Buffer","cached","itdo","t","Object","prototype","toString","call","substring","length","toLowerCase","initOptions","OptionsTemplate","entries","default","type","allowed","possibles","TypeError","ve","int64AsType","bundleStrings","sequential","ke","Packr","we","Unpackr","Be","F_ALLOC","F_HOOK","F_ID","Le","_commands","Map","_codes","_PACK","_UNPACK","SymCmd","Symbol","FLAG","SetMsgpackr","pack","bind","unpack","GetHandlers","c","values","flags","push","name","h","get","table","apply","keys","Add","set","code","buffer","from","_kv","_vk","getkv","getvk","Encode","i","s","o","batched","id","a","encode","l","allocUnsafe","byteLength","writeUInt8","Decode","peek","command","ReferenceError","padStart","subarray","data","decode","console","error","recvid","writeUInt32BE","readUInt32BE","ribbonid","tokenid","write","packets","reduce","outdated","kick","restrict","block","anticheat","manual","rename","reason","concat","readUInt8","background","split","load","timeout","writeUInt16BE","readUInt16BE","deny","warm","ok","announce","msg","Se","Table","Array","Struct","String","Boolean","Int","UInt","DInt","Float","UFloat","Double","Number","Any","Te","NaN","Infinity","Me","BUFFER","DOUBLE","QWORD","HEX","Ee","TYPES","TYPES_INDEX","SUPPORTED_TYPES","Set","cla32","Math","max","clz32","GetIntSize","ceil","min","_minBits","_maxBits","_minSize","pow","_maxSize","minSize","maxSize","readSize","writeSize","RangeError","bit","size","isNaN","writeUInt","isFinite","writeBoolean","POSITIVE_INFINITY","writeInt","writeDouble","readUInt","readBoolean","NEGATIVE_INFINITY","readInt","readDouble","_mode","_size","floor","log2","has","mode","struct","list","_table","Error","_prop","writeDInt","writeTable","writeAny","readDInt","readTable","readAny","init","SUPPORTED_TYPES_TABLE","DEFAULT_ARRAY","DEFAULT_PROP","ref","refid","Encoder","_buffer","_packr","_packBuffer","realign","_insert","val","undefined","writeArray","writeStruct","writeString","writeBuffer","writeUInt64","writeFloat","round","writeUFloat","writeNumber","writeHex","b","writeByType","useBuffer","finalize","offset","seek","writeDoubleBE","writeBigUInt64BE","Decoder","_MAX_BITS","MAX_SAFE_INTEGER","_MAX_BITS_SIGNED","_bits","_unpack","byteOffset","_read_signed","_read","read","readArray","readStruct","readString","indexOf","readBuffer","readUInt64","readBigUInt64BE","readFloat","readUFloat","readDoubleBE","readNumber","readHex","readByType","peekTable","peekDInt","De","_MAX_BUFFER","alloc","_LIST","LIST","AddExtension","AddTable","AddProperty","LoadExtensions","ext_code","addExtension","Class","Oe","AddStructure","_cstFields","_fixFields","_optFields","value","u","$$prop","Pe","$prov","gameid","provisioned","frames","map","Re","We","board","f","g","$long","w","Ue","MAX_WIDTH","MAX_HEIGHT","boards","He","stats","allies","rank","altitude","btb","specCount","speedrun","nearWR","revives","escapeartist","blockrationing_app","blockrationing_final","$$extraStat","talentless","sb","toFixed","ownBuffer","$$type","frame","$frame","$$key","key","subframe","hoisted","$e","nt","je","warn","JSON","stringify","Ne","userid","alive","naturalorder","options","et","players","game","bag","hold","controlling","falling","handling","$$piece","locked","piece","inputSoftdrop","lastshift","lShift","held","rShift","diyusi","arr","das","Xe","sdf","safelock","cancel","may20g","playing","dcd","irs","$$ixs","ihs","qe","dir","some","$$blk","fill","x","hy","lockresets","rotresets","skip","y","locking","_clears","garbage","clears","finesse","lines","$short","level_lines","level_lines_needed","inputs","holds","score","level","combo","topcombo","combopower","topbtb","btbpower","tspins","piecesplaced","sent","sent_nomult","maxspike","maxspike_nomult","received","attack","cleared","kills","faults","perfectpieces","zenith","Ke","zenlevel","zenprogress","peakrank","avgrankpts","totalbonus","targetingfactor","targetinggrace","revivesTotal","speedrun_seen","splits","revivesMaxOfBoth","$byte","Ve","$$int_type","amt","targets","victim","killer","fire","Qe","F","P","H","W","$$position","G","U","$","j","X","Y","q","V","K","Q","Z","J","ee","te","ne","ie","se","oe","re","$$actorType","ae","le","ce","he","username","position","cid","iid","ackiid","pos","neg","color","column","delay","queued","hardened","zthalt","actor_neg","actor_pos","anchor","actor_neg_data_type","actor_neg_data_amt","actor_pos_data_type","actor_pos_data_amt","Ye","O","$$action","D","z","I","R","N","action","slow","effect","Ze","start","queue","Je","$word","$$letters","minotypes","tetrominoes_color","matrix","preview","$tiny","dx","dy","weight","spinbonus_override","kickset_override","kickset_special","includes","$$colors","rule","$$spinbonus","mini","$$kicksets","$$special","p","d","_","TypeOrders","OptsBook","ParseOptions","$$options","$$minoskin","$$skins","tt","successful","gameoverreason","apm","pps","vsscore","aggregatestats","$$gor","assign","CandorCodec"],"mappings":"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"}