{"version":3,"file":"GmaBuilder.cjs","sources":["../../../src/utils/GmaBuilder.ts"],"sourcesContent":["import { Commitment, PublicKey } from '@solana/web3.js';\nimport { chunk } from './common';\nimport { Convergence } from '@/Convergence';\nimport { UnparsedMaybeAccount } from '@/types';\n\nexport type GmaBuilderOptions = {\n  chunkSize?: number;\n  commitment?: Commitment;\n};\n\nexport class GmaBuilder {\n  protected readonly convergence: Convergence;\n  protected readonly publicKeys: PublicKey[];\n  protected readonly commitment?: Commitment;\n  protected chunkSize: number;\n\n  constructor(\n    convergence: Convergence,\n    publicKeys: PublicKey[],\n    options: GmaBuilderOptions = {}\n  ) {\n    this.convergence = convergence;\n    this.chunkSize = options.chunkSize ?? 100;\n    this.commitment = options.commitment;\n    this.publicKeys = publicKeys;\n  }\n\n  static make(\n    cvg: Convergence,\n    publicKeys: PublicKey[],\n    options: GmaBuilderOptions = {}\n  ) {\n    return new GmaBuilder(cvg, publicKeys, options);\n  }\n\n  chunkBy(n: number) {\n    this.chunkSize = n;\n\n    return this;\n  }\n\n  addPublicKeys(publicKeys: PublicKey[]) {\n    this.publicKeys.push(...publicKeys);\n\n    return this;\n  }\n\n  getPublicKeys(): PublicKey[] {\n    return this.publicKeys;\n  }\n\n  getUniquePublicKeys(): PublicKey[] {\n    // TODO: Only send unique keys and reconciliate after call.\n    return this.getPublicKeys();\n  }\n\n  async getFirst(n?: number): Promise<UnparsedMaybeAccount[]> {\n    const end = this.boundNumber(n ?? 1);\n\n    return this.getChunks(this.getPublicKeys().slice(0, end));\n  }\n\n  async getLast(n?: number): Promise<UnparsedMaybeAccount[]> {\n    const start = this.boundNumber(n ?? 1);\n\n    return this.getChunks(this.getPublicKeys().slice(-start));\n  }\n\n  async getBetween(\n    start: number,\n    end: number\n  ): Promise<UnparsedMaybeAccount[]> {\n    start = this.boundNumber(start);\n    end = this.boundNumber(end);\n    [start, end] = start > end ? [end, start] : [start, end];\n\n    return this.getChunks(this.getPublicKeys().slice(start, end));\n  }\n\n  async getPage(\n    page: number,\n    perPage: number\n  ): Promise<UnparsedMaybeAccount[]> {\n    return this.getBetween((page - 1) * perPage, page * perPage);\n  }\n\n  async get(): Promise<UnparsedMaybeAccount[]> {\n    return this.getChunks(this.getPublicKeys());\n  }\n\n  async getAndMap<T>(\n    callback: (account: UnparsedMaybeAccount) => T\n  ): Promise<T[]> {\n    return (await this.get()).map(callback);\n  }\n\n  protected async getChunks(\n    publicKeys: PublicKey[]\n  ): Promise<UnparsedMaybeAccount[]> {\n    const chunks = chunk(publicKeys, this.chunkSize);\n    const chunkPromises = chunks.map((chunk) => this.getChunk(chunk));\n    const resolvedChunks = await Promise.all(chunkPromises);\n\n    return resolvedChunks.flat();\n  }\n\n  protected async getChunk(\n    publicKeys: PublicKey[]\n  ): Promise<UnparsedMaybeAccount[]> {\n    try {\n      // TODO: Use lower level RPC call to add dataSlice support.\n      return await this.convergence\n        .rpc()\n        .getMultipleAccounts(publicKeys, this.commitment);\n    } catch (error) {\n      // TODO: Custom error instead.\n      throw error;\n    }\n  }\n\n  protected boundNumber(n: number): number {\n    return this.boundIndex(n - 1) + 1;\n  }\n\n  protected boundIndex(index: number): number {\n    index = index < 0 ? 0 : index;\n    index =\n      index >= this.publicKeys.length ? this.publicKeys.length - 1 : index;\n\n    return index;\n  }\n}\n"],"names":["GmaBuilder","convergence","publicKeys","_options$chunkSize","options","arguments","length","undefined","_classCallCheck","chunkSize","commitment","_createClass","key","value","chunkBy","n","addPublicKeys","_this$publicKeys","push","apply","_toConsumableArray","getPublicKeys","getUniquePublicKeys","_getFirst","_asyncToGenerator","_regeneratorRuntime","mark","_callee","end","wrap","_callee$","_context","prev","next","boundNumber","abrupt","getChunks","slice","stop","getFirst","_x","_getLast","_callee2","start","_callee2$","_context2","getLast","_x2","_getBetween","_callee3","_ref","_ref2","_callee3$","_context3","_slicedToArray","getBetween","_x3","_x4","_getPage","_callee4","page","perPage","_callee4$","_context4","getPage","_x5","_x6","_get","_callee5","_callee5$","_context5","get","_getAndMap","_callee6","callback","_callee6$","_context6","sent","map","getAndMap","_x7","_getChunks","_callee7","_this","chunks","chunkPromises","resolvedChunks","_callee7$","_context7","chunk","getChunk","Promise","all","flat","_x8","_getChunk","_callee8","_callee8$","_context8","rpc","getMultipleAccounts","t0","_x9","boundIndex","index","make","cvg"],"mappings":";;;;;;;AAUA,IAAaA,UAAU,gBAAA,YAAA;AAMrB,EAAA,SAAAA,UACEC,CAAAA,WAAwB,EACxBC,UAAuB,EAEvB;AAAA,IAAA,IAAAC,kBAAA,CAAA;AAAA,IAAA,IADAC,OAA0B,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAAG,IAAAA,wCAAA,OAAAR,UAAA,CAAA,CAAA;IAE/B,IAAI,CAACC,WAAW,GAAGA,WAAW,CAAA;AAC9B,IAAA,IAAI,CAACQ,SAAS,GAAAN,CAAAA,kBAAA,GAAGC,OAAO,CAACK,SAAS,MAAAN,IAAAA,IAAAA,kBAAA,KAAAA,KAAAA,CAAAA,GAAAA,kBAAA,GAAI,GAAG,CAAA;AACzC,IAAA,IAAI,CAACO,UAAU,GAAGN,OAAO,CAACM,UAAU,CAAA;IACpC,IAAI,CAACR,UAAU,GAAGA,UAAU,CAAA;AAC9B,GAAA;AAACS,EAAAA,qCAAA,CAAAX,UAAA,EAAA,CAAA;IAAAY,GAAA,EAAA,SAAA;AAAAC,IAAAA,KAAA,EAUD,SAAAC,OAAQC,CAAAA,CAAS,EAAE;MACjB,IAAI,CAACN,SAAS,GAAGM,CAAC,CAAA;AAElB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAAC,GAAA,EAAA;IAAAH,GAAA,EAAA,eAAA;AAAAC,IAAAA,KAAA,EAED,SAAAG,aAAcd,CAAAA,UAAuB,EAAE;AAAA,MAAA,IAAAe,gBAAA,CAAA;AACrC,MAAA,CAAAA,gBAAA,GAAA,IAAI,CAACf,UAAU,EAACgB,IAAI,CAAAC,KAAA,CAAAF,gBAAA,EAAAG,2CAAA,CAAIlB,UAAU,CAAC,CAAA,CAAA;AAEnC,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAAC,GAAA,EAAA;IAAAU,GAAA,EAAA,eAAA;IAAAC,KAAA,EAED,SAAAQ,aAAAA,GAA6B;MAC3B,OAAO,IAAI,CAACnB,UAAU,CAAA;AACxB,KAAA;AAAC,GAAA,EAAA;IAAAU,GAAA,EAAA,qBAAA;IAAAC,KAAA,EAED,SAAAS,mBAAAA,GAAmC;AACjC;AACA,MAAA,OAAO,IAAI,CAACD,aAAa,EAAE,CAAA;AAC7B,KAAA;AAAC,GAAA,EAAA;IAAAT,GAAA,EAAA,UAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAU,SAAA,GAAAC,0CAAA,eAAAC,4CAAA,GAAAC,IAAA,CAED,SAAAC,OAAAA,CAAeZ,CAAU,EAAA;AAAA,QAAA,IAAAa,GAAA,CAAA;AAAA,QAAA,OAAAH,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,YAAA,KAAA,CAAA;AACjBL,cAAAA,GAAG,GAAG,IAAI,CAACM,WAAW,CAACnB,CAAC,KAADA,IAAAA,IAAAA,CAAC,KAADA,KAAAA,CAAAA,GAAAA,CAAC,GAAI,CAAC,CAAC,CAAA;cAAA,OAAAgB,QAAA,CAAAI,MAAA,CAAA,QAAA,EAE7B,IAAI,CAACC,SAAS,CAAC,IAAI,CAACf,aAAa,EAAE,CAACgB,KAAK,CAAC,CAAC,EAAET,GAAG,CAAC,CAAC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAG,QAAA,CAAAO,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAX,OAAA,EAAA,IAAA,CAAA,CAAA;OAC1D,CAAA,CAAA,CAAA;AAAA,MAAA,SAAAY,SAAAC,EAAA,EAAA;AAAA,QAAA,OAAAjB,SAAA,CAAAJ,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAAkC,QAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAA3B,GAAA,EAAA,SAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA4B,QAAA,GAAAjB,0CAAA,eAAAC,4CAAA,GAAAC,IAAA,CAED,SAAAgB,QAAAA,CAAc3B,CAAU,EAAA;AAAA,QAAA,IAAA4B,KAAA,CAAA;AAAA,QAAA,OAAAlB,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAAe,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAb,IAAA,GAAAa,SAAA,CAAAZ,IAAA;AAAA,YAAA,KAAA,CAAA;AAChBU,cAAAA,KAAK,GAAG,IAAI,CAACT,WAAW,CAACnB,CAAC,KAADA,IAAAA,IAAAA,CAAC,KAADA,KAAAA,CAAAA,GAAAA,CAAC,GAAI,CAAC,CAAC,CAAA;AAAA,cAAA,OAAA8B,SAAA,CAAAV,MAAA,WAE/B,IAAI,CAACC,SAAS,CAAC,IAAI,CAACf,aAAa,EAAE,CAACgB,KAAK,CAAC,CAACM,KAAK,CAAC,CAAC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAE,SAAA,CAAAP,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAI,QAAA,EAAA,IAAA,CAAA,CAAA;OAC1D,CAAA,CAAA,CAAA;AAAA,MAAA,SAAAI,QAAAC,GAAA,EAAA;AAAA,QAAA,OAAAN,QAAA,CAAAtB,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAAyC,OAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAlC,GAAA,EAAA,YAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAAmC,WAAA,GAAAxB,0CAAA,eAAAC,4CAAA,EAAA,CAAAC,IAAA,CAED,SAAAuB,QAAAA,CACEN,KAAa,EACbf,GAAW,EAAA;QAAA,IAAAsB,IAAA,EAAAC,KAAA,CAAA;AAAA,QAAA,OAAA1B,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAAuB,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAArB,IAAA,GAAAqB,SAAA,CAAApB,IAAA;AAAA,YAAA,KAAA,CAAA;AAEXU,cAAAA,KAAK,GAAG,IAAI,CAACT,WAAW,CAACS,KAAK,CAAC,CAAA;AAC/Bf,cAAAA,GAAG,GAAG,IAAI,CAACM,WAAW,CAACN,GAAG,CAAC,CAAA;AAACsB,cAAAA,IAAA,GACbP,KAAK,GAAGf,GAAG,GAAG,CAACA,GAAG,EAAEe,KAAK,CAAC,GAAG,CAACA,KAAK,EAAEf,GAAG,CAAC,CAAA;cAAAuB,KAAA,GAAAG,uCAAA,CAAAJ,IAAA,EAAA,CAAA,CAAA,CAAA;AAAvDP,cAAAA,KAAK,GAAAQ,KAAA,CAAA,CAAA,CAAA,CAAA;AAAEvB,cAAAA,GAAG,GAAAuB,KAAA,CAAA,CAAA,CAAA,CAAA;cAAA,OAAAE,SAAA,CAAAlB,MAAA,CAAA,QAAA,EAEJ,IAAI,CAACC,SAAS,CAAC,IAAI,CAACf,aAAa,EAAE,CAACgB,KAAK,CAACM,KAAK,EAAEf,GAAG,CAAC,CAAC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAyB,SAAA,CAAAf,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAW,QAAA,EAAA,IAAA,CAAA,CAAA;OAC9D,CAAA,CAAA,CAAA;MAAA,SAAAM,UAAAA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAT,WAAA,CAAA7B,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAAkD,UAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAA3C,GAAA,EAAA,SAAA;IAAAC,KAAA,EAAA,YAAA;AAAA,MAAA,IAAA6C,QAAA,GAAAlC,0CAAA,eAAAC,4CAAA,EAAA,CAAAC,IAAA,CAED,SAAAiC,QAAAA,CACEC,IAAY,EACZC,OAAe,EAAA;AAAA,QAAA,OAAApC,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAAiC,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA/B,IAAA,GAAA+B,SAAA,CAAA9B,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAA8B,SAAA,CAAA5B,MAAA,WAER,IAAI,CAACoB,UAAU,CAAC,CAACK,IAAI,GAAG,CAAC,IAAIC,OAAO,EAAED,IAAI,GAAGC,OAAO,CAAC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAE,SAAA,CAAAzB,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAqB,QAAA,EAAA,IAAA,CAAA,CAAA;OAC7D,CAAA,CAAA,CAAA;MAAA,SAAAK,OAAAA,CAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,QAAA,OAAAR,QAAA,CAAAvC,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAA2D,OAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAApD,GAAA,EAAA,KAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAsD,IAAA,GAAA3C,0CAAA,eAAAC,4CAAA,EAAAC,CAAAA,IAAA,CAED,SAAA0C,QAAA,GAAA;AAAA,QAAA,OAAA3C,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAAwC,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAtC,IAAA,GAAAsC,SAAA,CAAArC,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAqC,SAAA,CAAAnC,MAAA,CAAA,QAAA,EACS,IAAI,CAACC,SAAS,CAAC,IAAI,CAACf,aAAa,EAAE,CAAC,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAiD,SAAA,CAAAhC,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA8B,QAAA,EAAA,IAAA,CAAA,CAAA;OAC5C,CAAA,CAAA,CAAA;AAAA,MAAA,SAAAG,GAAA,GAAA;AAAA,QAAA,OAAAJ,IAAA,CAAAhD,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAAkE,GAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAA3D,GAAA,EAAA,WAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAA2D,UAAA,GAAAhD,0CAAA,eAAAC,4CAAA,GAAAC,IAAA,CAED,SAAA+C,QAAAA,CACEC,QAA8C,EAAA;AAAA,QAAA,OAAAjD,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAA8C,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAA5C,IAAA,GAAA4C,SAAA,CAAA3C,IAAA;AAAA,YAAA,KAAA,CAAA;AAAA2C,cAAAA,SAAA,CAAA3C,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAEhC,IAAI,CAACsC,GAAG,EAAE,CAAA;AAAA,YAAA,KAAA,CAAA;cAAA,OAAAK,SAAA,CAAAzC,MAAA,CAAAyC,QAAAA,EAAAA,SAAA,CAAAC,IAAA,CAAEC,GAAG,CAACJ,QAAQ,CAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAE,SAAA,CAAAtC,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAAmC,QAAA,EAAA,IAAA,CAAA,CAAA;OACvC,CAAA,CAAA,CAAA;AAAA,MAAA,SAAAM,UAAAC,GAAA,EAAA;AAAA,QAAA,OAAAR,UAAA,CAAArD,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAA0E,SAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAnE,GAAA,EAAA,WAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAoE,UAAA,GAAAzD,0CAAA,eAAAC,4CAAA,GAAAC,IAAA,CAED,SAAAwD,QAAAA,CACEhF,UAAuB,EAAA;AAAA,QAAA,IAAAiF,KAAA,GAAA,IAAA,CAAA;AAAA,QAAA,IAAAC,MAAA,EAAAC,aAAA,EAAAC,cAAA,CAAA;AAAA,QAAA,OAAA7D,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAA0D,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAxD,IAAA,GAAAwD,SAAA,CAAAvD,IAAA;AAAA,YAAA,KAAA,CAAA;cAEjBmD,MAAM,GAAGK,YAAK,CAACvF,UAAU,EAAE,IAAI,CAACO,SAAS,CAAC,CAAA;AAC1C4E,cAAAA,aAAa,GAAGD,MAAM,CAACN,GAAG,CAAC,UAACW,KAAK,EAAA;AAAA,gBAAA,OAAKN,KAAI,CAACO,QAAQ,CAACD,KAAK,CAAC,CAAA;eAAC,CAAA,CAAA;AAAAD,cAAAA,SAAA,CAAAvD,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OACpC0D,OAAO,CAACC,GAAG,CAACP,aAAa,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA;cAAjDC,cAAc,GAAAE,SAAA,CAAAX,IAAA,CAAA;cAAA,OAAAW,SAAA,CAAArD,MAAA,CAAA,QAAA,EAEbmD,cAAc,CAACO,IAAI,EAAE,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAL,SAAA,CAAAlD,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA4C,QAAA,EAAA,IAAA,CAAA,CAAA;OAC7B,CAAA,CAAA,CAAA;AAAA,MAAA,SAAA9C,UAAA0D,GAAA,EAAA;AAAA,QAAA,OAAAb,UAAA,CAAA9D,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAA+B,SAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAAxB,GAAA,EAAA,UAAA;IAAAC,KAAA,EAAA,YAAA;MAAA,IAAAkF,SAAA,GAAAvE,0CAAA,eAAAC,4CAAA,GAAAC,IAAA,CAED,SAAAsE,QAAAA,CACE9F,UAAuB,EAAA;AAAA,QAAA,OAAAuB,4CAAA,EAAA,CAAAI,IAAA,CAAA,SAAAoE,UAAAC,SAAA,EAAA;AAAA,UAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAlE,IAAA,GAAAkE,SAAA,CAAAjE,IAAA;AAAA,YAAA,KAAA,CAAA;AAAAiE,cAAAA,SAAA,CAAAlE,IAAA,GAAA,CAAA,CAAA;AAAAkE,cAAAA,SAAA,CAAAjE,IAAA,GAAA,CAAA,CAAA;AAAA,cAAA,OAIR,IAAI,CAAChC,WAAW,CAC1BkG,GAAG,EAAE,CACLC,mBAAmB,CAAClG,UAAU,EAAE,IAAI,CAACQ,UAAU,CAAC,CAAA;AAAA,YAAA,KAAA,CAAA;AAAA,cAAA,OAAAwF,SAAA,CAAA/D,MAAA,CAAA+D,QAAAA,EAAAA,SAAA,CAAArB,IAAA,CAAA,CAAA;AAAA,YAAA,KAAA,CAAA;AAAAqB,cAAAA,SAAA,CAAAlE,IAAA,GAAA,CAAA,CAAA;cAAAkE,SAAA,CAAAG,EAAA,GAAAH,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;cAAA,MAAAA,SAAA,CAAAG,EAAA,CAAA;AAAA,YAAA,KAAA,CAAA,CAAA;AAAA,YAAA,KAAA,KAAA;cAAA,OAAAH,SAAA,CAAA5D,IAAA,EAAA,CAAA;AAAA,WAAA;AAAA,SAAA,EAAA0D,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA;OAKtD,CAAA,CAAA,CAAA;AAAA,MAAA,SAAAN,SAAAY,GAAA,EAAA;AAAA,QAAA,OAAAP,SAAA,CAAA5E,KAAA,CAAA,IAAA,EAAAd,SAAA,CAAA,CAAA;AAAA,OAAA;AAAA,MAAA,OAAAqF,QAAA,CAAA;AAAA,KAAA,EAAA;AAAA,GAAA,EAAA;IAAA9E,GAAA,EAAA,aAAA;AAAAC,IAAAA,KAAA,EAED,SAAAqB,WAAsBnB,CAAAA,CAAS,EAAU;MACvC,OAAO,IAAI,CAACwF,UAAU,CAACxF,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;AACnC,KAAA;AAAC,GAAA,EAAA;IAAAH,GAAA,EAAA,YAAA;AAAAC,IAAAA,KAAA,EAED,SAAA0F,UAAqBC,CAAAA,KAAa,EAAU;AAC1CA,MAAAA,KAAK,GAAGA,KAAK,GAAG,CAAC,GAAG,CAAC,GAAGA,KAAK,CAAA;AAC7BA,MAAAA,KAAK,GACHA,KAAK,IAAI,IAAI,CAACtG,UAAU,CAACI,MAAM,GAAG,IAAI,CAACJ,UAAU,CAACI,MAAM,GAAG,CAAC,GAAGkG,KAAK,CAAA;AAEtE,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AAAC,GAAA,CAAA,EAAA,CAAA;IAAA5F,GAAA,EAAA,MAAA;AAAAC,IAAAA,KAAA,EAvGD,SAAA4F,IAAAA,CACEC,GAAgB,EAChBxG,UAAuB,EAEvB;AAAA,MAAA,IADAE,OAA0B,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;MAE/B,OAAO,IAAIL,UAAU,CAAC0G,GAAG,EAAExG,UAAU,EAAEE,OAAO,CAAC,CAAA;AACjD,KAAA;AAAC,GAAA,CAAA,CAAA,CAAA;AAAA,EAAA,OAAAJ,UAAA,CAAA;AAAA,CAAA;;;;"}