{"version":3,"file":"index.mjs","sources":["../src/L1/actions.ts","../src/L1/submit.ts","../src/L1/reader.ts","../src/utils.ts","../src/L1/accounts.ts","../src/L1/daos.ts","../src/L1/pools.ts","../src/schemas.ts","../src/L1/assets.ts","../src/L1/transfers.ts","../src/neftymarket/types/actions.ts","../src/neftymarket/utils/transaction.ts","../src/neftymarket/actions/atomicassets.ts","../src/neftymarket/actions/auctions.ts","../src/system.ts","../src/index.ts"],"sourcesContent":["// @ts-ignore\r\nimport { NCKeyValPair, NCNameType } from \"../types\"; \r\nexport type EosioAuthorizationObject = { actor: string; permission: string };\r\n\r\nexport type EosioActionObject = {\r\n  account: string;\r\n  name: string;\r\n  authorization: EosioAuthorizationObject[];\r\n  data: any;\r\n};\r\n\r\nexport class ActionGenerator {\r\n    constructor(readonly contract: string, readonly token_contract: string) {}\r\n\r\n    newaccount = (\r\n      new_name: string,\r\n      payer: string,\r\n      newacc_public_active_key: string, \r\n      newacc_public_owner_key: string    \r\n    ) => (\r\n      {\r\n        account: 'eosio',\r\n        name: 'newaccount', // action\r\n        authorization: [{\r\n          actor: payer,\r\n          permission: 'active',\r\n        }],\r\n        data: {\r\n          creator: payer,\r\n          name: new_name,\r\n          owner: {\r\n            threshold: 1,\r\n            keys: [{\r\n              key: newacc_public_owner_key,\r\n              weight: 1\r\n            }],\r\n            accounts: [],\r\n            waits: []\r\n          },\r\n          active: {\r\n            threshold: 1,\r\n            keys: [{\r\n              key: newacc_public_active_key,\r\n              weight: 1\r\n            }],\r\n            accounts: [],\r\n            waits: []\r\n          },\r\n        }\r\n      });\r\n    \r\n    buyrambytes = (\r\n      receiver: string,\r\n      payer: string = 'io',\r\n      amt: number = 8192\r\n    ) => ({\r\n      account: 'eosio',\r\n      name: 'buyrambytes',\r\n      authorization: [{ actor: payer, permission: 'active'}],\r\n      data: {\r\n        payer: payer,\r\n        receiver: receiver,\r\n        bytes: amt,\r\n      },\r\n    });\r\n    \r\n    delegateBw = (\r\n      receiver: string,\r\n      payer: string = 'io',\r\n      net_amount: string = '100.0000 NCO',\r\n      cpu_amount: string = '100.0000 NCO',\r\n      trfer: boolean = true\r\n    ) =>\r\n    ({\r\n      account: 'eosio',\r\n      name: 'delegatebw',\r\n      authorization: [{\r\n        actor: payer,\r\n        permission: 'active',\r\n      }],\r\n      data: {\r\n        from: payer,\r\n        receiver: receiver,\r\n        stake_net_quantity: net_amount,\r\n        stake_cpu_quantity: cpu_amount,\r\n        transfer: trfer,\r\n      }\r\n    });\r\n    \r\n    /*createUser = async (\r\n      newUser: string,\r\n      payer: string,\r\n      public_active_key: string,\r\n      public_owner_key: string\r\n    ) => {\r\n    \r\n      let newacc_action = this._newaccount(newUser, payer, public_active_key, public_owner_key);\r\n      let buyram_action = this._buyrambytes(newUser, payer);\r\n      let delegatebw_action = this._delegateBw(newUser, payer);\r\n    \r\n      return [newacc_action, buyram_action, delegatebw_action]\r\n    };\r\n    \r\n    createAccount(\r\n      authorization: EosioAuthorizationObject[],\r\n      owner: string,\r\n      symbol: string,\r\n      payer: string\r\n    ) {\r\n      return this._pack(this.contract, authorization, \"open\", {\r\n        owner,\r\n        symbol,\r\n        payer\r\n      });\r\n    }*/\r\n\r\n    createCollection = (\r\n      author: string,\r\n      collection_name: string,\r\n      authorized_accounts: string[],\r\n      notify_accounts: string[] = [],\r\n      market_fee: number,\r\n      allow_notify: boolean\r\n    ) => {\r\n      const action: any = {\r\n        account: 'atomicassets',\r\n        name: 'createcol',\r\n        data: {\r\n          author: author,\r\n          collection_name: collection_name,\r\n          allow_notify: allow_notify,\r\n          authorized_accounts: authorized_accounts,\r\n          notify_accounts: notify_accounts,\r\n          market_fee: market_fee,\r\n          data: []\r\n        },\r\n        authorization: [\r\n          { actor: author, permission: 'active' } \r\n        ]\r\n      }\r\n      return action;\r\n    }\r\n  /*\r\n    async addcolauth(authorization: EosioAuthorizationObject[], collection_name: string, account_to_add: string): Promise<EosioActionObject[]> {\r\n      return this._pack(authorization, 'addcolauth', {collection_name, account_to_add});\r\n  }\r\n\r\n    async addnotifyacc(authorization: EosioAuthorizationObject[], collection_name: string, account_to_add: string): Promise<EosioActionObject[]> {\r\n      return this._pack(authorization, 'addnotifyacc', {collection_name, account_to_add});\r\n  }\r\n\r\n    async remcolauth(authorization: EosioAuthorizationObject[], collection_name: string, account_to_remove: string): Promise<EosioActionObject[]> {\r\n      return this._pack(authorization, 'remcolauth', {collection_name, account_to_remove});\r\n  }\r\n\r\n    async remnotifyacc(authorization: EosioAuthorizationObject[], collection_name: string, account_to_remove: string): Promise<EosioActionObject[]> {\r\n      return this._pack(authorization, 'remnotifyacc', {collection_name, account_to_remove});\r\n  }\r\n\r\n  */\r\n    createSchema = (\r\n      author: string,\r\n      collection_name: string,\r\n      schema_name: string,\r\n      sch: NCNameType[]\r\n    ) => {\r\n      const action: any = {\r\n        account: 'atomicassets',\r\n        name: 'createschema',\r\n        data: {\r\n          authorized_creator: author,\r\n          collection_name: collection_name,\r\n          schema_name: schema_name,\r\n          schema_format: sch\r\n        },\r\n        authorization: [\r\n          { actor: author, permission: 'active' }\r\n        ]\r\n      }\r\n      return action;\r\n    }\r\n    \r\n    createTemplate = (\r\n      author: string,\r\n      collection_name: string,\r\n      schema_name: string,\r\n      xferable: boolean,\r\n      burnable: boolean,\r\n      template_fields: any[]\r\n    ) => {\r\n      const action: any = {\r\n        account: 'atomicassets',\r\n        name: 'createtempl',\r\n        data: {\r\n          authorized_creator: author,\r\n          collection_name: collection_name,\r\n          schema_name: schema_name,\r\n          transferable: xferable,\r\n          burnable: burnable,\r\n          max_supply: 0xffffff,\r\n          immutable_data: template_fields //{key: 'name', value: ['string', 'default'] } ]\r\n        },\r\n        authorization: [\r\n          { actor: author, permission: 'active' } \r\n        ]\r\n      }\r\n      return action;\r\n    }\r\n    \r\n    createPermission = (\r\n      author: string,\r\n      perm_name: string,\r\n      perm_key: string\r\n    ) => {\r\n    \r\n        const authorization_object = { \r\n          threshold: 1, \r\n          accounts: [{ permission: { actor: author, permission: 'active' }, weight: 1 }], \r\n          keys: [{ key: perm_key, weight: 1 }],\r\n          waits: []\r\n        };\r\n        \r\n        const updateauth_input = {\r\n          account: author,\r\n          permission: perm_name,\r\n          parent: 'active',\r\n          auth: authorization_object\r\n        };\r\n    \r\n        const action = {\r\n          account: 'eosio',\r\n          name: 'updateauth',\r\n          data: updateauth_input,\r\n          authorization: [\r\n            { actor: author, permission: 'active'}\r\n          ]\r\n      }\r\n      \r\n      return action;\r\n    }\r\n    \r\n    \r\n    mintAsset = (\r\n      owner: string,\r\n      col_name: string,\r\n      sch_name: string,\r\n      tmpl_id: number,\r\n      immutable_data: any[],\r\n      mutable_data: any[],\r\n      author?: string\r\n    ) => {\r\n      const action: any = {\r\n        account: 'atomicassets',\r\n        name: 'mintasset',\r\n        data: {\r\n          authorized_minter: author || owner,\r\n          new_asset_owner: owner,\r\n          collection_name: col_name,\r\n          schema_name: sch_name,\r\n          template_id: tmpl_id,  //template id \r\n          // new_asset_owner: author,//new owner \r\n          immutable_data: immutable_data,//immutable data {key: 'name', value:[ 'string', '1testasset12']}\r\n          mutable_data: mutable_data,  //mutable data  \r\n          tokens_to_back: []//tokens to back \r\n        },\r\n        authorization: [\r\n          { actor: author, permission: 'active' } \r\n        ]\r\n      };\r\n      return action;\r\n    }\r\n\r\n    modifyAsset = (\r\n      editor : string,\r\n      owner: string,\r\n      asset_id: string,\r\n      new_mutable_data: any[]\r\n    ) => {\r\n      const action: any = {\r\n        account: 'atomicassets',\r\n        name: 'setassetdata',\r\n        data: {\r\n          authorized_editor: editor, \r\n          asset_owner: owner,\r\n          asset_id: asset_id,\r\n          new_mutable_data: new_mutable_data\r\n        },\r\n        authorization: [\r\n          { actor: editor, permission: 'active' } \r\n        ]  \r\n      };\r\n      return action;\r\n    }\r\n    \r\n    createPool = (\r\n      creator: string,\r\n      ticker: string,\r\n      is_inflatable: boolean,\r\n      is_deflatable: boolean,\r\n      is_treasury: boolean,\r\n      descr: string\r\n    ) => {\r\n      const action = {\r\n        account: 'pools2.nco',\r\n        name: 'createpool',\r\n        data: {\r\n          owner: creator,\r\n          ticker: ticker,\r\n          description: descr,\r\n          is_inflatable: is_inflatable,\r\n          is_deflatable: is_deflatable,\r\n          is_treasury: is_treasury\r\n        },\r\n        authorization: [\r\n          { actor: creator, permission: 'active'}\r\n        ]\r\n      };\r\n    \r\n      return action;\r\n    }\r\n    \r\n    \r\n    txNcoBalance = (\r\n      from: string,\r\n      to: string,\r\n      amt: string, \r\n      memo: string\r\n    ) => {\r\n      const action = {\r\n        account: 'eosio.token',\r\n        name: 'transfer',\r\n        data: {\r\n          from: from,\r\n          to: to,\r\n          quantity: amt,//'10.0000 NCO',\r\n          memo: memo //''\r\n        },\r\n        authorization: [\r\n          { 'actor': from, 'permission': 'active' }\r\n        ]\r\n      }\r\n      return action;\r\n    }\r\n    txBalance = (\r\n      contract: string,\r\n      from: string,\r\n      to: string,\r\n      amt: string, \r\n      memo: string\r\n    ) => {\r\n      const action = {\r\n        account: contract, //'eosio.token',\r\n        name: 'transfer',\r\n        data: {\r\n          from: from,\r\n          to: to,\r\n          quantity: amt,//'10.0000 NCO',\r\n          memo: memo //''\r\n        },\r\n        authorization: [\r\n          { 'actor': from, 'permission': 'active' }\r\n        ]\r\n      }\r\n      return action;\r\n    }\r\n\r\n    protected _pack(\r\n        account: string,\r\n        authorization: EosioAuthorizationObject[],\r\n        name: string,\r\n        data: any\r\n      ): EosioActionObject[] {\r\n        return [{ account, name, authorization, data }];\r\n    }\r\n}","\r\nimport { NCInit, NCInitServices, NCInitUrls } from \"../system\";\r\n\r\nimport { Api, JsonRpc } from \"eosjs\";\r\nimport { Transaction  } from \"eosjs/dist/eosjs-api-interfaces\";\r\nimport { JsSignatureProvider } from 'eosjs/dist/eosjs-jssig.js';  // development only\r\nimport { PushTransactionArgs } from \"eosjs/dist/eosjs-rpc-interfaces\";\r\nimport fetch from 'cross-fetch';\r\nconst ecc = require(\"eosjs-ecc-priveos\");\r\n\r\nexport { NCO_submit_API }\r\n\r\nclass NCO_submit_API {\r\n    private isProxy: boolean; \r\n    private debug : boolean;\r\n    // @ts-ignore\r\n    private services : NCInitServices;\r\n    private urls: NCInitUrls; \r\n\r\n    private nodeos_rpc: JsonRpc;\r\n  \r\n    constructor( inpt: NCInit ) {\r\n        this.isProxy = inpt.is_proxy;\r\n        this.debug = inpt.debug;\r\n        this.services = inpt.services;\r\n        this.urls = inpt.urls;\r\n        this.nodeos_rpc = new JsonRpc(this.urls.nodeos_url, { fetch });\r\n    }\r\n\r\n    async SubmitTx (\r\n        actions: any[],\r\n        public_keys: string[],   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n        private_keys: string[],  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"]\r\n        )  \r\n        {\r\n          if(this.debug) console.log(\"Submitted transaction: \" + JSON.stringify({ actions, public_keys, private_keys }));\r\n          return this[this.isProxy ? \"SubmitTxProxy\" : \"SubmitTxNative\"](actions, public_keys, private_keys);\r\n      }\r\n    \r\n    \r\n      async SubmitTxProxy(\r\n        actions: any[],\r\n        public_keys: string[],   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n        private_keys: string[],  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"]\r\n        ) {\r\n          const args = JSON.stringify({\r\n            actions,\r\n            public_keys,\r\n            private_keys\r\n          });\r\n        \r\n          try {\r\n      \r\n            const r = await fetch(\r\n              this.urls.nodeos_proxy_url || this.urls.nodeos_url,\r\n              { method: \"POST\", body: args, headers: { \"Authorization\": `newsafe ${private_keys[0]}`, \"Content-Type\": \"application/json\" } });\r\n    \r\n            const txt = await r.text();\r\n    \r\n            return JSON.parse(txt);\r\n          } catch(e) {\r\n            console.log((e as any).message)\r\n            throw e;\r\n          }\r\n      }\r\n    \r\n    \r\n      async SubmitTxNative(\r\n        actions: any[],\r\n        public_keys: string[],   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n        private_keys: string[],  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"]\r\n        ) {\r\n      \r\n        // if(!private_keys?.length)\r\n        // {\r\n        private_keys = private_keys instanceof Array ? private_keys : [private_keys];\r\n        debugger;\r\n        public_keys = private_keys.map(k => ecc.privateToPublic(k));\r\n        debugger;\r\n        // }\r\n    \r\n        const signatureProvider = new JsSignatureProvider(private_keys);\r\n        signatureProvider.availableKeys = public_keys;\r\n    \r\n        //@ts-ignore\r\n        const rpc = this.nodeos_rpc;\r\n        const api = new Api({ rpc, signatureProvider }); //required to submit transactions\r\n    \r\n        const info = await rpc.get_info();\r\n        const lastBlockInfo = await rpc.get_block(info.last_irreversible_block_num)\r\n        const tzOff = new Date(info.head_block_time).getTimezoneOffset();\r\n        var t = new Date((new Date(info.head_block_time)).getTime() + 10 * 60 * 1000 - tzOff * 1000 * 60).toISOString().slice(0, -1);//+10m\r\n    \r\n        const transactionObj: Transaction =\r\n        {\r\n          actions: actions,\r\n          expiration: t,\r\n          ref_block_prefix: lastBlockInfo.ref_block_prefix,  //info.last_irreversible_block_num \r\n          ref_block_num: lastBlockInfo.block_num & 0xffff, // 22774\r\n        };\r\n    \r\n        //if (this.debug) console.log(\"actions before serialization: \" + JSON.stringify(transactionObj.actions));\r\n        \r\n        const a = await api.serializeActions(transactionObj.actions);\r\n        const transaction = { ...transactionObj, actions: a };\r\n        const serializedTransaction = api.serializeTransaction(transaction);\r\n    \r\n        const availableKeys = await api.signatureProvider.getAvailableKeys();\r\n        const requiredKeys = await api.authorityProvider.getRequiredKeys({ transaction, availableKeys });\r\n        const abis = await api.getTransactionAbis(transaction);\r\n        // const pushTransactionArgs: PushTransactionArgs = { serializedTransaction, signatures };\r\n        \r\n        let tx = {\r\n          chainId: info.chain_id, // from getinfo\r\n          requiredKeys: requiredKeys,\r\n          serializedTransaction: serializedTransaction,\r\n          serializedContextFreeData: undefined,\r\n          abis: abis\r\n        };\r\n    \r\n        const pushTransactionArgs: PushTransactionArgs = await api.signatureProvider.sign(tx);\r\n        //console.log(pushTransactionArgs);\r\n        return api.pushSignedTransaction(pushTransactionArgs);\r\n      };\r\n    \r\n\r\n}\r\n","\r\nimport { TxData } from \"../aassets/atomicTypes\";\r\nconst { ExplorerApi } = require(\"atomicassets\");\r\nconst nfetch = require(\"node-fetch\");\r\nimport { NCInit } from \"../system\";\r\n\r\nexport class NCO_read_API {\r\n\r\n  private aa_url : string;\r\n  private hyp_url: string;\r\n\r\n  constructor (inpt: NCInit) {\r\n    this.aa_url = inpt.urls.atomicassets_url;\r\n    this.hyp_url = inpt.urls.hyperion_url;\r\n  }\r\n\r\n  // hyperion\r\n  readTx = async (txId: string) => {\r\n    const req = this.hyp_url + `/v2/history/get_transaction?id=${txId}`;\r\n    const txr = await nfetch(req);\r\n    const jtxr = await txr.json();\r\n    return jtxr as TxData;\r\n  }\r\n\r\n  //AA\r\n  readAsset = async (asset_id: string) => {\r\n    const api = new ExplorerApi(this.aa_url, \"atomicassets\", { fetch: nfetch });\r\n    const asset = await api.getAsset(asset_id);\r\n    return asset;\r\n  };\r\n\r\n  getActions = (txData: TxData, filterActionNames: string[]) => {\r\n    \r\n    console.log(txData);\r\n    return (txData.actions || []).filter(\r\n      action => filterActionNames.includes(action.act.name)\r\n    );\r\n  }\r\n\r\n  // aa\r\n  txToAssetId = async (txId: string) => {\r\n    const txData = await this.readTx(txId);\r\n    const mints = this.getActions(txData, [\"logmint\"]);\r\n    const assets = mints.map((a) => a.act.data.asset_id);\r\n    return assets;\r\n  }\r\n\r\n  // hyperion\r\n  txToTemplateId = async (txId: string) => {\r\n    const txData = await this.readTx(txId);\r\n    const mints = this.getActions(txData, [\"lognewtempl\"]);\r\n    const templates = mints.map((a) => a.act.data.template_id);\r\n    return templates;\r\n  }\r\n\r\n  getCollectionTemplateID = async (colleciton: string, schema: string, tpl_type: string) => {\r\n    const req = this.aa_url + `/atomicassets/v1/templates?collection_name=${colleciton}&schema_name=${schema}&template_data.link_type=${tpl_type}`;\r\n    const jtxr = await (await nfetch(req)).json();\r\n    console.log(\"got response \" +JSON.stringify(jtxr));\r\n    if ( jtxr.data == undefined ) return -1;\r\n    if ( jtxr.data[0] == undefined) return -1;\r\n    return jtxr.data[0].template_id ?? -1; \r\n  };\r\n}\r\n","import { NCInit } from \"./system\";\r\n//import { readAsset, readAssetBySchema } from \"./io/nft\";\r\nimport { NCO_read_API } from \"./L1/reader\";\r\n\r\n\r\nexport class NCO_utils_API {\r\n\r\n    //private aa_url;\r\n    private reader;\r\n\r\n    constructor(n: NCInit){\r\n        //this.aa_url = n.urls.atomicassets_url;\r\n        this.reader = new NCO_read_API(n);\r\n    };\r\n\r\n    normalizeUsername = (username: string, r: string) => {\r\n        return username.replace(/\\./g, r + r.repeat(12 - username.length));\r\n    };\r\n\r\n    // Collection names \r\n    getRootCollectionName = (username: string) => {\r\n        return this.normalizeUsername(username, \"z\");\r\n    };\r\n\r\n    getFileCollectionName = (username: string) => {\r\n        return this.normalizeUsername(username, \"y\");\r\n    };\r\n\r\n    // schema names \r\n    getRootCollectionNftSchemaName = (username: string) => {\r\n        return this.normalizeUsername(username, \"w\");\r\n    };\r\n\r\n    getRootCollectionProfileSchemaName = (username: string) => {\r\n        return this.normalizeUsername(username, \"p\");\r\n    };\r\n\r\n    // links to other collecitons with descriptions\r\n    getRootCollectionLinkSchemaName = (username: string) => {\r\n        return this.normalizeUsername(username, \"b\");\r\n    };\r\n\r\n    getFileCollectionFileSchemaName = (username: string) => {\r\n        return this.normalizeUsername(username, \"v\");\r\n    };\r\n\r\n    // templates\r\n    /*    getRootCollectionDefaultSchemaTemplateName = (username: string) => {\r\n        return this.normalizeUsername(username, \"t\");\r\n    };*/\r\n    getLinkSchemaLikeTemplateID = (username: string,  _col?: string, _sch?: string) => {\r\n        const col = _col??this.getRootCollectionName(username);\r\n        const sch = _sch??this.getRootCollectionLinkSchemaName(username);\r\n        return this.reader.getCollectionTemplateID(col, sch ,'like');\r\n    };\r\n\r\n    getLinkSchemaBadgeTemplateID = (username: string, _col?: string, _sch?: string) => {\r\n        const col = _col??this.getRootCollectionName(username);\r\n        const sch = _sch??this.getRootCollectionLinkSchemaName(username);\r\n        return this.reader.getCollectionTemplateID(col, sch ,'badge');\r\n    };\r\n    \r\n    getLinkSchemaFollowTemplateID = (username: string) => {\r\n        const col = this.getRootCollectionName(username);\r\n        const sch = this.getRootCollectionLinkSchemaName(username);\r\n        return this.reader.getCollectionTemplateID(col, sch, 'follow');\r\n    };\r\n        \r\n    getLinkSchemaRepostTemplateID = (username: string) => {\r\n        return this.normalizeUsername(username, 'p');\r\n    };\r\n\r\n    getLinkSchemaNftMirrorTemplateID = (username: string) => {\r\n        return this.normalizeUsername(username, 'm');\r\n    };\r\n\r\n}\r\n","import { NCInit, NCInitServices, NCInitUrls }  from \"../system\";\r\nimport { NCCreateUser, NCCreatePermission, NCLinkPerm, NCReturnTxs, NCBuyRam, NCKeyPair } from \"../types\";\r\nimport { TransactResult } from \"eosjs/dist/eosjs-api-interfaces\";\r\nimport { NCO_submit_API } from \"./submit\"\r\nimport { NCO_utils_API } from \"../utils\";\r\nimport { ActionGenerator as sdkActionGen } from \"./actions\";\r\nconst ecc = require(\"eosjs-ecc-priveos\");\r\n\r\n\r\nexport class NCO_account_API {\r\n    private debug    : boolean;\r\n    private services : NCInitServices;\r\n    // @ts-ignore\r\n    private urls     : NCInitUrls; \r\n    private sdkGen   : sdkActionGen;\r\n    private submitter: NCO_submit_API; \r\n    // @ts-ignore\r\n    private utils    : NCO_utils_API;\r\n\r\n    constructor( inpt: NCInit ) {\r\n        this.debug      = inpt.debug;\r\n        this.services   = inpt.services;\r\n        this.urls       = inpt.urls;\r\n        this.submitter  = new NCO_submit_API(inpt);\r\n        this.sdkGen     = new sdkActionGen(this.services.eosio_contract, this.services.token_contract);\r\n        this.utils      = new NCO_utils_API(inpt);\r\n    }\r\n\r\n    SubmitTx = (\r\n        actions: any[],\r\n        public_keys: string[],   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n        private_keys: string[]  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"]) \r\n        ) => {\r\n        return this.submitter.SubmitTx(\r\n            actions,\r\n            public_keys,   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n            private_keys);  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"])\r\n        }\r\n    \r\n\r\n\r\n  /**\r\n   * Create a key pair assuming a secure environment (not frontend)\r\n   * @params none\r\n   * @returns An EOS key pair\r\n   */\r\n  async createKeyPair() {\r\n    await ecc.initialize();\r\n    let opts = { secureEnv: true };\r\n    let p = await ecc.randomKey(0, opts);\r\n    let t: NCKeyPair = { prv_key: p, pub_key: ecc.privateToPublic(p) };\r\n    return t as NCKeyPair;\r\n  }\r\n\r\n    /**\r\n   * Create a user - multistage operation creating new user account, \r\n   * defailt collection, schema and template for the account\r\n   * @param NCCreateUser\r\n   * @returns NCReturnTxs\r\n   */\r\n    async createAccount(inpt: NCCreateUser) {\r\n\r\n            const CREATE_ACCOUNT_DEFAULTS = {\r\n              ram_amt: 8192,\r\n              cpu_amount: '100.0000 NCO',\r\n              net_amount: '100.0000 NCO',\r\n              xfer: false,\r\n            };\r\n        \r\n            const {\r\n              newUser, newacc_pub_active_key, newacc_pub_owner_key,\r\n              payer, payer_prv_key,\r\n              ram_amt, net_amount, cpu_amount, xfer\r\n            } = { ...CREATE_ACCOUNT_DEFAULTS, ...inpt };\r\n        \r\n            let res: NCReturnTxs = {};\r\n          \r\n            let newacc_action = this.sdkGen.newaccount(newUser, payer, newacc_pub_active_key, newacc_pub_owner_key);\r\n            let buyram_action = this.sdkGen.buyrambytes(newUser, payer, ram_amt);\r\n            let delegatebw_action = this.sdkGen.delegateBw(newUser, payer, net_amount, cpu_amount, xfer);\r\n        \r\n            if(this.debug) console.log(\"before create account transaction\");\r\n            const tres = await this.submitter.SubmitTx(\r\n              [newacc_action, buyram_action, delegatebw_action],\r\n              [],\r\n              [payer_prv_key]\r\n            ) as TransactResult;// [] contained      \r\n            res.TxID_createAcc = tres.transaction_id;\r\n            if(this.debug) console.log(\"createuser transaction complete\");\r\n        \r\n            return res;\r\n          }\r\n        \r\n    async buyRam(inpt: NCBuyRam) {\r\n          let buyram_action = this.sdkGen.buyrambytes(inpt.user, inpt.payer, inpt.ram_amt);\r\n          const tres = await this.submitter.SubmitTx(\r\n            [buyram_action],\r\n            [],\r\n            [inpt.payer_prv_key]\r\n          ) as TransactResult;// [] contained       \r\n          return { TxID_createAcc: tres.transaction_id, TxID: tres.transaction_id, originalResponse: tres } as NCReturnTxs;\r\n      }\r\n          \r\n    \r\n  /**\r\n   * Create a new permission subordinate to the Active permission. \r\n   * (future optional: allow under owner, TBD)\r\n   * @param NCCreatePermission\r\n   * @returns Create permission transaction id\r\n   */\r\n  async createPermission(inpt: NCCreatePermission) {\r\n    let t = this.sdkGen.createPermission(inpt.author, inpt.perm_name, inpt.perm_pub_key);\r\n    let res = await this.submitter.SubmitTx([t],[],[inpt.author_prv_active_key]) as TransactResult;\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_createPerm = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n  /**\r\n   * Link a permission to a specific action of a specific contract. \r\n   * @param NCLinkPerm\r\n   * author: the permission's owner to be linked  \r\n   * code: the owner of the action to be linked                                         \r\n   * type: the action to be linked                                                      \r\n   * 'active', 'owner' ...                                                        \r\n   * @returns Link permission transaction id\r\n   */\r\n  async linkPermission(inpt: NCLinkPerm) {\r\n    const linkauth_input = {\r\n      account: inpt.author,             // this link\r\n      code: inpt.action_owner,          // \r\n      type: inpt.action_to_link,        // \r\n      requirement: inpt.perm_to_link,   // \r\n    };\r\n\r\n    // the action which will make the linking \r\n    let action = {\r\n      account: 'eosio',\r\n      name: 'linkauth',\r\n      data: linkauth_input,\r\n      authorization: [{\r\n        actor: inpt.author,\r\n        permission: 'active'\r\n      }]\r\n    };\r\n\r\n    let res = await this.submitter.SubmitTx([action],\r\n      [],\r\n      [inpt.author_prv_active_key]\r\n    ) as TransactResult;\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_linkPerm = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n\r\n}","import { NCInit, NCInitServices, NCInitUrls } from \"../system\";\r\n\r\nimport { \r\n    NCCreateDao, NCGetDaoWhiteList, \r\n    NCCreateDaoProposal, NCCreateDaoUserWhitelistProposal, NCCreateDaoStakeProposal,\r\n    NCApproveDaoProposal, NCExecuteDaoProposal, NCGetVotes, \r\n    NCGetDaoProposals, NCDaoProposalVote, NCDaoWithdrawVoteDeposit, NCReturnTxs } from \"../types\";\r\n\r\nimport { TransactResult } from \"eosjs/dist/eosjs-api-interfaces\";\r\nimport { ActionGenerator as DaosAG, ChainApi as DaosChainApi } from  '@newfound8ion/newcoin.daos-js'\r\nimport { DAOPayload, GetTableRowsPayload, ProposalPayload } from  \"@newfound8ion/newcoin.daos-js/dist/interfaces\";\r\nconst ecc = require(\"eosjs-ecc-priveos\");\r\nimport fetch from 'cross-fetch';\r\n\r\nimport { NCO_submit_API } from \"./submit\"\r\nexport { NCO_daos_API }\r\n\r\nclass NCO_daos_API {\r\n    private debug : boolean;\r\n    private services : NCInitServices;\r\n    private urls: NCInitUrls; \r\n\r\n    private cApi: DaosChainApi;\r\n    private aGen: DaosAG;\r\n\r\n    private submitter: NCO_submit_API; \r\n\r\n    constructor( inpt: NCInit ) {\r\n        this.debug = inpt.debug;\r\n        this.services = inpt.services;\r\n        this.urls = inpt.urls;\r\n    \r\n        this.cApi = new DaosChainApi(this.urls.nodeos_url, this.services.daos_contract, fetch);\r\n        this.aGen = new DaosAG(this.services.daos_contract, this.services.staking_contract);\r\n        this.submitter = new NCO_submit_API(inpt);\r\n    }\r\n\r\n    SubmitTx = (\r\n        actions: any[],\r\n        public_keys: string[],   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n        private_keys: string[]  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"]) \r\n        ) => {\r\n        return this.submitter.SubmitTx(\r\n            actions,\r\n            public_keys,   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n            private_keys);  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"])\r\n        }\r\n    \r\n    \r\n/**\r\n * DAO creation. One per account.\r\n * @param inpt : NCCreateDao\r\n * @returns NCReturnTxs.TxID_createDao, NCReturnTxs.dao_id\r\n */\r\n  async createDao(inpt: NCCreateDao) {\r\n\r\n    const t = await this.aGen.createDao(\r\n      [{ actor: inpt.author, permission: \"active\" }],\r\n      inpt.author,\r\n      inpt.descr\r\n    );\r\n    const res = await this.SubmitTx(t,\r\n      [], [inpt.author_prv_key]) as TransactResult;\r\n\r\n    let p: DAOPayload = { owner: inpt.author };\r\n    if(this.debug) console.log(\"Get dao by owner: \", JSON.stringify(p));\r\n    let q = await this.cApi.getDAOByOwner(p);\r\n    let w = await q.json();\r\n    if(this.debug) console.log(\"received from getDaoByOwner\" + JSON.stringify(w));\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_createDao = res.transaction_id;\r\n    r.dao_id = w.rows[0].id.toString();\r\n    // r.dao_id = r.dao_id.toString() ; \r\n    return r;\r\n  }\r\n  \r\n\r\n/**\r\n * \r\n * @param inpt : NCCreateDaoProposal\r\n * @returns NCReturnTxs.TxID_createDaoProposal, NCReturnTxs.proposal_id\r\n */\r\n  async createDaoProposal(inpt: NCCreateDaoProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    const t = await this.aGen.createProposal(\r\n      [{ actor: inpt.proposer, permission: \"active\" }],\r\n      inpt.proposer, Number(dao_id),\r\n      inpt.title, inpt.summary,\r\n      inpt.url, inpt.pass_rate, inpt.vote_start, inpt.vote_end\r\n    );\r\n\r\n    const res = await this.SubmitTx(t,\r\n      [], [inpt.proposer_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_createDaoProposal = res.transaction_id;\r\n    r.dao_id = dao_id;\r\n\r\n    const ps = await this.getDaoProposals({...inpt, dao_id }); // r.dao_id, inpt.proposer\r\n    r.proposal_id = ps.rows[ps.rows.length-1].id;\r\n    return r;\r\n  }\r\n\r\n\r\n/**\r\n * \r\n * @param inpt : NCCreateDaoUserWhitelistProposal\r\n * @returns NCReturnTxs.TxID_createDaoProposal, NCReturnTxs.proposal_id\r\n */\r\n  async createDaoUserWhitelistProposal(inpt: NCCreateDaoUserWhitelistProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    const t = await this.aGen.createWhiteListProposal(\r\n      [{ actor: inpt.proposer, permission: \"active\" }],\r\n      inpt.proposer, Number(dao_id), inpt.user, \r\n      inpt.type, inpt.pass_rate,\r\n      inpt.vote_start, inpt.vote_end\r\n    );\r\n\r\n    const res = await this.SubmitTx(t,\r\n      [],\r\n      [inpt.proposer_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_createDaoProposal = res.transaction_id;\r\n    r.dao_id = dao_id;\r\n    let ps = await this.getDaoWhitelistProposals({...inpt, dao_id });  //  { dao_id: dao_id, proposal_author: inpt.proposer } as NCGetDaoProposals );\r\n    if(this.debug) console.log(\"getDaoWhitelistProposal return: \", JSON.stringify(ps));\r\n    r.proposal_id = ps.rows[ps.rows.length - 1].id;\r\n    return r;\r\n  }\r\n\r\n  /**\r\n * \r\n * @param inpt : NCCreateDaoUserWhitelistProposal\r\n * @returns NCReturnTxs.TxID_createDaoProposal, NCReturnTxs.proposal_id\r\n */\r\n   async createDaoStakeProposal(inpt: NCCreateDaoStakeProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    const t = await this.aGen.createStakeProposal(\r\n      [{ actor: inpt.proposer, permission: \"active\" }],\r\n      inpt.proposer, Number(dao_id), \r\n      inpt.to, inpt.quantity,inpt.pass_rate,\r\n      inpt.vote_start, inpt.vote_end\r\n    );\r\n\r\n    const res = await this.SubmitTx(t,\r\n      [],\r\n      [inpt.proposer_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_createDaoProposal = res.transaction_id;\r\n    r.dao_id = dao_id;\r\n    let ps = await this.getDaoStakeProposals({ ...inpt, dao_id } as NCGetDaoProposals );\r\n    if(this.debug) console.log(\"Got response: \" + JSON.stringify(ps)); \r\n    r.proposal_id = ps.rows[ps.rows.length - 1].id;\r\n    return r;\r\n  }\r\n\r\n\r\n  /**\r\n * \r\n * @param inpt : NCApproveDaoProposal\r\n * @returns NCReturnTxs.TxID_approveDaoProposal\r\n */\r\n  async approveDaoProposal(inpt: NCApproveDaoProposal) {\r\n    try {\r\n      const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n      \r\n      console.log(`dao_owner: ${inpt.dao_owner}, dao_id: ${dao_id}`)\r\n      \r\n      if (inpt.proposal_id == undefined) throw (\"Proposal undefined ID\");\r\n\r\n      console.log(\"Got dao_id: \", dao_id, \" number: \", Number(dao_id));\r\n\r\n      const t = await this.aGen.approveProposal(\r\n        [{ actor: inpt.approver, permission: \"active\" }],\r\n        inpt.approver,\r\n        Number(dao_id), inpt.proposal_id\r\n      );\r\n\r\n      console.log(\"Got action:\", JSON.stringify(t));\r\n  \r\n      const res = await this.SubmitTx(t,\r\n        [ecc.privateToPublic(inpt.approver_prv_key)], [inpt.approver_prv_key]) as TransactResult;\r\n  \r\n      let r: NCReturnTxs = {};\r\n      r.TxID_approveDaoProposal = res.transaction_id;\r\n      return r;\r\n\r\n    } catch (ex) {\r\n      console.log((ex as any).message);\r\n      console.log(JSON.stringify(ex));\r\n      throw ex;\r\n    }\r\n\r\n  }\r\n\r\n/**\r\n * \r\n * @param inpt : NCApproveDaoProposal\r\n * @returns NCReturnTxs.TxID_approveDaoProposal\r\n */\r\n  async approveDaoWhitelistProposal(inpt: NCApproveDaoProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    if (inpt.proposal_id == undefined) throw (\"Proposal undefined ID\");\r\n\r\n    const t = await this.aGen.approveWhiteListProposal(\r\n      [{ actor: inpt.approver, permission: \"active\" }],\r\n      inpt.approver,\r\n      Number(dao_id), inpt.proposal_id\r\n    );\r\n\r\n    const res = await this.SubmitTx(t,\r\n      [ecc.privateToPublic(inpt.approver_prv_key)], [inpt.approver_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_approveDaoProposal = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n/**\r\n * \r\n * @param inpt : NCApproveDaoProposal\r\n * @returns NCReturnTxs.TxID_approveDaoProposal\r\n */\r\n async approveDaoStakeProposal(inpt: NCApproveDaoProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    if (inpt.proposal_id == undefined) throw (\"Proposal undefined ID\");\r\n\r\n    const t = await this.aGen.approveStakeProposal(\r\n      [{ actor: inpt.approver, permission: \"active\" }],\r\n      inpt.approver,\r\n      Number(dao_id), inpt.proposal_id\r\n    );\r\n\r\n    const res = await this.SubmitTx(t,\r\n      [ecc.privateToPublic(inpt.approver_prv_key)], [inpt.approver_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_approveDaoProposal = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n/**\r\n * \r\n * @param inpt : NCExecuteDaoProposal\r\n * @returns NCReturnTxs.TxID_executeDaoProposal\r\n */\r\n  async executeDaoProposal(inpt: NCExecuteDaoProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    if (inpt.proposal_id == undefined) throw (\"Proposal ID undefined\");\r\n\r\n    const t = await this.aGen.executeProposal(\r\n      [{ actor: inpt.exec, permission: \"active\" }],\r\n      Number(dao_id), inpt.proposal_id\r\n    );\r\n\r\n    const res = await this.SubmitTx(t,\r\n      [ecc.privateToPublic(inpt.exec_prv_key)], [inpt.exec_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_executeDaoProposal = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n/**\r\n * @param inpt : NCExecuteDaoProposal\r\n * @returns NCReturnTxs.TxID_executeDaoProposal\r\n */\r\n  async executeDaoWhitelistProposal(inpt: NCExecuteDaoProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    if (inpt.proposal_id == undefined) throw (\"Proposal ID undefined\");\r\n\r\n    const t = await this.aGen.executeWhiteListProposal(\r\n      [{ actor: inpt.exec, permission: \"active\" }], Number(dao_id), inpt.proposal_id\r\n    );\r\n\r\n    const res = await this.SubmitTx(t, [], [inpt.exec_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_executeDaoProposal = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n/**\r\n * @param inpt : NCExecuteDaoProposal\r\n * @returns NCReturnTxs.TxID_executeDaoProposal\r\n */\r\n  async executeDaoStakeProposal(inpt: NCExecuteDaoProposal) {\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n\r\n    if (inpt.proposal_id == undefined) throw (\"Proposal ID undefined\");\r\n\r\n    const t = await this.aGen.executeStakeProposal(\r\n      [{ actor: inpt.exec, permission: \"active\" }], Number(dao_id), inpt.proposal_id\r\n    );\r\n\r\n    const res = await this.SubmitTx(t, [], [inpt.exec_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_executeDaoProposal = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n/**\r\n * @param inpt : NCDaoProposalVote\r\n * @returns NCReturnTxs.TxID_voteDaoProposal\r\n */\r\n  async voteOnProposal(inpt: NCDaoProposalVote) {\r\n\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n    //if(this.debug) console.log(\"Vote for DAO proposal\", JSON.stringify(inpt));\r\n    const t = await this.aGen.vote(\r\n      [{ actor: inpt.voter, permission: \"active\" }],\r\n      inpt.voter, inpt.quantity, inpt.proposal_type || \"standart\",\r\n      dao_id, inpt.proposal_id, inpt.option\r\n    );\r\n\r\n    if(this.debug) console.log(\"Vote for DAO proposal: \", JSON.stringify(t));\r\n    const res = await this.SubmitTx(t,\r\n      [], [inpt.voter_prv_key]) as TransactResult;\r\n\r\n    if(this.debug) console.log(\"received from VoteForDaoProposal\" + JSON.stringify(res));\r\n    return { TxID_voteDaoProposal: res.transaction_id } as NCReturnTxs;\r\n  }\r\n\r\n  /**\r\n * @param inpt : NCDaoWithdrawVoteDeposit\r\n * @returns NCReturnTxs.TxID_voteDaoProposal\r\n */\r\n  async withdrawVoteDeposit(inpt: NCDaoWithdrawVoteDeposit) {\r\n    //const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n    if(this.debug) console.log(\"withdraw vote deposit make action\", JSON.stringify(inpt));\r\n    const t = await this.aGen.withdraw(\r\n      [{ actor: inpt.voter, permission: \"active\" }],\r\n      inpt.voter, +inpt.vote_id\r\n    );\r\n\r\n    if(this.debug) console.log(\"Withdraw vote deposit send action: \", JSON.stringify(t));\r\n    const res = await this.SubmitTx(t,\r\n      [], [inpt.voter_prv_key]) as TransactResult;\r\n\r\n    //if(this.debug) console.log(\"received from withdraw: \" + JSON.stringify(res));\r\n    return { TxID_WithdrawVoteDeposit: res.transaction_id } as NCReturnTxs;\r\n  }\r\n\r\n  // daos end\r\n\r\n\r\n    \r\n/**\r\n * @param inpt : getDaoIdByOwner\r\n * @returns NCReturnTxs.TxID_createDao, NCReturnTxs.dao_id\r\n */\r\n async getDaoIdByOwner(owner?: string, noFail?: boolean) : Promise<string> {\r\n    if (!owner)\r\n      throw new Error(\"DAO undefined\");\r\n  \r\n    let p: DAOPayload = { owner: owner }\r\n    if(this.debug) console.log(\"Get dao by owner: \", JSON.stringify(p));\r\n    let q = await this.cApi.getDAOByOwner(p);\r\n    let w = await q.json();\r\n    \r\n    if(this.debug) console.log(\"received from getDaoByOwner\" + JSON.stringify(w));\r\n    if (!w.rows.length && !noFail)\r\n      throw new Error('User has no dao');\r\n  \r\n    const r: string = w.rows[0]?.id?.toString();\r\n    if(!r && !noFail)\r\n      throw new Error(\"DAO undefined\");\r\n    \r\n    return r;\r\n  }\r\n  \r\n  async getDaoProposals(inpt: NCGetDaoProposals) {\r\n    \r\n    if(this.debug) console.log(\"Get regular DAO proposals list: \", JSON.stringify(inpt));\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner, true));\r\n    if(!dao_id) return { dao_id: null };\r\n  \r\n    if(inpt.proposal_author && (inpt.proposal_id == undefined))\r\n    {\r\n        let w = await this.cApi.getProposalByProposer( { daoID: dao_id,  proposal_author: inpt.proposal_author } as ProposalPayload );\r\n        inpt.proposal_id = await w.json();\r\n    }\r\n  \r\n    if(inpt.proposal_id) inpt.lower_bound = inpt.upper_bound = inpt.proposal_id;\r\n  \r\n    const opt = {\r\n          json: true,\r\n          code: this.services.daos_contract,\r\n          scope: dao_id,\r\n          table: \"proposals\",\r\n          lower_bound: inpt.lower_bound,\r\n          upper_bound: inpt.upper_bound,\r\n          limit: ~~(inpt.limit??\"10\"),\r\n          reverse: inpt.reverse,\r\n          index_position: \"1\",\r\n      } as GetTableRowsPayload;\r\n    \r\n    if(this.debug) console.log(\"*** get tablerow args\" +  JSON.stringify(opt));\r\n    let w = await (await this.cApi.getTableRows( opt )).json();\r\n    \r\n    if(this.debug) console.log(\"received proposal list\" + JSON.stringify(w));    \r\n    return { ...w, dao_id };\r\n  }\r\n  \r\n  async getDaoWhitelistProposals(inpt: NCGetDaoProposals) {\r\n    \r\n    if(this.debug) console.log(\"Get whitelist proposal list: \", JSON.stringify(inpt));\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner, true));\r\n    if(!dao_id) return { dao_id: null };\r\n  \r\n    if(inpt.proposal_author && (inpt.proposal_id == undefined))\r\n    {\r\n        let w = await this.cApi.getWhiteListProposalByProposer( { daoID: dao_id,  proposal_author: inpt.proposal_author } as ProposalPayload );\r\n        inpt.proposal_id = await w.json();\r\n    }\r\n  \r\n    if(inpt.proposal_id) inpt.lower_bound = inpt.upper_bound = inpt.proposal_id;\r\n  \r\n    const opt = {\r\n          json: true,\r\n          code: this.services.daos_contract,\r\n          scope: dao_id,\r\n          table: \"whlistprpls\",\r\n          lower_bound: inpt.lower_bound,\r\n          upper_bound: inpt.upper_bound,\r\n          limit: ~~(inpt.limit??\"10\"),\r\n          reverse: inpt.reverse,\r\n          index_position: \"1\",\r\n    } as GetTableRowsPayload;\r\n\r\n    if(this.debug) console.log(\"*** get tablerow args\" +  JSON.stringify(opt));\r\n    let w = await (await this.cApi.getTableRows( opt )).json();\r\n    \r\n    if(this.debug) console.log(\"received whitelist proposal list\" + JSON.stringify(w));    \r\n    return { ...w, dao_id };\r\n  }\r\n  \r\n  async getDaoStakeProposals(inpt: NCGetDaoProposals) {\r\n    \r\n    if(this.debug) console.log(\"Get stake proposal list: \", JSON.stringify(inpt));\r\n    const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner, true));\r\n    if(!dao_id) return { dao_id: null, comm: \"could not get dao_id for this owner\" };\r\n  \r\n\r\n    // --  *** \r\n    if(inpt.proposal_author && (inpt.proposal_id == undefined))\r\n    {\r\n        let w = await this.cApi.getProposalByProposer( { daoID: dao_id,  proposal_author: inpt.proposal_author } as ProposalPayload );\r\n        inpt.proposal_id = await w.json();\r\n    }\r\n  \r\n    // --- *** \r\n    if(inpt.proposal_id) inpt.lower_bound = inpt.upper_bound = inpt.proposal_id;\r\n    const opt = {\r\n          json: true,\r\n          code: this.services.daos_contract,\r\n          scope: dao_id,\r\n          table: \"stakeprpls\",\r\n          lower_bound: inpt.lower_bound,\r\n          upper_bound: inpt.upper_bound,\r\n          limit: ~~(inpt.limit??\"10\"),\r\n          reverse: inpt.reverse,\r\n          index_position: \"1\",\r\n    } as GetTableRowsPayload;\r\n\r\n    if(this.debug) console.log(\"*** get tablerow args\" +  JSON.stringify(opt));\r\n    let w = await (await this.cApi.getTableRows( opt )).json();\r\n    \r\n    if(this.debug) console.log(\"received stake proposal list\" + JSON.stringify(w));    \r\n    return { ...w, dao_id };\r\n  }\r\n  \r\n  \r\n    async getDaoWhitelist(inpt: NCGetDaoWhiteList) {\r\n      const dao_id = inpt.dao_id || (await this.getDaoIdByOwner(inpt.dao_owner));\r\n      //let q = await this.cApi.getDAOWhiteList({ id: inpt.dao_id as string });\r\n      //let w = await q.json();\r\n      const opt = {\r\n          json: true,\r\n          code: this.services.daos_contract,\r\n          scope: dao_id,\r\n          table: \"whitelist\",\r\n          key_type: \"name\",\r\n          lower_bound: inpt.lower_bound,\r\n          upper_bound: inpt.upper_bound,\r\n          limit: ~~(inpt.limit??\"10\"),\r\n          reverse: inpt.reverse,\r\n          index_position: \"1\",\r\n      } as GetTableRowsPayload;\r\n      let w = await (await this.cApi.getTableRows( opt )).json();\r\n      if(this.debug) console.log(\"received white list\" + JSON.stringify(w)); \r\n      return { ...w, dao_id };\r\n    }\r\n      \r\n    async getVotes(inpt: NCGetVotes) {\r\n      let w;\r\n  \r\n      const opt = {\r\n        json: true,\r\n        code: this.services.daos_contract,\r\n        scope: inpt.voter,\r\n        table: \"votes\",\r\n        key_type: \"i64\",\r\n        lower_bound: inpt.lower_bound,\r\n        upper_bound: inpt.upper_bound,\r\n        limit: ~~(inpt.limit??\"10\"),\r\n        reverse: inpt.reverse,\r\n        index_position: \"1\",\r\n      } as GetTableRowsPayload;\r\n  \r\n      w = await (await this.cApi.getTableRows(opt)).json();\r\n      if(this.debug) console.log(\"received from getVotes \" + JSON.stringify(w.rows));\r\n      return w;\r\n    }\r\n  \r\n};","import { NCInit, NCInitServices, NCInitUrls } from \"../system\";\r\n\r\nimport { NCCreatePool, NCStakePool, NCUnstakePool,\r\n        NCStakeMainDao, NCReturnTxs } from \"../types\";\r\n\r\nimport { TransactResult } from \"eosjs/dist/eosjs-api-interfaces\";\r\n//const ecc = require(\"eosjs-ecc-priveos\");\r\nimport fetch from 'cross-fetch';\r\n\r\nimport { ActionGenerator as PoolsActionGenerator, ChainApi as PoolsRpcApi } from '@newfound8ion/newcoin.pools-js'\r\nimport { PoolPayload as PoolsPayload } from '@newfound8ion/newcoin.pools-js/dist/interfaces/pool.interface';\r\nimport { ActionGenerator as MainDAOActionGenerator } from '@newfound8ion/newcoin.pool-js'\r\nimport { ActionGenerator as sdkActionGen  } from \"./actions\";\r\n\r\nimport { NCO_submit_API } from \"./submit\"\r\nexport { NCO_pools_API }\r\n\r\nclass NCO_pools_API {\r\n    private debug : boolean;\r\n    private services : NCInitServices;\r\n    private urls: NCInitUrls; \r\n\r\n    private mGen: MainDAOActionGenerator;\r\n    private poolsRpcApi: PoolsRpcApi;\r\n    private pGen: PoolsActionGenerator;\r\n    private sdkGen: sdkActionGen;\r\n    private submitter: NCO_submit_API; \r\n\r\n    constructor( inpt: NCInit ) {\r\n        this.debug = inpt.debug;\r\n        this.services = inpt.services;\r\n        this.urls = inpt.urls;\r\n    \r\n        this.mGen = new MainDAOActionGenerator(this.services.maindao_contract, this.services.token_contract);\r\n        this.poolsRpcApi = new PoolsRpcApi(this.urls.nodeos_url, this.services.staking_contract, fetch);\r\n        this.pGen = new PoolsActionGenerator(this.services.staking_contract, this.services.maindao_contract);\r\n        this.sdkGen = new sdkActionGen(this.services.eosio_contract, this.services.token_contract);\r\n        this.submitter = new NCO_submit_API(inpt);\r\n    }\r\n\r\n    SubmitTx = (\r\n        actions: any[],\r\n        public_keys: string[],   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n        private_keys: string[]  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"]) \r\n        ) => {\r\n        return this.submitter.SubmitTx(\r\n            actions,\r\n            public_keys,   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n            private_keys);  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"])\r\n    }\r\n\r\n      /* =====================================================================================\r\n   * Main DAO service: common staking pool transfrming NCO (external convertible currency) \r\n   * into internal GNCO currency. \r\n   * \r\n   * Staked amount is subject to a staking fee, redemption delay and/or \r\n   * instant unstaking fee.  \r\n   * @param   NCStakeMainDao \r\n   * @returns NCReturnTxs\r\n   */\r\n  async stakeMainDAO(inpt: NCStakeMainDao) {\r\n    let r: NCReturnTxs = {};\r\n\r\n    const stakeTx = await this.mGen.stake( [{ actor: inpt.payer, permission: \"active\" }], inpt.payer, inpt.amt);\r\n    if(this.debug) console.log(\"action: \" + JSON.stringify(stakeTx));\r\n    const res = await this.SubmitTx(stakeTx, [], [inpt.payer_prv_key]) as TransactResult;\r\n\r\n    r.TxID_stakeMainDAO = res.transaction_id;\r\n    r.tx = res;\r\n    return r;\r\n  }\r\n\r\n  /**\r\n  * Instant UnStake mainDAO with penalty\r\n  * @param NCStakeMainDao \r\n  * @returns NCReturnTxs\r\n  */\r\n  async instUnstakeMainDAO(inpt: NCStakeMainDao) {\r\n    let r: NCReturnTxs = {};\r\n\r\n    const stakeTx = await this.mGen.instunstake(\r\n      [{ actor: inpt.payer, permission: \"active\" }],\r\n      inpt.payer,\r\n      inpt.amt);\r\n\r\n    if(this.debug) console.log(\"action: \" + JSON.stringify(stakeTx));\r\n    const res = await this.SubmitTx(stakeTx,\r\n      [],\r\n      [inpt.payer_prv_key]) as TransactResult;\r\n\r\n    r.TxID_unstakeMainDAO = res.transaction_id;\r\n    return r;\r\n\r\n  }\r\n\r\n  /**\r\n   * Delayed UnStake mainDAO delay without penalty\r\n   * @param NCStakeMainDao \r\n   * @returns NCReturnTxs\r\n   */\r\n  async dldUnstakeMainDAO(inpt: NCStakeMainDao) {\r\n    let r: NCReturnTxs = {};\r\n    const stakeTx = await this.mGen.dldunstake(\r\n      [{ actor: inpt.payer, permission: \"active\" }],\r\n      inpt.payer,\r\n      inpt.amt);\r\n\r\n    if(this.debug) console.log(\"action: \" + JSON.stringify(stakeTx));\r\n    const res = await this.SubmitTx(stakeTx,\r\n      [],\r\n      [inpt.payer_prv_key]) as TransactResult;\r\n\r\n    r.TxID_unstakeMainDAO = res.transaction_id;\r\n    return r;\r\n\r\n  }\r\n\r\n\r\n  // ========================================================================\r\n  /** Staking pools service, issuing social tokens\r\n   *\r\n   * Create a staking pool for an account. \r\n   * Selection of ticker and inflation/deflation optionality\r\n   * @param   NCCreatePool\r\n   * @returns Create Pool transaction id\r\n   */\r\n   async createPool(inpt: NCCreatePool) {\r\n    inpt.ticker = (inpt.ticker || inpt.owner.substring(0, 5)).toUpperCase();\r\n    inpt.is_inflatable ??= true;\r\n    inpt.is_deflatable ??= true;\r\n    inpt.is_treasury ??= false;\r\n\r\n    if(this.debug) console.log(\"Creating pool: \" + JSON.stringify(inpt));\r\n    let t = this.sdkGen.createPool(\r\n      inpt.owner,\r\n      inpt.ticker,\r\n      inpt.is_inflatable,\r\n      inpt.is_deflatable,\r\n      inpt.is_treasury,\r\n      \"test pool for \" + inpt.owner\r\n    );\r\n\r\n    let res = await this.SubmitTx([t],\r\n      [], [inpt.owner_prv_active_key]\r\n    ) as TransactResult;\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_createPool = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n  /**\r\n   * Stake to creator pool \r\n   * @param \r\n   * @returns Create Pool transaction id\r\n   */\r\n  async stakePool(inpt: NCStakePool) {\r\n\r\n    let p: PoolsPayload = { owner: inpt.owner };\r\n    let r: NCReturnTxs = {};\r\n    type RetT = { rows: PoolsPayload[] };\r\n\r\n    if(this.debug) console.log(\"Get poolbyowner: \", JSON.stringify(p));\r\n    let q = await this.poolsRpcApi.getPoolByOwner(p);\r\n    let t = await q.json() as RetT;\r\n\r\n    const pool_id = t.rows[0].id as string;\r\n    const pool_code = t.rows[0].code as string;\r\n\r\n    if(this.debug) console.log(\"pool:\" + JSON.stringify(t));\r\n\r\n    const stakeTx = await this.pGen.stakeToPool(\r\n      [{ actor: inpt.payer, permission: \"active\" }],\r\n      inpt.payer, inpt.amt, pool_id);\r\n\r\n    if(this.debug) console.log(\"action: \" + JSON.stringify(stakeTx));\r\n    const res = await this.SubmitTx(stakeTx,\r\n      [],\r\n      [inpt.payer_prv_key]) as TransactResult;\r\n\r\n    r.TxID_stakePool = res.transaction_id;\r\n    r.pool_id = pool_id;\r\n    r.pool_code = pool_code;\r\n    return r;\r\n  }\r\n  \r\n  // DAO functionality\r\n  /**\r\n   * Unstake creator pool\r\n   * @param   NCUnstakePool\r\n   * @returns Create Pool transaction id\r\n   */\r\n  async unstakePool(inpt: NCUnstakePool) {\r\n\r\n    const t = await this.pGen.withdrawFromPool(\r\n      [{ actor: inpt.payer, permission: \"active\" }], //{ actor: \"io\", permission: \"active\"}\r\n      inpt.payer,\r\n      inpt.amt);\r\n\r\n    if(this.debug) console.log(\"action: \" + JSON.stringify(t));\r\n    const res = await this.SubmitTx(t,\r\n      [],\r\n      [inpt.payer_prv_key]) as TransactResult;\r\n\r\n    let r: NCReturnTxs = {};\r\n    r.TxID_unstakePool = res.transaction_id;\r\n    return r;\r\n  }\r\n\r\n\r\n\r\n}","// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n\r\nexport const ERC721_schema = [\r\n    { name: 'name',        type: \"string\" },\r\n    { name: 'description', type: \"string\" },\r\n    { name: 'image',       type: 'string' },\r\n  ];\r\n  \r\nexport const default_nft_schema = [\r\n    { name: 'name',         type: \"string\" },\r\n    { name: 'description',  type: \"string\" },\r\n    { name: 'image',        type: 'string' },\r\n    { name: 'external_url', type: 'string' },\r\n    { name: 'content_type', type: 'string' },\r\n    { name: 'content',      type: 'string' },\r\n    { name: 'license',      type: 'string' }\r\n  ];\r\n  \r\n  export const file_schema = [\r\n    { name: 'name',       type: 'string' }, \r\n    { name: 'path',       type: \"string\" }, \r\n    { name: 'image',      type: \"string\" },  // optional icon\r\n    { name: 'content',    type: 'string' }\r\n  ];\r\n\r\n  // Social ID \r\n  export const soc_id_schema = [\r\n    { name: \"name\",     type: 'string' },\r\n    { name: 'service',  type: 'string' },\r\n    { name: 'remoteId', type: 'string' },\r\n    { name: 'handler',  type: 'string' },\r\n    { name: 'score',    type: 'string' },\r\n    { name: 'scopes',   type: 'string' },\r\n    { name: 'src',      type: 'string' }\r\n    // verifiedSocialIds?: string[];\r\n  ];\r\n\r\n  export const profile_schema = [\r\n      // this is for proto accounts\r\n      { name: \"name\", type: \"string\"}, // Must be in schema\r\n      { name: \"status\", type: \"string\"},\r\n      { name: \"offer\", type: \"string\"},\r\n\r\n      { name: \"displayName\",type: \"string\"},\r\n      { name: \"fullName\",   type: \"string\"},\r\n      { name: \"firstName\",  type: \"string\"},\r\n      { name: \"lastName\",   type: \"string\"},\r\n      { name: \"username\",   type: \"string\"},\r\n      { name: \"email\",      type: \"string\"},\r\n      { name: \"phone\",      type: \"string\"},\r\n      { name: \"bio\",        type: \"string\"},\r\n      // avatar \r\n      { name: \"content_type\", type: \"string\"},\r\n      { name: \"external_url\", type: \"string\"},\r\n      { name: \"image\",        type: \"string\"},\r\n      { name: \"blurHash\",     type: \"string\"},\r\n      { name: \"aspectRatio\",  type: \"string\"},\r\n      // SOCIALS\r\n      { name: \"instagram\",  type: \"string\"},\r\n      { name: \"tiktok\",     type: \"string\"},\r\n      { name: \"youtube\",    type: \"string\"},\r\n      { name: \"twitter\",    type: \"string\"},\r\n      { name: \"spotify\",    type: \"string\"},\r\n      { name: \"pinterest\",  type: \"string\"},\r\n      { name: \"snapchat\",   type: \"string\"},\r\n      { name: \"reddit\",     type: \"string\"},\r\n      { name: \"discord\",    type: \"string\"},\r\n      { name: \"tumblr\",     type: \"string\"},\r\n      { name: \"soundcloud\", type: \"string\"},\r\n      { name: \"apple\",      type: \"string\"},\r\n      { name: \"telegram\",   type: \"string\"},\r\n      { name: \"signal\",     type: \"string\"},\r\n      { name: \"medium\",     type: \"string\"},\r\n      { name: \"facebook\",   type: \"string\"},\r\n      { name: \"facebookId\", type: \"string\"},\r\n      { name: \"youtubeId\",  type: \"string\"}\r\n  \r\n     //{ name: \"verifiedSocialIds\", type: \"string[]\" }, // verified ids no meaning to store here\r\n     //{ name: \"powering\", type: \"number\"},\r\n     //{ name: \"powered\", type: \"number\"},\r\n     //{ name: \"stripeUid\", type: \"string\"},\r\n     //{ name: \"subscriptionStatus\", type: \"string\"},\r\n     //{ name: \"subscriptionRecord\", type: \"string\"},\r\n     //{ name: \"subscriptionExpiry\", type: \"string\"},\r\n     //{ name: \"consentEmail\", type: \"string\"}, \r\n     //{ name: \"consentTestgroup\", type: \"string\"},\r\n     //{ name: \"consentPrivacyPolicy\", type: \"string\"},\r\n  ];\r\n\r\n  // link can represent a like, deeplike, repost, also off chain resource like file\r\n  export const link_schema = [\r\n    { name: 'name',        type: 'string'},  // this field has to be in the schema -- some links can use it. \r\n    { name: 'link_type',   type: 'string'},  // is it a like, repost, NFT link, file link\r\n    { name: 'subj_type',   type: 'string'}, // linked subject type (account, profile, collection, post)\r\n    { name: 'subj_name',     type: 'string'},      // subject ID\r\n    { name: 'context_type',type: 'string'}, \r\n    { name: 'context',     type: 'string'},  //\r\n    { name: 'prop_type',   type: 'string'},  // property: weight, hashtag\r\n    { name: 'prop_val',    type: 'string'},  // property value\r\n    { name: 'weight',      type: 'string'},  // any desired ordering number\r\n    { name: 'expiry',      type: 'string'},  // until when the link is valid\r\n    { name: 'image',       type: \"string\"},  // optional icon\r\n    { name: 'description', type: 'string'},\r\n    { name: 'version',     type: 'string'}\r\n\r\n  ];\r\n\r\n  export const like_link_template = [\r\n    {'key': 'name',        'value': ['string', \"\"],},\r\n    {'key': 'link_type',   'value': ['string', \"like\"] },\r\n//  {'key': 'subj_type',   'value': ['string', \"account\"]},\r\n//  {'key': 'subj_name',     'value': ['string', \"\"]},\r\n    {'key': 'context_type','value': ['string', '']},\r\n    {'key': 'context',     'value': ['string', '']},\r\n    {'key': 'prop_type',   'value': ['string', \"weight\"] },\r\n//  {'key': 'prop_val',    'value': ['string', \"100\"] },\r\n    {'key': 'weight',      'value': ['string', \"\"] },\r\n    {'key': 'expiry',      'value': ['string', \"\"] },\r\n    {'key': 'image',       'value': [\"string\", \"\"] },  // optional icon\r\n    {'key': 'description', 'value': ['string', \"\"] },\r\n    {'key': 'version',     'value': ['string', '1.0']}\r\n  ];\r\n\r\n  export const badge_link_template = [\r\n    { 'key': 'name',     'value':['string', \"\"]},  // this field has to be in the schema - choose some name. \r\n    { 'key': 'link_type','value':['string', \"badge\"]},  // is it a like, repost, NFT link, file link\r\n    { 'key': 'subj_type', 'value':['string', \"account\"]},  // linked object type (account, profile, collection, post)\r\n  //{ 'key': 'subj_name',   'value':['string', \"\"]},  // object ID\r\n    { 'key': 'prop_type','value':['string', \"string\"]},  // property: weight, hashtag\r\n  //{ 'key': 'prop_val', 'value':['string', \"\"]},  // badge name\r\n    { 'key': 'weight', 'value':['string', \"\"]},  // any desired ordering number\r\n  //{ 'key': 'expiry',   'value':['string', \"\"]},  // until when the link is valid\r\n    { 'key': 'image',    'value':['string', \"\"]},  // optional icon\r\n    { 'key': 'description', 'value':['string', \"\"]},\r\n    { 'key': 'version',  'value': ['string', \"\"]}\r\n\r\n  ];\r\n\r\n  export const file_link_template = [\r\n    { 'key': 'name',     'value':['string', \"\"]},  // this field has to be in the schema - choose some name. \r\n    { 'key': 'link_type','value':['string', \"badge\"]},  // is it a like, repost, NFT link, file link\r\n    { 'key': 'subj_type', 'value':['string', \"account\"]},  // linked object type (account, profile, collection, post)\r\n  //{ 'key': 'subj_name',   'value':['string', \"\"]},  // object ID\r\n    { 'key': 'prop_type','value':['string', \"string\"]},  // property: weight, hashtag\r\n  //{ 'key': 'prop_val', 'value':['string', \"\"]},  // badge name\r\n    { 'key': 'weignt', 'value':['string', \"\"]},  // any desired ordering number\r\n  //{ 'key': 'expiry',   'value':['string', \"\"]},  // until when the link is valid\r\n    { 'key': 'image',    'value':['string', \"\"]},  // optional icon\r\n    { 'key': 'description', 'value':['string', \"\"]},\r\n    { 'key': 'version',  'value': ['string', \"\"]}\r\n  ];\r\n\r\n /* export const SBT_social_schema = [\r\n    { name: 'name', type: \"string\" },\r\n    { name: 'description', type: \"string\" },\r\n    { name: 'image', type: 'string' },\r\n    { name: 'type', type: 'string' },\r\n    { name: 'issuer', type: 'string' },\r\n    { name: 'recipient', type: 'string' },\r\n    { name: 'quantifiers', type: 'string' },\r\n    { name: 'signed_by', type: 'string' },\r\n    { name: 'signature', type: 'string' },\r\n    { name: 'content', type: 'string' },\r\n    { name: 'version', type: 'string' }\r\n  ];*/\r\n  ","import { NCInit, NCInitServices, NCInitUrls } from \"../system\";\r\nimport { NCMintAsset, NCCreateCollection, NCReturnTxs, NCModifyAsset } from \"../types\";\r\nimport { TransactResult } from \"eosjs/dist/eosjs-api-interfaces\";\r\nimport { ActionGenerator as sdkActionGen } from \"./actions\";\r\nimport { NCO_submit_API } from \"./submit\"\r\nimport { NCO_utils_API } from \"../utils\";\r\nimport { default_nft_schema } from \"../schemas\";\r\nimport { NCO_read_API } from \"./reader\";\r\n\r\nexport { NCO_assets_API }\r\n\r\nclass NCO_assets_API {\r\n    private debug    : boolean;\r\n    private services : NCInitServices;\r\n    // @ts-ignore\r\n    private urls     : NCInitUrls; \r\n    private sdkGen   : sdkActionGen;\r\n    private submitter: NCO_submit_API;\r\n    private reader   : NCO_read_API; \r\n    private utils    : NCO_utils_API;\r\n\r\n    constructor( inpt: NCInit ) {\r\n        this.debug      = inpt.debug;\r\n        this.services   = inpt.services;\r\n        this.urls       = inpt.urls;\r\n        this.submitter  = new NCO_submit_API(inpt);\r\n        this.reader     = new NCO_read_API(inpt);\r\n        this.sdkGen     = new sdkActionGen(this.services.eosio_contract, this.services.token_contract);\r\n        this.utils      = new NCO_utils_API(inpt);\r\n        this.urls       = inpt.urls;\r\n    }\r\n\r\n    SubmitTx = (\r\n        actions: any[],\r\n        public_keys: string[],   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n        private_keys: string[]  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"]) \r\n        ) => {\r\n        return this.submitter.SubmitTx(\r\n            actions,\r\n            public_keys,   // testnet [\"EOS5PU92CupzxWEuvTMcCNr3G69r4Vch3bmYDrczNSHx5LbNRY7NT\"]\r\n            private_keys);  // testnet [\"5KdRwMUrkFssK2nUXASnhzjsN1rNNiy8bXAJoHYbBgJMLzjiXHV\"])\r\n        }\r\n    \r\n\r\n    /**\r\n     * Create default collection for the account\r\n     * @param  NCCreateCollection\r\n     * @returns Create Collection and template transactions' ids\r\n     */\r\n    async createCollection(inpt: NCCreateCollection) {\r\n        \r\n            let t: any;\r\n            let res: NCReturnTxs = {};\r\n            let tres: TransactResult;\r\n        \r\n            if (inpt.collection_name == undefined) throw \"must supply collection name\";\r\n            if (inpt.schema_name == undefined) throw \"must supply schema name\";\r\n            let mkt_fee = inpt.mkt_fee ? inpt.mkt_fee : 0.05;\r\n            let allow_notify = inpt.allow_notify ? inpt.allow_notify : true;\r\n        \r\n            t = this.sdkGen.createCollection(\r\n              inpt.user,\r\n              inpt.collection_name,\r\n              [inpt.user],\r\n              [inpt.user],\r\n              mkt_fee,\r\n              allow_notify\r\n            );\r\n        \r\n            if(this.debug) console.log(t);\r\n            if(this.debug) console.log(\"createcol transaction\");\r\n            tres = await this.submitter.SubmitTx([t], [],[inpt.user_prv_active_key]) as TransactResult;\r\n            res.TxID_createCol = tres.transaction_id;\r\n            if(this.debug) console.log(tres);\r\n        \r\n            // Schemas --- \r\n            if(this.debug) console.log(\"creating schema \");\r\n            let schema_fields = inpt.schema_fields ? inpt.schema_fields : default_nft_schema;\r\n            let t1 = this.sdkGen.createSchema(inpt.user, inpt.collection_name, inpt.schema_name, schema_fields);\r\n            if(this.debug) console.log(t1);\r\n            \r\n            if(this.debug) console.log(\"createsch transaction\");\r\n            tres = await this.submitter.SubmitTx([t1],[],[inpt.user_prv_active_key]) as TransactResult;\r\n            res.TxID_createSch = tres.transaction_id;\r\n            if(this.debug) console.log(tres);\r\n        \r\n            if(this.debug) console.log(\"creating template\");\r\n            let template = inpt.template_fields ? inpt.template_fields : [];\r\n            let xferable = inpt.xferable ? inpt.xferable : true;\r\n            let burnable = inpt.burnable ? inpt.burnable : true;\r\n            t = this.sdkGen.createTemplate(inpt.user, inpt.collection_name, inpt.schema_name, xferable, burnable, template);\r\n            if(this.debug) console.log(t);\r\n        \r\n            if(this.debug) console.log(\"creating template transaction\");\r\n            tres = await this.submitter.SubmitTx([t], [], [inpt.user_prv_active_key] ) as TransactResult;\r\n            res.TxID_createTpl = res.TxID_createTpl;\r\n            if(this.debug) console.log(tres);\r\n        \r\n            return res;\r\n          }\r\n        \r\n\r\n    /**\r\n   * Mint an asset\r\n   * @param inpt: NCMintAsset\r\n   * @returns Create Pool transaction id\r\n   */\r\n    async mintAsset(inpt: NCMintAsset) {\r\n\r\n        let r: NCReturnTxs = {};\r\n        if (inpt.col_name == undefined) inpt.col_name = this.utils.getRootCollectionName(inpt.creator);\r\n        if (inpt.sch_name == undefined) inpt.sch_name = this.utils.getRootCollectionLinkSchemaName(inpt.creator);    \r\n        if (inpt.tmpl_id == undefined) inpt.tmpl_id = -1;\r\n        if ( (inpt.immutable_data == undefined) && (inpt.mutable_data == undefined) ) return r; // nothing to mint\r\n        if (inpt.immutable_data == undefined) inpt.immutable_data = [{ key: 'name', value: ['string', inpt.creator + '_' + (new Date()).getTime()] }];\r\n        if (inpt.mutable_data == undefined) inpt.mutable_data = [];\r\n  \r\n        const t = this.sdkGen.mintAsset(\r\n          inpt.creator, inpt.col_name, inpt.sch_name, inpt.tmpl_id,\r\n          inpt.immutable_data, inpt.mutable_data, inpt.payer\r\n        );\r\n        const keys = [inpt.payer_prv_key, inpt.user_prv_active_key].filter(Boolean) as string[];\r\n        let   res  = await this.submitter.SubmitTx([t], [], keys) as TransactResult;\r\n        r.TxID_mintAsset = res.transaction_id;\r\n        r.asset_id = \"asset default ID\";\r\n  \r\n        try {\r\n          r.asset_id = (await this.reader.txToAssetId(res.transaction_id))[0];\r\n        } catch (ex) {\r\n          // asset may not be ready. polling is one solution to wait but if implemented must be optional\r\n          console.log((ex as any).message);\r\n          throw ex;\r\n        }\r\n        console.log(\"minted asset tx \" + res.transaction_id + \" asset id: \" + r.asset_id);\r\n        return r;\r\n  \r\n        // another option is by search via asset id\r\n        /*let p: DAOPayload = { owner: inpt.author };\r\n        if(this.debug) console.log(\"Get dao by owner: \", JSON.stringify(p));\r\n        let q = await this.cApi.getDAOByOwner(p);\r\n        let w = await q.json();\r\n        if(this.debug) console.log(\"received from getDaoByOwner\" + JSON.stringify(w));\r\n    \r\n        let r: NCReturnTxs = {};\r\n        r.TxID_createDao = res.transaction_id;\r\n        r.dao_id = w.rows[0].id.toString();\r\n        // r.dao_id = r.dao_id.toString() ;*/\r\n      }\r\n    \r\n      \r\n    /**\r\n     * Modify existing asset in an asset mutable data\r\n     * @param inpt: NCModifyAsset\r\n     * @returns asset id\r\n     */\r\n      async modifyAsset(inpt: NCModifyAsset) {\r\n        \r\n        const t = this.sdkGen.modifyAsset(inpt.editor, inpt.owner, inpt.asset_id, inpt.new_data);\r\n        console.log(\"modify asset: \" + JSON.stringify(t));\r\n        let res = await this.submitter.SubmitTx([t], [], [inpt.payer_prv_key]) as TransactResult;\r\n        let r: NCReturnTxs = {};\r\n        r.TxID_modifyAsset = res.transaction_id;\r\n        r.asset_id = inpt.asset_id;\r\n        return r;    \r\n      }\r\n    }","import { RpcError } from \"eosjs\";\r\nimport { TransactResult } from \"eosjs/dist/eosjs-api-interfaces\";\r\nimport { NCInit, NCInitServices } from \"../system\";\r\nimport { NCGetAccInfo, NCReturnInfo, NCReturnTxs, NCTxBal } from \"../types\";\r\nimport { ActionGenerator as sdkActionGen } from \"./actions\";\r\nimport { NCO_submit_API } from \"./submit\";\r\n\r\nexport class NCO_tx_API {\r\n\r\n  //private aa_url : string;\r\n  //private hyp_url: string;\r\n  private debug: boolean;\r\n  private sdkGen: sdkActionGen;\r\n  private submitter: NCO_submit_API;\r\n  private services: NCInitServices;\r\n\r\n  constructor (inpt: NCInit) {\r\n    //this.aa_url = inpt.urls.atomicassets_url;\r\n    //this.hyp_url = inpt.urls.hyperion_url;\r\n    this.services  = inpt.services;\r\n    this.debug  = inpt.debug;\r\n    this.sdkGen     = new sdkActionGen(this.services.eosio_contract, this.services.token_contract);\r\n    this.submitter  = new NCO_submit_API(inpt);\r\n  }\r\n\r\n\r\n  /**\r\n   * Get account balance\r\n   * @param acc: NCGetAccInfo\r\n   * @param acc.token_name will set correct contract\r\n   * @returns Tx data\r\n   */\r\n  async getAccountBalance(acc: NCGetAccInfo) {\r\n\r\n    if (!acc.contract) {\r\n\r\n      if (acc.token_name == \"GNCO\")\r\n        acc.contract = this.services.maindao_contract;\r\n      else\r\n        if (acc.token_name != \"NCO\")\r\n          acc.contract = this.services.staking_contract;\r\n        else\r\n          acc.contract = this.services.eosio_contract;\r\n    }\r\n\r\n    let rc: NCReturnInfo = { acc_balances: [] };\r\n    try {\r\n      let t = await fetch(`https://nodeos-dev.newcoin.org/v1/chain/get_currency_balance`, { // TODO\r\n        method: \"POST\",\r\n        headers: { \"Content-Type\": \"application/json\" },\r\n        body: JSON.stringify({\r\n          account: acc.owner,\r\n          code: acc.contract\r\n        }),\r\n      });\r\n      rc.acc_balances = await t.json();\r\n      //if(this.debug) if(this.debug) console.log(rc);\r\n      return rc;\r\n    } catch (e) {\r\n      if(this.debug) console.log('\\nCaught exception: ' + e);\r\n      if (e instanceof RpcError && this.debug) console.log(JSON.stringify(e.json, null, 2));\r\n      throw e;\r\n    }\r\n  }\r\n\r\n      /**\r\n   * Transfer NCO between accounts\r\n   * @returns Transfer transaction id\r\n   */\r\n      async _txBalance(contract: string, inpt: NCTxBal): Promise<NCReturnTxs> {\r\n        let r: NCReturnTxs = {};\r\n        let tx = this.sdkGen.txBalance(contract, inpt.payer, inpt.to, inpt.amt, inpt.memo ??= \"\");\r\n        let res = await this.submitter.SubmitTx([tx],\r\n          [],\r\n          [inpt.payer_prv_key]\r\n        ) as TransactResult;\r\n        r.TxID = res.transaction_id;\r\n        return r;\r\n    }\r\n  \r\n    /**\r\n   * Transfer NCO between accounts\r\n   * @param NCTxBal\r\n   * @returns Transfer transaction id\r\n   */\r\n    async txNCOBalance(inpt: NCTxBal) {\r\n        const r = await this._txBalance(this.services.token_contract, inpt);\r\n        return r;\r\n      }\r\n    \r\n\r\n  /**\r\n   * Transfer GNCO between accounts\r\n   * @param NCTxBal\r\n   * @returns Transfer transaction id\r\n   */\r\n  async txGNCOBalance(inpt: NCTxBal) {\r\n    const r = await this._txBalance(this.services.maindao_contract, inpt);\r\n    return r;\r\n  }\r\n\r\n\r\n  /**\r\n   * Transfer creator tokens between accounts\r\n   * @param   NCTxBal \r\n   * @returns Transfer transaction id\r\n   */\r\n  async txDAOTokenBalance(inpt: NCTxBal) {\r\n    const r = await this._txBalance(this.services.staking_contract, inpt);\r\n    return r;\r\n  }\r\n\r\n\r\n  \r\n}\r\n","import { AcceptedTokens } from \".\";\r\n\r\nexport type EosioAuthorizationObject = { actor: string; permission: string };\r\n\r\nexport type EosioActionObject = {\r\n  account: string;\r\n  name: string;\r\n  authorization: EosioAuthorizationObject[];\r\n  data: any;\r\n};\r\n\r\nexport enum AuctionType {\r\n  standard = \"standard\",\r\n  dutch = \"dutch\",\r\n}\r\n\r\nexport enum CreateActionName {\r\n  standard = \"createenauct\",\r\n  dutch = \"createduauct\",\r\n}\r\n\r\nexport interface NCTransferTokenTransactionParams {\r\n  accountName: string;\r\n  requestPermission?: string;\r\n  to: string;\r\n  contract: string;\r\n  amount: number;\r\n  currency: string;\r\n  decimals: number;\r\n  memo?: string;\r\n}\r\n\r\nexport interface NCCreateAuctionParams {\r\n  /**\r\n   * In standard auctions is the initial price. For dutch auctions,\r\n   * it's the bottom price\r\n   */\r\n  minPrice: number;\r\n  /**\r\n   * optional for standard auctions, required for dutch auctions\r\n   */\r\n  buyNowPrice?: number;\r\n  priceToken: string;\r\n  precision: number;\r\n  startDateMs: number;\r\n  endDateMs: number;\r\n  collection: string;\r\n  assetIds: string[];\r\n  auctionType: AuctionType;\r\n  /**\r\n   * For standard auctions, set this value to 0\r\n   */\r\n  discountRate: number;\r\n  /**\r\n   * For standard auctions, set this value to 0\r\n   */\r\n  discountInterval: number;\r\n  accountName: string;\r\n  requestPermission?: string;\r\n  marketplace?: string;\r\n}\r\n\r\nexport interface NCPlaceBidParams {\r\n  accountName: string;\r\n  requestPermission?: string;\r\n  auctionId: string;\r\n  amount: number;\r\n  symbol: AcceptedTokens;\r\n  decimals: number;\r\n  marketplace?: string;\r\n}\r\n\r\nexport interface NCClaimNftsParams {\r\n  accountName: string;\r\n  requestPermission?: string;\r\n  auctionId: string;\r\n}\r\n\r\nexport type NCClaimWinBidParams = NCClaimNftsParams;\r\nexport type NCEraseAuctionParams = NCClaimNftsParams;\r\n\r\nexport interface NCEditAuctionParams extends NCCreateAuctionParams {\r\n  auctionId: string;\r\n}\r\n\r\n// Types for get auctions actions functions\r\n\r\nexport interface NeftyMarketParamsBase {\r\n  neftymarketContract: string;\r\n  atomicassetsContract: string;\r\n}\r\n\r\nexport type NCTransferTokenTransactionActionsParams = NCTransferTokenTransactionParams & NeftyMarketParamsBase;\r\nexport type NCCreateAuctionActionsParams = NCCreateAuctionParams & NeftyMarketParamsBase;\r\nexport type NCPlaceBidActionsParams = NCPlaceBidParams & NeftyMarketParamsBase;\r\nexport type NCClaimNftsActionsParams = NCClaimNftsParams & NeftyMarketParamsBase;\r\nexport type NCClaimWinBidActionsParams = NCClaimWinBidParams & NeftyMarketParamsBase;\r\nexport type NCEraseAuctionActionsParams = NCEraseAuctionParams & NeftyMarketParamsBase;\r\nexport type NCEditAuctionActionsParams = NCEditAuctionParams & NeftyMarketParamsBase;\r\n\r\n// create auction data\r\nexport interface CreateAuctionData {\r\n  seller: string;\r\n  collection_name: string;\r\n  asset_ids: string[];\r\n  min_price: string;\r\n  start_time: number;\r\n  end_time: number;\r\n  buy_now_price: string;\r\n  security_id: number;\r\n  marketplace: string;\r\n  discount_rate?: number;\r\n  discount_interval?: number;\r\n}\r\n","export const getNameForTransaction = (name: string): string =>\r\n  name.toLowerCase().trim();\r\n\r\nexport const priceForCurrency = (\r\n  price: number,\r\n  currency: string,\r\n  decimals: number\r\n) => {\r\n  return `${price.toFixed(decimals)} ${currency}`;\r\n};\r\n","import { getNameForTransaction, priceForCurrency } from \"../utils\";\r\nimport { EosioActionObject, NCTransferTokenTransactionActionsParams } from \"../types\";\r\n\r\nexport function getTransferTokensActions(\r\n  params: NCTransferTokenTransactionActionsParams\r\n): EosioActionObject[] {\r\n  const {\r\n    accountName,\r\n    requestPermission = \"active\",\r\n    to,\r\n    currency,\r\n    contract,\r\n    amount,\r\n    decimals,\r\n    memo,\r\n  } = params;\r\n\r\n  if (!accountName || !to || !currency || !contract) {\r\n    throw new Error(\"Missing required params\");\r\n  }\r\n\r\n  return [\r\n    {\r\n      account: contract,\r\n      name: \"transfer\",\r\n      authorization: [\r\n        {\r\n          actor: getNameForTransaction(accountName),\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        from: getNameForTransaction(accountName),\r\n        to: getNameForTransaction(to),\r\n        quantity: priceForCurrency(amount, currency, decimals),\r\n        memo: memo || \"\",\r\n      },\r\n    },\r\n  ];\r\n}\r\n","import {\r\n  NCClaimNftsActionsParams,\r\n  NCClaimWinBidActionsParams,\r\n  CreateActionName,\r\n  NCCreateAuctionActionsParams,\r\n  NCEditAuctionActionsParams,\r\n  NCEraseAuctionActionsParams,\r\n  NCPlaceBidActionsParams,\r\n  AuctionType,\r\n  CreateAuctionData,\r\n  EosioActionObject,\r\n} from \"../types\";\r\nimport { getNameForTransaction, priceForCurrency } from \"../utils\";\r\nimport { getTransferTokensActions } from \"./atomicassets\";\r\n\r\nexport const getCreateAuctionActions = (\r\n  params: NCCreateAuctionActionsParams\r\n): EosioActionObject[] => {\r\n  const {\r\n    accountName,\r\n    collection,\r\n    assetIds,\r\n    minPrice,\r\n    priceToken,\r\n    precision,\r\n    startDateMs,\r\n    endDateMs,\r\n    buyNowPrice,\r\n    marketplace,\r\n    discountInterval,\r\n    discountRate,\r\n    neftymarketContract,\r\n    atomicassetsContract,\r\n  } = params;\r\n  const requestPermission = params.requestPermission ?? \"active\";\r\n  const createAuctionData: CreateAuctionData = {\r\n    seller: getNameForTransaction(accountName),\r\n    collection_name: getNameForTransaction(collection),\r\n    asset_ids: assetIds,\r\n    min_price: priceForCurrency(minPrice, priceToken, precision),\r\n    start_time: Math.floor(startDateMs / 1000),\r\n    end_time: Math.floor(endDateMs / 1000),\r\n    buy_now_price: priceForCurrency(buyNowPrice || 0, priceToken, precision),\r\n    security_id: 0,\r\n    marketplace: marketplace ?? \"\",\r\n  };\r\n  if (params.auctionType === AuctionType.dutch) {\r\n    createAuctionData[\"discount_rate\"] = (discountRate ?? 0) / 100;\r\n    createAuctionData[\"discount_interval\"] = discountInterval ?? 0;\r\n  }\r\n\r\n  return [\r\n    {\r\n      account: neftymarketContract,\r\n      name: \"openinv\",\r\n      authorization: [\r\n        {\r\n          actor: params.accountName,\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        owner: params.accountName,\r\n        count: params.assetIds.length,\r\n      },\r\n    },\r\n    {\r\n      account: atomicassetsContract,\r\n      name: \"transfer\",\r\n      authorization: [\r\n        {\r\n          actor: params.accountName,\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        from: params.accountName,\r\n        to: neftymarketContract,\r\n        asset_ids: params.assetIds || [],\r\n        memo: \"deposit\",\r\n      },\r\n    },\r\n    {\r\n      account: neftymarketContract,\r\n      name:\r\n        params.auctionType === AuctionType.dutch\r\n          ? CreateActionName.dutch\r\n          : CreateActionName.standard,\r\n      authorization: [\r\n        {\r\n          actor: params.accountName,\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: createAuctionData,\r\n    },\r\n  ];\r\n};\r\n\r\nexport const getPlaceBidActions = (\r\n  params: NCPlaceBidActionsParams\r\n): EosioActionObject[] => {\r\n  const {\r\n    accountName,\r\n    requestPermission = \"active\",\r\n    decimals,\r\n    symbol,\r\n    amount,\r\n    auctionId,\r\n    marketplace,\r\n    neftymarketContract,\r\n    atomicassetsContract,\r\n  } = params;\r\n  return [\r\n    {\r\n      account: neftymarketContract,\r\n      name: \"openbal\",\r\n      authorization: [\r\n        {\r\n          actor: getNameForTransaction(accountName),\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        owner: getNameForTransaction(accountName),\r\n        token_symbol: `${decimals},${symbol}`,\r\n      },\r\n    },\r\n    ...getTransferTokensActions({\r\n      amount,\r\n      to: neftymarketContract,\r\n      contract: atomicassetsContract,\r\n      currency: symbol,\r\n      decimals,\r\n      accountName,\r\n      requestPermission,\r\n      memo: \"deposit\",\r\n      atomicassetsContract,\r\n      neftymarketContract,\r\n    }),\r\n    {\r\n      account: neftymarketContract,\r\n      name: \"bid\",\r\n      authorization: [\r\n        {\r\n          actor: getNameForTransaction(accountName),\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        bidder: getNameForTransaction(accountName),\r\n        auction_id: auctionId,\r\n        bid_amount: priceForCurrency(amount, symbol, decimals),\r\n        marketplace: marketplace ?? \"\",\r\n      },\r\n    },\r\n  ];\r\n};\r\n\r\nexport const getClaimNftsActions = (\r\n  params: NCClaimNftsActionsParams\r\n): EosioActionObject[] => {\r\n  const {\r\n    accountName,\r\n    requestPermission = \"active\",\r\n    auctionId,\r\n    neftymarketContract,\r\n  } = params;\r\n\r\n  return [\r\n    {\r\n      account: neftymarketContract,\r\n      name: \"claimassets\",\r\n      authorization: [\r\n        {\r\n          actor: getNameForTransaction(accountName),\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        auction_id: getNameForTransaction(auctionId),\r\n      },\r\n    },\r\n  ];\r\n};\r\n\r\nexport const getClaimWinBidActions = (\r\n  params: NCClaimWinBidActionsParams\r\n): EosioActionObject[] => {\r\n  const {\r\n    accountName,\r\n    requestPermission = \"active\",\r\n    auctionId,\r\n    neftymarketContract,\r\n  } = params;\r\n\r\n  return [\r\n    {\r\n      account: neftymarketContract,\r\n      name: \"claimwinbid\",\r\n      authorization: [\r\n        {\r\n          actor: getNameForTransaction(accountName),\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        auction_id: getNameForTransaction(auctionId),\r\n      },\r\n    },\r\n  ];\r\n};\r\n\r\nexport const getEraseAuctionActions = (\r\n  params: NCEraseAuctionActionsParams\r\n): EosioActionObject[] => {\r\n  const {\r\n    accountName,\r\n    requestPermission = \"active\",\r\n    auctionId,\r\n    neftymarketContract,\r\n  } = params;\r\n  return [\r\n    {\r\n      account: neftymarketContract,\r\n      name: \"eraseauct\",\r\n      authorization: [\r\n        {\r\n          actor: getNameForTransaction(accountName),\r\n          permission: requestPermission,\r\n        },\r\n      ],\r\n      data: {\r\n        auction_id: getNameForTransaction(auctionId),\r\n      },\r\n    },\r\n  ];\r\n};\r\n\r\nexport const getEditAuctionActions = (\r\n  params: NCEditAuctionActionsParams\r\n): EosioActionObject[] => {\r\n  const {\r\n    accountName,\r\n    requestPermission,\r\n    auctionId,\r\n    neftymarketContract,\r\n    atomicassetsContract,\r\n  } = params;\r\n  if (!auctionId) {\r\n    throw new Error(\"Missing required params\");\r\n  }\r\n  return [\r\n    ...getEraseAuctionActions({\r\n      auctionId,\r\n      accountName,\r\n      requestPermission,\r\n      neftymarketContract,\r\n      atomicassetsContract,\r\n    }),\r\n    ...getCreateAuctionActions(params),\r\n  ];\r\n};\r\n","\r\nexport type NCInit = {\r\n    services: NCInitServices,\r\n    urls: NCInitUrls,\r\n    is_proxy: boolean,\r\n    debug: boolean\r\n  };\r\n\r\nexport type NCInitUrls = {\r\n    nodeos_url: string,\r\n    hyperion_url: string,\r\n    atomicassets_url: string,\r\n    nodeos_proxy_url: string\r\n  };\r\n  \r\n  export type NCInitServices = {\r\n    eosio_contract: string,\r\n    token_contract: string,\r\n    maindao_contract: string,\r\n    staking_contract: string,\r\n    daos_contract: string;\r\n    neftymarket_contract: string;\r\n    atomicassets_contract: string;\r\n  };\r\n  \r\n  export const devnet_urls: NCInitUrls =\r\n  {\r\n    nodeos_url:       \"https://nodeos-dev.newcoin.org\",\r\n    hyperion_url:     \"https://hyperion-dev.newcoin.org\",\r\n    atomicassets_url: \"https://atomic-nefty-devnet.newcoin.org/\",\r\n    nodeos_proxy_url: \"https://auth-eu-dev.newsafe.org/v1/tx/newcoin\"\r\n  };\r\n\r\n    \r\n  export const devnet_urls_prod: NCInitUrls =\r\n  {\r\n    nodeos_url:       \"https://nodeos-dev.newcoin.org\",\r\n    hyperion_url:     \"https://hyperion-dev.newcoin.org\",\r\n    atomicassets_url: \"https://atomic-nefty-devnet.newcoin.org/\",\r\n    nodeos_proxy_url: \"https://api.newsafe.org/v1/tx/newcoin\"\r\n  };\r\n  \r\n  export const devnet_services: NCInitServices =\r\n  {\r\n    eosio_contract: \"eosio\",\r\n    token_contract: \"eosio.token\",\r\n    maindao_contract: \"pool.nco\",\r\n    staking_contract: \"pools2.nco\",\r\n    daos_contract: \"daos2.nco\",\r\n    neftymarket_contract: \"market.nefty\",\r\n    atomicassets_contract: \"atomicassets\"\r\n  };\r\n  ","// EOS imports\r\nimport { RpcError } from \"eosjs\";\r\nimport { TransactResult } from \"eosjs/dist/eosjs-api-interfaces\";\r\n\r\n// Extra backend services\r\n// import { JsonRpc as HJsonRpc } from \"@eoscafe/hyperion\";\r\n\r\n// Newcoin services  \r\n//@ts-ignore\r\nimport { ChainApi as PoolsRpcApi } from '@newfound8ion/newcoin.pools-js'\r\nimport { ActionGenerator as sdkActionGen, EosioActionObject } from \"./L1/actions\";\r\n//import { RpcApi as AaRpcApi } from \"atomicassets\";\r\n\r\nimport { NCO_account_API } from \"./L1/accounts\";\r\nimport { NCO_daos_API } from \"./L1/daos\";\r\nimport { NCO_submit_API } from \"./L1/submit\";\r\nimport { NCO_pools_API } from \"./L1/pools\";\r\nimport { NCO_assets_API } from \"./L1/assets\";\r\nimport { NCO_read_API } from \"./L1/reader\";\r\nimport { NCO_tx_API } from \"./L1/transfers\";\r\nimport { NCO_utils_API } from \"./utils\";\r\n\r\nimport fetch from 'cross-fetch';\r\n\r\n//@ts-ignore\r\nimport {\r\n  NCKeyPair, \r\n  NCCreateUser, NCCreateCollection,\r\n  NCCreatePool, NCStakePool, NCUnstakePool,\r\n  NCStakeMainDao, NCBuyRam,\r\n  NCCreateDao, NCGetDaoWhiteList, \r\n  NCCreateDaoProposal, NCCreateDaoUserWhitelistProposal, NCCreateDaoStakeProposal,\r\n  NCApproveDaoProposal, NCExecuteDaoProposal, NCGetVotes, \r\n  NCGetDaoProposals, NCDaoProposalVote, NCDaoWithdrawVoteDeposit,\r\n  NCCreatePermission, NCGetAccInfo, NCGetPoolInfo, NCLinkPerm,\r\n  NCPoolsInfo, NCNameType, NCSwapNCOtoCC,\r\n  NCReturnTxs, NCReturnInfo, NCTxBal, NCTxNcoBal, NCKeyValPair, NCMintBadge,\r\n} from \"./types\";\r\n\r\nimport {\r\n  NCMintAsset, NCMintNftToRoot, NCMintLink, NCMintFile, NCMintLike, NCChangeFile, NCModifyAsset, NCMintProfile\r\n} from \"./types\";\r\n\r\n// @ts-ignore\r\nimport { default_nft_schema, file_schema, link_schema, profile_schema, like_link_template, badge_link_template } from \"./schemas\"\r\n\r\n\r\nexport {\r\n  NCKeyPair, NCKeyValPair,\r\n  NCCreateUser, NCCreateCollection, NCBuyRam,\r\n  NCCreatePool, NCStakePool, NCUnstakePool,\r\n  NCStakeMainDao, \r\n  NCCreateDao, NCGetDaoWhiteList, NCCreateDaoProposal, NCCreateDaoUserWhitelistProposal, NCCreateDaoStakeProposal,\r\n  NCApproveDaoProposal, NCExecuteDaoProposal, NCGetVotes, NCGetDaoProposals, NCDaoProposalVote, NCDaoWithdrawVoteDeposit,\r\n  NCMintAsset,  NCMintLink, NCMintFile, NCCreatePermission,\r\n  NCGetAccInfo, NCGetPoolInfo, NCLinkPerm,\r\n  NCPoolsInfo, NCNameType,\r\n  NCReturnTxs, NCReturnInfo, NCTxBal, NCTxNcoBal, NCChangeFile, NCModifyAsset, NCMintProfile,\r\n  devnet_services, devnet_urls\r\n};\r\n\r\nexport { default_nft_schema, link_schema, file_schema, profile_schema };\r\n\r\nimport { getClaimNftsActions, getClaimWinBidActions, getCreateAuctionActions, getEditAuctionActions, getEraseAuctionActions, getPlaceBidActions } from \"./neftymarket\";\r\nimport { NCClaimNftsParams, NCClaimWinBidParams, NCCreateAuctionParams, NCEditAuctionParams, NCEraseAuctionParams, NeftyMarketParamsBase, NCPlaceBidParams } from \"./neftymarket/types\";\r\n\r\nimport { NCInit, NCInitUrls, NCInitServices, devnet_urls, devnet_urls_prod, devnet_services } from \"./system\";\r\n\r\n\r\n/**\r\n * The primary tool to interact with [https://newcoin.org](newcoin.org).\r\n * \r\n * This is an early alpha.\r\n * \r\n * See [https://docs.newcoin.org/](https://docs.newcoin.org/) for an overview of the newcoin ecosystem.\r\n */\r\nexport class NCO_BlockchainAPI {\r\n\r\n  \r\n  //@ts-ignore\r\n  private urls: NCInitUrls;\r\n  private services: NCInitServices;\r\n  private debug: boolean = false;\r\n\r\n\r\n  static defaults = {\r\n    devnet_services,\r\n    devnet_urls,\r\n    devnet_urls_prod\r\n  };\r\n\r\n  static dev_init_arg: NCInit = {\r\n    services: this.defaults.devnet_services,\r\n    urls: this.defaults.devnet_urls,\r\n    debug: true,\r\n    is_proxy: false\r\n  }\r\n\r\n  public daos:       NCO_daos_API;\r\n  public pools:      NCO_pools_API;\r\n  public utils:      NCO_utils_API;\r\n  public accounts:   NCO_account_API;\r\n  public assets:     NCO_assets_API;\r\n  public reader:     NCO_read_API;\r\n  public submitter:  NCO_submit_API;\r\n  public txer:       NCO_tx_API;\r\n  \r\n  private sdkGen: sdkActionGen;\r\n\r\n  /**\r\n   * Init the api\r\n   * @name newcoin-api\r\n   * @param urls\r\n   * @param services \r\n   * @returns a Newcoin API instance\r\n   */\r\n  constructor( n: NCInit )\r\n  {\r\n    //super();\r\n    this.debug      = n.debug;\r\n    this.urls       = n.urls;\r\n    this.services   = n.services;\r\n\r\n    this.submitter  = new NCO_submit_API(n);\r\n    this.reader     = new NCO_read_API(n);\r\n\r\n    this.daos       = new NCO_daos_API(n);\r\n    this.pools      = new NCO_pools_API(n);\r\n    this.utils      = new NCO_utils_API(n);\r\n    this.assets     = new NCO_assets_API(n);\r\n    this.accounts   = new NCO_account_API(n);\r\n    this.txer       = new NCO_tx_API(n);\r\n    \r\n    //this.hrpc       = new HJsonRpc(this.urls.hyperion_url, { fetch } as any);\r\n    this.sdkGen     = new sdkActionGen(this.services.eosio_contract, this.services.token_contract);\r\n    \r\n  }\r\n\r\n  async createUser(inpt: NCCreateUser) {\r\n    const rc= this.accounts.createAccount(inpt);\r\n    if((await rc).TxID_createAcc != undefined)\r\n      this.createRootCollection(inpt.newUser, inpt.newacc_pub_active_key);\r\n  }\r\n\r\n  /**\r\n   * Create default collection for the account and schemes\r\n   * @param  name, key\r\n   * @returns Create Collection and template transactions' ids\r\n   */\r\n  async createRootCollection(name: string, key: string) {\r\n\r\n    let res:  NCReturnTxs = {};\r\n    let tres: TransactResult;\r\n\r\n    const collection_name     = this.utils.getRootCollectionName(name);\r\n    const def_schema_name     = this.utils.getRootCollectionNftSchemaName(name);\r\n    const link_sch_name       = this.utils.getRootCollectionLinkSchemaName(name);   \r\n    const profile_schema_name = this.utils.getRootCollectionProfileSchemaName(name); \r\n\r\n    let mkt_fee = 0.05;\r\n    let allow_notify = true;\r\n\r\n    let t = this.sdkGen.createCollection( name, collection_name, [name], [name], mkt_fee, allow_notify );\r\n    if(this.debug) console.log(t);\r\n    if(this.debug) console.log(\"createcol transaction\");\r\n    tres = await this.submitter.SubmitTx([t], [], [key] ) as TransactResult;\r\n    res.TxID_createCol = tres.transaction_id;\r\n    if(this.debug) console.log(tres);\r\n\r\n    // ---- Schemas --- \r\n    if(this.debug) console.log(\"creating default NFT schema for root collection \");\r\n    let t1 = this.sdkGen.createSchema(name, collection_name, def_schema_name, default_nft_schema);\r\n    if(this.debug) console.log(t1);\r\n    if(this.debug) console.log(\"createsch NFT transaction\");\r\n    tres = await this.submitter.SubmitTx([t1],[],[key]) as TransactResult;\r\n    res.TxID_createSch = tres.transaction_id;\r\n    if(this.debug) console.log(tres);\r\n\r\n    if(this.debug) console.log(\"creating profile schema\");\r\n    let t2 = this.sdkGen.createSchema(name,collection_name, profile_schema_name, profile_schema);\r\n    if(this.debug) console.log(t2);\r\n    if(this.debug) console.log(\"createsch profile transaction\");\r\n    tres = await this.submitter.SubmitTx([t2],[],[key]) as TransactResult;\r\n    res.TxID_createSch = tres.transaction_id;\r\n    if(this.debug) console.log(tres);\r\n\r\n    if(this.debug) console.log(\"creating collection link schema\");\r\n    let t3 = this.sdkGen.createSchema(name, collection_name, link_sch_name, link_schema);\r\n    if(this.debug) console.log(t3);\r\n    if(this.debug) console.log(\"createsch collection bind transaction\");\r\n    tres = await this.submitter.SubmitTx([t3],[],[key]) as TransactResult;\r\n    res.TxID_createSch = tres.transaction_id;\r\n    if(this.debug) console.log(tres);\r\n\r\n    if(this.debug) console.log(\"creating like template\");\r\n    let t4 = await this.createLikeTemplate(name, key);\r\n    res.TxID_createTpl = t4.TxID_createTpl;\r\n    res.template_id = t4.template_id;\r\n    if(this.debug) console.log(\"created like template\" );\r\n    // create more templates\r\n    return res;\r\n  }\r\n\r\n  \r\n  /**\r\n   * Bind collection to root collection\r\n   * @param inpt: NCAddCollection\r\n   * @returns Create NFT in the root collection referring to \r\n   */\r\n  /*async mintLinkTemplate(inpt: NCMintLinkTemplate) {\r\n    obj_type\r\n    link_type\r\n  } */\r\n  async createLikeTemplate(name: string, key: string)\r\n  {\r\n    let xferable = false;\r\n    let burnable = true;\r\n    const t = this.sdkGen.createTemplate(\r\n      name, \r\n      this.utils.getRootCollectionName( name ), \r\n      this.utils.getRootCollectionLinkSchemaName( name ), \r\n      xferable, burnable, \r\n      like_link_template\r\n    );\r\n   \r\n    let tres = await this.submitter.SubmitTx([t],[],[key]) ;\r\n    if(this.debug) console.log(tres);\r\n    let rc: NCReturnTxs = {};\r\n    rc.TxID_createTpl = tres.transaction_id;\r\n    rc.template_id = (await this.reader.txToTemplateId(tres.transaction_id)).toString();\r\n    return rc;\r\n\r\n  }\r\n\r\n  async mintLike(inpt: NCMintLike ) {\r\n    // todo if no schema then create it\r\n\r\n    const tId = await this.utils.getLinkSchemaLikeTemplateID(inpt.issuer);\r\n    if (tId == undefined || tId == -1) this.createLikeTemplate(inpt.issuer, inpt.payer_prv_key);\r\n    const value = inpt.value??\"0\";\r\n\r\n    let s : NCMintAsset = {\r\n      creator:  inpt.issuer,\r\n      col_name: this.utils.getRootCollectionName( inpt.issuer ), // root collection\r\n      sch_name: this.utils.getRootCollectionLinkSchemaName(inpt.issuer), // bind schema\r\n      tmpl_id:  tId,\r\n      //this.utils.getLinkSchemaLikeTemplateName(inpt.creator),\r\n      // object: account name\r\n      immutable_data: [   \r\n        {'key': 'subj_name',   'value': ['string', inpt.subj_name]},\r\n        {'key': 'subj_type', 'value': ['string', inpt.subj_type]},   \r\n        {'key': 'prop_val', 'value': ['string', value]} \r\n      ],\r\n      mutable_data: [],\r\n      payer: inpt.payer,\r\n      payer_prv_key: inpt.payer_prv_key\r\n    };\r\n    let resp = await this.assets.mintAsset(s);      \r\n    return resp;\r\n  }\r\n\r\n  async createBadgeTemplate(name: string, key: string, col?: string, sch?: string)\r\n  {\r\n    let xferable = true; // badges can be transferrable for collateral, burnability etc\r\n    let burnable = true;\r\n    const t = this.sdkGen.createTemplate(\r\n      name, \r\n      col ?? this.utils.getRootCollectionName( name ), \r\n      sch ?? this.utils.getRootCollectionLinkSchemaName( name ), \r\n      xferable, burnable, \r\n      badge_link_template\r\n    );\r\n   \r\n    let tres = await this.submitter.SubmitTx([t],[],[key]) ;\r\n    \r\n    if(this.debug) console.log(\"creating badge template result:\");\r\n    if(this.debug) console.log(tres);\r\n\r\n    let rc: NCReturnTxs = {};\r\n    rc.TxID_createTpl = tres.transaction_id;\r\n    rc.template_id = (await this.reader.txToTemplateId(tres.transaction_id)).toString();\r\n    return rc;\r\n\r\n  }\r\n\r\n  async mintBadge(inpt: NCMintBadge ) {\r\n  // todo if no schema then create it\r\n\r\n  const tId = await this.utils.getLinkSchemaBadgeTemplateID(inpt.issuer);\r\n  if (tId == undefined || tId == -1) this.createBadgeTemplate(inpt.issuer, inpt.payer_prv_key);\r\n\r\n  let s : NCMintAsset = {\r\n    creator:  inpt.issuer,\r\n    col_name: inpt.col_name ?? this.utils.getRootCollectionName( inpt.issuer ), // root collection\r\n    sch_name: this.utils.getRootCollectionLinkSchemaName(inpt.issuer), // bind schema\r\n    tmpl_id:  tId,\r\n    //this.utils.getLinkSchemaLikeTemplateName(inpt.creator),\r\n    // object: account name\r\n    immutable_data: [   \r\n      {'key': 'name',      'value': ['string', inpt.badge_name]},\r\n      {'key': 'subj_name',    'value': ['string', inpt.subj_name]},   \r\n      {'key': 'prop_val',  'value': ['string', inpt.weight??\"0\"]} \r\n    ],\r\n    mutable_data: [],\r\n    payer: inpt.payer,\r\n    payer_prv_key: inpt.payer_prv_key\r\n  };\r\n  let resp = await this.assets.mintAsset(s);      \r\n  return resp;\r\n  }\r\n\r\n  // @ts-ignore\r\n  static private const STATUS_LIST = {\r\n    semantic: \"semantic\",\r\n    imported: \"imported\",\r\n    invited: \"invited\",\r\n    preregistered: \"preregistered\",\r\n    registered: \"registered\",\r\n    admitted: \"admitted\",\r\n    known: \"known\",\r\n    offer: \"offer\"\r\n    // \"subscriber\"\r\n  };\r\n\r\n  async mintProfile(inpt: NCMintProfile) {\r\n\r\n      let col_name = this.utils.getRootCollectionName(inpt.creator);\r\n      let sch_name = this.utils.getRootCollectionProfileSchemaName(inpt.creator);\r\n      let tmpl_id = -1;\r\n      let immutable_data : NCKeyValPair[] = [];\r\n      let mutable_data   : NCKeyValPair[] = [\r\n        { key: \"status\", 'value': ['string',      inpt.status]},\r\n        { key: \"offer\", 'value': ['string',       inpt.offer ]},\r\n\r\n        { key: \"displayName\", 'value': ['string', inpt.displayName ]},\r\n        { key: \"bio\",         'value': ['string', inpt.bio??\"\" ]},\r\n\r\n        { key: \"fullName\", 'value': ['string', inpt.fullName ]},\r\n        { key: \"firstName\",'value': ['string', inpt.firstName ]},\r\n        { key: \"lastName\", 'value': ['string', inpt.lastName??\"\" ]},\r\n        { key: \"username\", 'value': ['string', inpt.username??\"\" ]},\r\n        { key: \"email\",    'value': ['string', inpt.email??\"\"    ]},\r\n        { key: \"phone\",    'value': ['string', inpt.phone??\"\"    ]},\r\n\r\n      // avatar \r\n        { key: \"contentType\",     'value': ['string', inpt.contentType     ]},\r\n        { key: \"contentUrl\",      'value': ['string', inpt.contentUrl      ]},\r\n        { key: \"coverContentUrl\", 'value': ['string', inpt.coverContentUrl ]},\r\n        { key: \"blurHash\",        'value': ['string', inpt.blurHash    ]},\r\n        { key: \"aspectRatio\",     'value': ['string', inpt.aspectRatio ]},\r\n      ];\r\n      \r\n      let n : NCMintAsset = {\r\n        creator: inpt.creator,\r\n        payer: inpt.payer,\r\n        immutable_data: immutable_data,\r\n        mutable_data: mutable_data,\r\n        col_name: col_name,\r\n        sch_name: sch_name,\r\n        tmpl_id: tmpl_id,\r\n        payer_prv_key: inpt.payer_prv_key ,\r\n        user_prv_active_key: inpt.user_prv_active_key\r\n      } \r\n      let resp = await this.assets.mintAsset(n);  \r\n      resp.TxID_mintProfile =  resp.TxID_mintAsset;\r\n      return resp;\r\n\r\n  } \r\n   /**\r\n   * Create File\r\n   * @param inpt: NCMintFile\r\n   * @returns Create file transaction id\r\n   */\r\n  async createFile(inpt: NCMintFile) {\r\n\r\n      let col_name = this.utils.getFileCollectionName(inpt.creator);\r\n      let sch_name = this.utils.getFileCollectionFileSchemaName(inpt.creator);\r\n      let tmpl_id = -1;\r\n      let immutable_data : any[] = [ ];\r\n      let mutable_data = [\r\n        {'key': 'name', 'value': ['string', inpt.name]},\r\n        {'key': 'path','value': ['string', inpt.path]}, \r\n        {'key': 'content','value': ['string',  inpt.content]},\r\n        {'key': 'image','value': ['string',  inpt.image??\"emptystring\" ]}\r\n      ];\r\n      debugger;\r\n      let n : NCMintAsset = {\r\n        creator: inpt.creator,\r\n        payer: inpt.payer,\r\n        immutable_data: immutable_data,\r\n        mutable_data: mutable_data,\r\n        col_name: col_name,\r\n        sch_name: sch_name,\r\n        tmpl_id: tmpl_id,\r\n        payer_prv_key: inpt.payer_prv_key ,\r\n        user_prv_active_key: inpt.user_prv_active_key\r\n      } \r\n\r\n      try { \r\n        let mint_res  = await this.assets.mintAsset(n) ;\r\n        mint_res.TxID_mintFile = mint_res.TxID_mintAsset;\r\n        console.log(\"minted file: \");\r\n        console.log(mint_res); \r\n        return mint_res;\r\n\r\n      } catch(e) {\r\n        let err_no_col = \"assertion failure with message: No collection with this name exists\";\r\n        let err = (e as Error).message;\r\n        console.log(\"Error message:  \" + err);\r\n        if (err != err_no_col) throw e;\r\n\r\n        let nco_struct : NCCreateCollection = {\r\n            user: inpt.creator, \r\n            collection_name: col_name,\r\n            schema_name: sch_name,\r\n            schema_fields: file_schema,\r\n            template_name: \"-1\",\r\n            template_fields: [], \r\n            user_prv_active_key: inpt.user_prv_active_key,\r\n            allow_notify: true,\r\n            mkt_fee    : 0.00,\r\n            xferable   : false,\r\n            burnable   : false, // undeletable from ceramic\r\n            max_supply : 0xffffff\r\n        };\r\n\r\n        let res = await this.assets.createCollection(nco_struct);\r\n        //let res = await this.createFileCollection(inpt.name, inpt.user_prv_active_key);\r\n        \r\n        if(this.debug) console.log(\"createcollection of files result: \")\r\n        if(this.debug) console.log(res);\r\n        \r\n\r\n        try { \r\n          let mint_res  = await this.assets.mintAsset(n) ;\r\n          mint_res.TxID_mintFile = mint_res.TxID_mintAsset;\r\n          console.log(\"minted file \");\r\n          return mint_res;\r\n        } catch(e) {\r\n          let err = (e as Error).message;\r\n          console.log(\"Second Minting error message:  \" + err);\r\n\r\n          throw e;\r\n        }\r\n      }; \r\n  }\r\n\r\n  async changeFile(inpt: NCChangeFile) \r\n    {\r\n      const old = await this.reader.readAsset(inpt.asset_id);\r\n      console.log(\"changing file : ... \" + JSON.stringify(old.mutable_data));\r\n      let data = [\r\n        {'key': 'name', 'value': ['string', inpt.new_name ?? old.mutable_data.name]},\r\n        {'key': 'path','value': ['string', inpt.new_path?? old.mutable_data.path]}, \r\n        {'key': 'content','value': ['string',  inpt.new_content?? old.mutable_data.content]},\r\n        {'key': 'image','value': ['string',  inpt.new_image??old.mutable_data.image ]}\r\n    ];\r\n\r\n      let n : NCModifyAsset = {\r\n        editor: inpt.editor,\r\n        owner: inpt.editor,\r\n        asset_id: inpt.asset_id,\r\n        new_data: data,\r\n        payer: inpt.payer??inpt.editor,\r\n        payer_prv_key: inpt.payer_prv_key\r\n\r\n      };\r\n      let res = await this.assets.modifyAsset(n);\r\n      res.TxID_changeFile=res.TxID_modifyAsset;\r\n      res.asset_id = inpt.asset_id;\r\n      console.log(\"modify asset res: \"+ JSON.stringify(res));\r\n      return res;\r\n  }\r\n\r\n  /** \r\n   * \r\n   */\r\n  async mintNftToRoot(inpt: NCMintNftToRoot) {\r\n    let s : NCMintAsset = {\r\n      creator:  inpt.creator,\r\n      col_name: this.utils.getRootCollectionName( inpt.creator ), // root collection\r\n      sch_name: this.utils.getRootCollectionNftSchemaName(inpt.creator), // bind schema\r\n      tmpl_id: -1,\r\n      immutable_data: inpt.immutable_data,\r\n      mutable_data: inpt.mutable_data,\r\n      payer: inpt.payer,\r\n      payer_prv_key: inpt.payer_prv_key\r\n    }\r\n\r\n    try { \r\n      let mint_res  = await this.assets.mintAsset(s) ;\r\n      mint_res.TxID_mintNft = mint_res.TxID_mintAsset;\r\n      if (this.debug) { console.log(\"minted file: \"); console.log(mint_res); }\r\n      return mint_res;\r\n    } catch(e) {\r\n      let err_no_col = \"assertion failure with message: No collection with this name exists\";\r\n      let err = (e as Error).message;\r\n      console.log(\"Error message:  \" + err);\r\n      if (err != err_no_col) throw e;\r\n\r\n      let res = await this.createRootCollection(inpt.creator, inpt.payer_prv_key)\r\n      if(this.debug) { console.log(\"createcollection of root result: \"); console.log(res); }\r\n\r\n      try { \r\n        let mint_res  = await this.assets.mintAsset(s) ;\r\n        mint_res.TxID_mintNft = mint_res.TxID_mintAsset;\r\n        console.log(\"minted NFT to root \");\r\n        return mint_res;\r\n      } catch(e) {\r\n        let err = (e as Error).message;\r\n        console.log(\"Second Minting error message:  \" + err);\r\n        throw e;\r\n      }\r\n    };\r\n\r\n  }\r\n\r\n  async swapNcoToCreatorCoin( inpt: NCSwapNCOtoCC ) { \r\n    console.log(\"trying to swap to GNCO :  \" + inpt.amt);\r\n    this.debug = true;\r\n\r\n    let n: NCStakeMainDao = { \r\n      amt: inpt.amt, \r\n      payer: inpt.payer,\r\n      payer_prv_key: inpt.payer_prv_key\r\n    };\r\n\r\n    let resp1  = await this.pools.stakeMainDAO(n) as NCReturnTxs;\r\n    if(this.debug) console.log(resp1);\r\n    //@ts-ignore\r\n    let gnco_amt= resp1.tx.processed.action_traces[0].inline_traces[3].act.data.quantity ;\r\n    \r\n    //@ts-ignore\r\n    /*let t = resp.tx.processed.action_traces[0].inline_traces ? resp.tx.processed.action_traces[0].inline_traces : [];\r\n    console.log(t[0]?t[0]:\"undef\");console.log(\"*\");\r\n    console.log(t[1]?t[1]:\"undef\");console.log(\"*\");\r\n    console.log(t[2]?t[2]:\"undef\");console.log(\"*\");\r\n    console.log(t[3]?t[3]:\"undef\");console.log(\"*\");*/\r\n    \r\n    // get how much GNCO was received\r\n    console.log(\"trying to swap to CC :  \" + gnco_amt);\r\n    let m: NCStakePool = { \r\n      owner: inpt.creator_to, \r\n      amt:  gnco_amt, \r\n      payer: inpt.payer,//'io',  \r\n      payer_prv_key: inpt.payer_prv_key\r\n    };      \r\n     \r\n    let resp2 = await this.pools.stakePool(m);\r\n    if(this.debug) console.log(resp2);\r\n    \r\n    return resp2;\r\n  }\r\n  \r\n  /**\r\n * Get pool info\r\n * @param \r\n * @returns Tx data\r\n */\r\n  async getPoolInfo(payload: NCGetPoolInfo) {\r\n    const api = new PoolsRpcApi(\"https://nodeos-dev.newcoin.org\", \"pools2.nco\", fetch); // TODO\r\n\r\n    try {\r\n      const fn = payload.code ? \"getPoolByCode\" : \"getPoolByOwner\";\r\n      let q = await api[fn](payload);\r\n      let t = await q.json() as NCPoolsInfo;\r\n      return t;\r\n\r\n    } catch (e) {\r\n      if(this.debug) console.log('\\nCaught exception: ' + e);\r\n\r\n      if (e instanceof RpcError)\r\n        if(this.debug) console.log(JSON.stringify(e.json, null, 2));\r\n    }\r\n\r\n    return {} as NCPoolsInfo;\r\n    ``\r\n  }\r\n  \r\n  // AUX functions\r\n\r\n  // Neftymarket\r\n  private getActionParams<T>(params: T): NeftyMarketParamsBase & T {\r\n    return {\r\n      atomicassetsContract: this.services.atomicassets_contract,\r\n      neftymarketContract: this.services.neftymarket_contract,\r\n      ...params,\r\n    };\r\n  }\r\n\r\n  private async submitAuctionTx(actions: EosioActionObject[], payer_prv_key: string): Promise<NCReturnTxs> {\r\n    const response = await this.submitter.SubmitTx(\r\n      actions, \r\n      [], \r\n      [payer_prv_key]\r\n    ) as TransactResult;\r\n    return {\r\n      TxID: response.transaction_id,\r\n    };\r\n  }\r\n\r\n  // Nefty market actions\r\n  /**\r\n   * Create a new auction with the specified parameters\r\n   * @returns create auction transaction id\r\n   */\r\n  async createAuction(params: NCCreateAuctionParams, key: string) {\r\n    const actions = getCreateAuctionActions(this.getActionParams(params));\r\n    return this.submitAuctionTx(actions, key);\r\n  }\r\n\r\n  /**\r\n   * Place a new bid into an active auction\r\n   * @returns bid transaction id\r\n   */\r\n  async placeAuctionBid(params: NCPlaceBidParams, key: string) {\r\n    const actions = getPlaceBidActions(this.getActionParams(params));\r\n    return this.submitAuctionTx(actions, key);\r\n  }\r\n  \r\n  /**\r\n   * Claim NFTs whenever you win an auction\r\n   * @returns claim transaction id\r\n   */\r\n  async claimNftsFromAuction(params: NCClaimNftsParams, key: string) {\r\n    const actions = getClaimNftsActions(this.getActionParams(params));\r\n    return this.submitAuctionTx(actions, key);\r\n  }\r\n\r\n  /**\r\n   * Claim the winning bid as the seller of an auction\r\n   * @returns claim transaction id\r\n   */\r\n  async claimAuctionWinBid(params: NCClaimWinBidParams, key: string) {\r\n    const actions = getClaimWinBidActions(this.getActionParams(params));\r\n    return this.submitAuctionTx(actions, key);\r\n  }\r\n\r\n  /**\r\n   * Erase an auction as long as it has no bids\r\n   * @returns delete transaction id\r\n   */\r\n  async eraseAuction(params: NCEraseAuctionParams, key: string) {\r\n    const actions = getEraseAuctionActions(this.getActionParams(params));\r\n    return this.submitAuctionTx(actions, key);\r\n  }\r\n\r\n  /**\r\n   * Edit an auction with the specified parameters, internally it erases the existing one\r\n   * and creates a new one with the specified parameters.\r\n   * @returns transaction id\r\n   */\r\n  async editAuction(params: NCEditAuctionParams, key: string ) {\r\n    const actions = getEditAuctionActions(this.getActionParams(params));\r\n    return this.submitAuctionTx(actions, key);\r\n  }\r\n\r\n \r\n async createKeyPair() { return this.accounts.createKeyPair(); }\r\n async createAccount(inpt: NCCreateUser) { return this.accounts.createAccount(inpt); }\r\n async buyRam(inpt: NCBuyRam) { return this.accounts.buyRam(inpt) }; \r\n async createPermission(inpt: NCCreatePermission) { return this.accounts.createPermission(inpt); }\r\n async linkPermission(inpt: NCLinkPerm ) { return this.accounts.linkPermission(inpt); }\r\n\r\n async createCollection(inpt: NCCreateCollection) { return this.assets.createCollection(inpt);}\r\n async mintAsset(inpt: NCMintAsset) { return this.assets.mintAsset(inpt); }\r\n async modifyAsset(inpt: NCModifyAsset) { return this.assets.modifyAsset(inpt); }\r\n\r\n// to be deprecated\r\n async stakeMainDAO(inpt: NCStakeMainDao) { return this.pools.stakeMainDAO(inpt); }\r\n async instUnstakeMainDAO(inpt: NCStakeMainDao) { return this.pools.stakeMainDAO(inpt); }\r\n async dldUnstakeMainDAO(inpt: NCStakeMainDao) { return this.pools.dldUnstakeMainDAO(inpt); }\r\n \r\n async createPool(inpt: NCCreatePool) { return this.pools.createPool(inpt); }\r\n async stakePool(inpt: NCStakePool) { return this.pools.stakePool(inpt); } \r\n async unstakePool(inpt: NCUnstakePool) { return this.pools.unstakePool(inpt); }\r\n \r\n async createDao(inpt: NCCreateDao) { return this.daos.createDao(inpt);}\r\n async createDaoProposal(inpt: NCCreateDaoProposal) { return this.daos.createDaoProposal(inpt); }\r\n async createDaoUserWhitelistProposal(inpt: NCCreateDaoUserWhitelistProposal) { return this.daos.createDaoUserWhitelistProposal(inpt); }\r\n async createDaoStakeProposal(inpt: NCCreateDaoStakeProposal) { return this.daos.createDaoStakeProposal(inpt); }\r\n\r\n async approveDaoProposal(inpt: NCApproveDaoProposal) { return this.daos.approveDaoProposal(inpt); }\r\n async approveDaoWhitelistProposal(inpt: NCApproveDaoProposal) { return this.daos.approveDaoWhitelistProposal(inpt); }\r\n async approveDaoStakeProposal(inpt: NCApproveDaoProposal) { return this.daos.approveDaoStakeProposal(inpt); }\r\n \r\n async executeDaoProposal(inpt: NCExecuteDaoProposal) { return this.daos.executeDaoProposal(inpt); }\r\n async executeDaoWhitelistProposal(inpt: NCExecuteDaoProposal) { return this.daos.executeDaoWhitelistProposal(inpt); }\r\n async executeDaoStakeProposal(inpt: NCExecuteDaoProposal) { return this.daos.executeDaoStakeProposal(inpt);}\r\n\r\n async voteOnProposal(inpt: NCDaoProposalVote) { return this.daos.voteOnProposal(inpt) };\r\n async withdrawVoteDeposit(inpt: NCDaoWithdrawVoteDeposit) { return this.daos.withdrawVoteDeposit(inpt); }\r\n\r\n async submitTx(actions: any[], public_keys: string[], private_keys: string[] ) {   return this.submitter.SubmitTx(actions,public_keys, private_keys); }\r\n\r\n async txNCOBalance(inpt: NCTxBal) { return this.txer.txNCOBalance(inpt); }\r\n async txGNCOBalance(inpt: NCTxBal) { return this.txer.txGNCOBalance(inpt); }\r\n async getAccountBalance(inpt: NCGetAccInfo) {return this.txer.getAccountBalance(inpt); }\r\n\r\n async normmalizeUserName(name: string, r: string) { return this.utils.normalizeUsername(name, r); }\r\n\r\n}\r\n"],"names":["ecc","fetch","sdkActionGen","DaosChainApi","DaosAG","MainDAOActionGenerator","PoolsRpcApi","PoolsActionGenerator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAA,eAAA,kBAAA,YAAA;IACI,SAAqB,eAAA,CAAA,QAAgB,EAAW,cAAsB,EAAA;QAAjD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;QAAW,IAAc,CAAA,cAAA,GAAd,cAAc,CAAQ;QAEtE,IAAU,CAAA,UAAA,GAAG,UACX,QAAgB,EAChB,KAAa,EACb,wBAAgC,EAChC,uBAA+B,EAC5B,EAAA,QACH;AACE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,aAAa,EAAE,CAAC;AACd,oBAAA,KAAK,EAAE,KAAK;AACZ,oBAAA,UAAU,EAAE,QAAQ;iBACrB,CAAC;AACF,YAAA,IAAI,EAAE;AACJ,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE;AACL,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACL,4BAAA,GAAG,EAAE,uBAAuB;AAC5B,4BAAA,MAAM,EAAE,CAAC;yBACV,CAAC;AACF,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC;AACL,4BAAA,GAAG,EAAE,wBAAwB;AAC7B,4BAAA,MAAM,EAAE,CAAC;yBACV,CAAC;AACF,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,KAAK,EAAE,EAAE;AACV,iBAAA;AACF,aAAA;SACF,EAAC,EAAA,CAAC;AAEL,QAAA,IAAA,CAAA,WAAW,GAAG,UACZ,QAAgB,EAChB,KAAoB,EACpB,GAAkB,EAAA;AADlB,YAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAAoB,GAAA,IAAA,CAAA,EAAA;AACpB,YAAA,IAAA,GAAA,KAAA,KAAA,CAAA,EAAA,EAAA,GAAkB,GAAA,IAAA,CAAA,EAAA;AACf,YAAA,QAAC;AACJ,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC;AACtD,gBAAA,IAAI,EAAE;AACJ,oBAAA,KAAK,EAAE,KAAK;AACZ,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,KAAK,EAAE,GAAG;AACX,iBAAA;aACF,EAAC;AATG,SASH,CAAC;QAEH,IAAU,CAAA,UAAA,GAAG,UACX,QAAgB,EAChB,KAAoB,EACpB,UAAmC,EACnC,UAAmC,EACnC,KAAqB,EAAA;AAHrB,YAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAAoB,GAAA,IAAA,CAAA,EAAA;AACpB,YAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAmC,GAAA,cAAA,CAAA,EAAA;AACnC,YAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAmC,GAAA,cAAA,CAAA,EAAA;AACnC,YAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAAqB,GAAA,IAAA,CAAA,EAAA;AAEvB,YAAA,QAAC;AACC,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,aAAa,EAAE,CAAC;AACd,wBAAA,KAAK,EAAE,KAAK;AACZ,wBAAA,UAAU,EAAE,QAAQ;qBACrB,CAAC;AACF,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,kBAAkB,EAAE,UAAU;AAC9B,oBAAA,kBAAkB,EAAE,UAAU;AAC9B,oBAAA,QAAQ,EAAE,KAAK;AAChB,iBAAA;aACF,EAAC;AAdF,SAcE,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AAEH,QAAA,IAAA,CAAA,gBAAgB,GAAG,UACjB,MAAc,EACd,eAAuB,EACvB,mBAA6B,EAC7B,eAA8B,EAC9B,UAAkB,EAClB,YAAqB,EAAA;AAFrB,YAAA,IAAA,eAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAA8B,GAAA,EAAA,CAAA,EAAA;AAI9B,YAAA,IAAM,MAAM,GAAQ;AAClB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE;AACJ,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,eAAe,EAAE,eAAe;AAChC,oBAAA,YAAY,EAAE,YAAY;AAC1B,oBAAA,mBAAmB,EAAE,mBAAmB;AACxC,oBAAA,eAAe,EAAE,eAAe;AAChC,oBAAA,UAAU,EAAE,UAAU;AACtB,oBAAA,IAAI,EAAE,EAAE;AACT,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxC,iBAAA;aACF,CAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;AACH;;;;;;;;;;;;;;;;;AAiBE;QACA,IAAY,CAAA,YAAA,GAAG,UACb,MAAc,EACd,eAAuB,EACvB,WAAmB,EACnB,GAAiB,EAAA;AAEjB,YAAA,IAAM,MAAM,GAAQ;AAClB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,IAAI,EAAE;AACJ,oBAAA,kBAAkB,EAAE,MAAM;AAC1B,oBAAA,eAAe,EAAE,eAAe;AAChC,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,aAAa,EAAE,GAAG;AACnB,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxC,iBAAA;aACF,CAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,cAAc,GAAG,UACf,MAAc,EACd,eAAuB,EACvB,WAAmB,EACnB,QAAiB,EACjB,QAAiB,EACjB,eAAsB,EAAA;AAEtB,YAAA,IAAM,MAAM,GAAQ;AAClB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,IAAI,EAAE;AACJ,oBAAA,kBAAkB,EAAE,MAAM;AAC1B,oBAAA,eAAe,EAAE,eAAe;AAChC,oBAAA,WAAW,EAAE,WAAW;AACxB,oBAAA,YAAY,EAAE,QAAQ;AACtB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,UAAU,EAAE,QAAQ;oBACpB,cAAc,EAAE,eAAe;AAChC,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxC,iBAAA;aACF,CAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,gBAAgB,GAAG,UACjB,MAAc,EACd,SAAiB,EACjB,QAAgB,EAAA;AAGd,YAAA,IAAM,oBAAoB,GAAG;AAC3B,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;gBAC9E,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACpC,gBAAA,KAAK,EAAE,EAAE;aACV,CAAC;AAEF,YAAA,IAAM,gBAAgB,GAAG;AACvB,gBAAA,OAAO,EAAE,MAAM;AACf,gBAAA,UAAU,EAAE,SAAS;AACrB,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,IAAI,EAAE,oBAAoB;aAC3B,CAAC;AAEF,YAAA,IAAM,MAAM,GAAG;AACb,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAC;AACvC,iBAAA;aACJ,CAAA;AAED,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;AAGD,QAAA,IAAA,CAAA,SAAS,GAAG,UACV,KAAa,EACb,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACf,cAAqB,EACrB,YAAmB,EACnB,MAAe,EAAA;AAEf,YAAA,IAAM,MAAM,GAAQ;AAClB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,IAAI,EAAE;oBACJ,iBAAiB,EAAE,MAAM,IAAI,KAAK;AAClC,oBAAA,eAAe,EAAE,KAAK;AACtB,oBAAA,eAAe,EAAE,QAAQ;AACzB,oBAAA,WAAW,EAAE,QAAQ;AACrB,oBAAA,WAAW,EAAE,OAAO;;AAEpB,oBAAA,cAAc,EAAE,cAAc;AAC9B,oBAAA,YAAY,EAAE,YAAY;oBAC1B,cAAc,EAAE,EAAE;AACnB,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxC,iBAAA;aACF,CAAC;AACF,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;QAED,IAAW,CAAA,WAAA,GAAG,UACZ,MAAe,EACf,KAAa,EACb,QAAgB,EAChB,gBAAuB,EAAA;AAEvB,YAAA,IAAM,MAAM,GAAQ;AAClB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,IAAI,EAAE,cAAc;AACpB,gBAAA,IAAI,EAAE;AACJ,oBAAA,iBAAiB,EAAE,MAAM;AACzB,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,gBAAgB,EAAE,gBAAgB;AACnC,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACxC,iBAAA;aACF,CAAC;AACF,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;AAED,QAAA,IAAA,CAAA,UAAU,GAAG,UACX,OAAe,EACf,MAAc,EACd,aAAsB,EACtB,aAAsB,EACtB,WAAoB,EACpB,KAAa,EAAA;AAEb,YAAA,IAAM,MAAM,GAAG;AACb,gBAAA,OAAO,EAAE,YAAY;AACrB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,IAAI,EAAE;AACJ,oBAAA,KAAK,EAAE,OAAO;AACd,oBAAA,MAAM,EAAE,MAAM;AACd,oBAAA,WAAW,EAAE,KAAK;AAClB,oBAAA,aAAa,EAAE,aAAa;AAC5B,oBAAA,aAAa,EAAE,aAAa;AAC5B,oBAAA,WAAW,EAAE,WAAW;AACzB,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAC;AACxC,iBAAA;aACF,CAAC;AAEF,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;QAGD,IAAY,CAAA,YAAA,GAAG,UACb,IAAY,EACZ,EAAU,EACV,GAAW,EACX,IAAY,EAAA;AAEZ,YAAA,IAAM,MAAM,GAAG;AACb,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,QAAQ,EAAE,GAAG;oBACb,IAAI,EAAE,IAAI;AACX,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;AAC1C,iBAAA;aACF,CAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;QACD,IAAS,CAAA,SAAA,GAAG,UACV,QAAgB,EAChB,IAAY,EACZ,EAAU,EACV,GAAW,EACX,IAAY,EAAA;AAEZ,YAAA,IAAM,MAAM,GAAG;AACb,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,IAAI,EAAE;AACJ,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,QAAQ,EAAE,GAAG;oBACb,IAAI,EAAE,IAAI;AACX,iBAAA;AACD,gBAAA,aAAa,EAAE;AACb,oBAAA,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE;AAC1C,iBAAA;aACF,CAAA;AACD,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAA;KAhWyE;IAkWhE,eAAK,CAAA,SAAA,CAAA,KAAA,GAAf,UACI,OAAe,EACf,aAAyC,EACzC,IAAY,EACZ,IAAS,EAAA;AAET,QAAA,OAAO,CAAC,EAAE,OAAO,EAAA,OAAA,EAAE,IAAI,EAAA,IAAA,EAAE,aAAa,eAAA,EAAE,IAAI,EAAA,IAAA,EAAE,CAAC,CAAC;KACnD,CAAA;IACL,OAAC,eAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AC9WD,IAAMA,KAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAIzC,IAAA,cAAA,kBAAA,YAAA;AASI,IAAA,SAAA,cAAA,CAAa,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAAC,OAAA,EAAE,CAAC,CAAC;KAClE;AAEK,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAd,UACI,OAAc,EACd,WAAqB;IACrB,YAAsB,EAAA;;;gBAGpB,IAAG,IAAI,CAAC,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAA,OAAA,EAAE,WAAW,EAAA,WAAA,EAAE,YAAY,EAAA,YAAA,EAAE,CAAC,CAAC,CAAC;gBAC/G,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,GAAG,gBAAgB,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;;;AACtG,KAAA,CAAA;AAGK,IAAA,cAAA,CAAA,SAAA,CAAA,aAAa,GAAnB,UACE,OAAc,EACd,WAAqB;IACrB,YAAsB,EAAA;;;;;;AAEd,wBAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AAC1B,4BAAA,OAAO,EAAA,OAAA;AACP,4BAAA,WAAW,EAAA,WAAA;AACX,4BAAA,YAAY,EAAA,YAAA;AACb,yBAAA,CAAC,CAAC;;;;AAIS,wBAAA,OAAA,CAAA,CAAA,YAAMA,OAAK,CACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAClD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,kBAAW,YAAY,CAAC,CAAC,CAAC,CAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAA,CAAA;;AAF3H,wBAAA,CAAC,GAAG,EAEuH,CAAA,IAAA,EAAA,CAAA;AAErH,wBAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;AAApB,wBAAA,GAAG,GAAG,EAAc,CAAA,IAAA,EAAA,CAAA;AAE1B,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;;;AAEvB,wBAAA,OAAO,CAAC,GAAG,CAAE,GAAS,CAAC,OAAO,CAAC,CAAA;AAC/B,wBAAA,MAAM,GAAC,CAAC;;;;;AAEb,KAAA,CAAA;AAGK,IAAA,cAAA,CAAA,SAAA,CAAA,cAAc,GAApB,UACE,OAAc,EACd,WAAqB;IACrB,YAAsB,EAAA;;;;;;;;AAKtB,wBAAA,YAAY,GAAG,YAAY,YAAY,KAAK,GAAG,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC;AAC7E,wBAAA,SAAS;AACT,wBAAA,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,UAAA,CAAC,EAAI,EAAA,OAAAD,KAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAtB,EAAsB,CAAC,CAAC;AAC5D,wBAAA,SAAS;AAGH,wBAAA,iBAAiB,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;AAChE,wBAAA,iBAAiB,CAAC,aAAa,GAAG,WAAW,CAAC;AAGxC,wBAAA,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;AACtB,wBAAA,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,GAAG,EAAA,GAAA,EAAE,iBAAiB,EAAA,iBAAA,EAAE,CAAC,CAAC;AAEnC,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,QAAQ,EAAE,CAAA,CAAA;;AAA3B,wBAAA,IAAI,GAAG,EAAoB,CAAA,IAAA,EAAA,CAAA;wBACX,OAAM,CAAA,CAAA,YAAA,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA,CAAA;;AAArE,wBAAA,aAAa,GAAG,EAAqD,CAAA,IAAA,EAAA,CAAA;wBACrE,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,iBAAiB,EAAE,CAAC;AAC7D,wBAAA,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvH,wBAAA,cAAc,GACpB;AACE,4BAAA,OAAO,EAAE,OAAO;AAChB,4BAAA,UAAU,EAAE,CAAC;4BACb,gBAAgB,EAAE,aAAa,CAAC,gBAAgB;AAChD,4BAAA,aAAa,EAAE,aAAa,CAAC,SAAS,GAAG,MAAM;yBAChD,CAAC;wBAIQ,OAAM,CAAA,CAAA,YAAA,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA,CAAA;;AAAtD,wBAAA,CAAC,GAAG,EAAkD,CAAA,IAAA,EAAA,CAAA;AACtD,wBAAA,WAAW,yBAAQ,cAAc,CAAA,EAAA,EAAE,OAAO,EAAE,CAAC,GAAE,CAAC;AAChD,wBAAA,qBAAqB,GAAG,GAAG,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;AAE9C,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAA,CAAA;;AAA9D,wBAAA,aAAa,GAAG,EAA8C,CAAA,IAAA,EAAA,CAAA;AAC/C,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC,EAAE,WAAW,EAAA,WAAA,EAAE,aAAa,EAAA,aAAA,EAAE,CAAC,CAAA,CAAA;;AAA1F,wBAAA,YAAY,GAAG,EAA2E,CAAA,IAAA,EAAA,CAAA;AACnF,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAA,CAAA;;AAAhD,wBAAA,IAAI,GAAG,EAAyC,CAAA,IAAA,EAAA,CAAA;AAGlD,wBAAA,EAAE,GAAG;4BACP,OAAO,EAAE,IAAI,CAAC,QAAQ;AACtB,4BAAA,YAAY,EAAE,YAAY;AAC1B,4BAAA,qBAAqB,EAAE,qBAAqB;AAC5C,4BAAA,yBAAyB,EAAE,SAAS;AACpC,4BAAA,IAAI,EAAE,IAAI;yBACX,CAAC;wBAE+C,OAAM,CAAA,CAAA,YAAA,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,CAAA;;AAA/E,wBAAA,mBAAmB,GAAwB,EAAoC,CAAA,IAAA,EAAA,CAAA;;AAErF,wBAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAA;;;;AACvD,KAAA,CAAA;IAGP,OAAC,cAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AC5HO,IAAA,WAAW,GAAK,OAAO,CAAC,cAAc,CAAC,YAA5B,CAA6B;AAChD,IAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAGrC,IAAA,YAAA,kBAAA,YAAA;AAKE,IAAA,SAAA,YAAA,CAAa,IAAY,EAAA;QAAzB,IAGC,KAAA,GAAA,IAAA,CAAA;;QAGD,IAAM,CAAA,MAAA,GAAG,UAAO,IAAY,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;wBACpB,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,iCAAkC,CAAA,MAAA,CAAA,IAAI,CAAE,CAAC;AACxD,wBAAA,OAAA,CAAA,CAAA,YAAM,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA;;AAAvB,wBAAA,GAAG,GAAG,EAAiB,CAAA,IAAA,EAAA,CAAA;AAChB,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAvB,wBAAA,IAAI,GAAG,EAAgB,CAAA,IAAA,EAAA,CAAA;AAC7B,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAc,CAAC,CAAA;;;aACvB,CAAA;;QAGD,IAAS,CAAA,SAAA,GAAG,UAAO,QAAgB,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;AAC3B,wBAAA,GAAG,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAAA;;AAApC,wBAAA,KAAK,GAAG,EAA4B,CAAA,IAAA,EAAA,CAAA;AAC1C,wBAAA,OAAA,CAAA,CAAA,aAAO,KAAK,CAAC,CAAA;;;aACd,CAAC;AAEF,QAAA,IAAA,CAAA,UAAU,GAAG,UAAC,MAAc,EAAE,iBAA2B,EAAA;AAEvD,YAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAClC,UAAA,MAAM,EAAA,EAAI,OAAA,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,EAAA,CACtD,CAAC;AACJ,SAAC,CAAA;;QAGD,IAAW,CAAA,WAAA,GAAG,UAAO,IAAY,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;AAChB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAA;;AAAhC,wBAAA,MAAM,GAAG,EAAuB,CAAA,IAAA,EAAA,CAAA;wBAChC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7C,wBAAA,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAnB,EAAmB,CAAC,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,aAAO,MAAM,CAAC,CAAA;;;aACf,CAAA;;QAGD,IAAc,CAAA,cAAA,GAAG,UAAO,IAAY,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;AACnB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAA;;AAAhC,wBAAA,MAAM,GAAG,EAAuB,CAAA,IAAA,EAAA,CAAA;wBAChC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACjD,wBAAA,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAtB,EAAsB,CAAC,CAAC;AAC3D,wBAAA,OAAA,CAAA,CAAA,aAAO,SAAS,CAAC,CAAA;;;aAClB,CAAA;AAED,QAAA,IAAA,CAAA,uBAAuB,GAAG,UAAO,UAAkB,EAAE,MAAc,EAAE,QAAgB,EAAA,EAAA,OAAA,SAAA,CAAA,KAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,YAAA;;;;;;AAC7E,wBAAA,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,6CAAA,CAAA,MAAA,CAA8C,UAAU,EAAA,eAAA,CAAA,CAAA,MAAA,CAAgB,MAAM,EAAA,2BAAA,CAAA,CAAA,MAAA,CAA4B,QAAQ,CAAE,CAAC;AAC3H,wBAAA,OAAA,CAAA,CAAA,YAAM,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA;AAAxB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,EAAiB,CAAA,IAAA,EAAA,EAAE,IAAI,EAAE,CAAA,CAAA;;AAAvC,wBAAA,IAAI,GAAG,EAAgC,CAAA,IAAA,EAAA,CAAA;AAC7C,wBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,GAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,wBAAA,IAAK,IAAI,CAAC,IAAI,IAAI,SAAS;4BAAG,OAAO,CAAA,CAAA,aAAA,CAAC,CAAC,CAAC,CAAA;AACxC,wBAAA,IAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS;4BAAE,OAAO,CAAA,CAAA,aAAA,CAAC,CAAC,CAAC,CAAA;AAC1C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,CAAC,CAAC,CAAA;;;aACvC,CAAC;QAlDA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;KACvC;IAiDH,OAAC,YAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AC9DD;AAIA,IAAA,aAAA,kBAAA,YAAA;AAKI,IAAA,SAAA,aAAA,CAAY,CAAS,EAAA;QAArB,IAGC,KAAA,GAAA,IAAA,CAAA;AAED,QAAA,IAAA,CAAA,iBAAiB,GAAG,UAAC,QAAgB,EAAE,CAAS,EAAA;AAC5C,YAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACvE,SAAC,CAAC;;QAGF,IAAqB,CAAA,qBAAA,GAAG,UAAC,QAAgB,EAAA;YACrC,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;QAEF,IAAqB,CAAA,qBAAA,GAAG,UAAC,QAAgB,EAAA;YACrC,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;;QAGF,IAA8B,CAAA,8BAAA,GAAG,UAAC,QAAgB,EAAA;YAC9C,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;QAEF,IAAkC,CAAA,kCAAA,GAAG,UAAC,QAAgB,EAAA;YAClD,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;;QAGF,IAA+B,CAAA,+BAAA,GAAG,UAAC,QAAgB,EAAA;YAC/C,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;QAEF,IAA+B,CAAA,+BAAA,GAAG,UAAC,QAAgB,EAAA;YAC/C,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;;AAGF;;AAEI;AACJ,QAAA,IAAA,CAAA,2BAA2B,GAAG,UAAC,QAAgB,EAAG,IAAa,EAAE,IAAa,EAAA;AAC1E,YAAA,IAAM,GAAG,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,IAAI,GAAE,KAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACvD,YAAA,IAAM,GAAG,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,IAAI,GAAE,KAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AACjE,YAAA,OAAO,KAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACjE,SAAC,CAAC;AAEF,QAAA,IAAA,CAAA,4BAA4B,GAAG,UAAC,QAAgB,EAAE,IAAa,EAAE,IAAa,EAAA;AAC1E,YAAA,IAAM,GAAG,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,IAAI,GAAE,KAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACvD,YAAA,IAAM,GAAG,GAAG,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,IAAI,GAAE,KAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AACjE,YAAA,OAAO,KAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAClE,SAAC,CAAC;QAEF,IAA6B,CAAA,6BAAA,GAAG,UAAC,QAAgB,EAAA;YAC7C,IAAM,GAAG,GAAG,KAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACjD,IAAM,GAAG,GAAG,KAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAC3D,YAAA,OAAO,KAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AACnE,SAAC,CAAC;QAEF,IAA6B,CAAA,6BAAA,GAAG,UAAC,QAAgB,EAAA;YAC7C,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;QAEF,IAAgC,CAAA,gCAAA,GAAG,UAAC,QAAgB,EAAA;YAChD,OAAO,KAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,SAAC,CAAC;;QA9DE,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;KACrC;IA+DL,OAAC,aAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACtED,IAAMA,KAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAGzC,IAAA,eAAA,kBAAA,YAAA;AAUI,IAAA,SAAA,eAAA,CAAa,IAAY,EAAA;QAAzB,IAOC,KAAA,GAAA,IAAA,CAAA;AAED,QAAA,IAAA,CAAA,QAAQ,GAAG,UACP,OAAc,EACd,WAAqB;AACrB,QAAA,YAAsB;;YAEtB,OAAO,KAAI,CAAC,SAAS,CAAC,QAAQ,CAC1B,OAAO,EACP,WAAW;YACX,YAAY,CAAC,CAAC;AAClB,SAAC,CAAA;AAjBD,QAAA,IAAI,CAAC,KAAK,GAAQ,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,IAAI,GAAS,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,GAAO,IAAIE,eAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK,GAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;KAC7C;AAeH;;;;AAIG;AACG,IAAA,eAAA,CAAA,SAAA,CAAA,aAAa,GAAnB,YAAA;;;;;AACE,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAMF,KAAG,CAAC,UAAU,EAAE,CAAA,CAAA;;AAAtB,wBAAA,EAAA,CAAA,IAAA,EAAsB,CAAC;AACnB,wBAAA,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;wBACvB,OAAM,CAAA,CAAA,YAAAA,KAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA,CAAA;;AAAhC,wBAAA,CAAC,GAAG,EAA4B,CAAA,IAAA,EAAA,CAAA;AAChC,wBAAA,CAAC,GAAc,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAEA,KAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;AACnE,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAc,CAAC,CAAA;;;;AACvB,KAAA,CAAA;AAEC;;;;;AAKC;IACK,eAAa,CAAA,SAAA,CAAA,aAAA,GAAnB,UAAoB,IAAkB,EAAA;;;;;;AAExB,wBAAA,uBAAuB,GAAG;AAC9B,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,UAAU,EAAE,cAAc;AAC1B,4BAAA,UAAU,EAAE,cAAc;AAC1B,4BAAA,IAAI,EAAE,KAAK;yBACZ,CAAC;AAEI,wBAAA,EAAA,GAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAIG,uBAAuB,CAAA,EAAK,IAAI,CAAE,EAHzC,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,qBAAqB,GAAA,EAAA,CAAA,qBAAA,EAAE,oBAAoB,0BAAA,EACpD,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,EACpB,OAAO,aAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,IAAI,UAAA,CACK;wBAExC,GAAG,GAAgB,EAAE,CAAC;AAEtB,wBAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;AACpG,wBAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACjE,wBAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;wBAE7F,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;wBACnD,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CACxC,CAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,CAAC,EACjD,EAAE,EACF,CAAC,aAAa,CAAC,CAChB,CAAA,CAAA;;AAJK,wBAAA,IAAI,GAAG,EAIM,CAAA,IAAA,EAAA,CAAA;AACnB,wBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAE9D,wBAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAC,CAAA;;;;AACZ,KAAA,CAAA;IAED,eAAM,CAAA,SAAA,CAAA,MAAA,GAAZ,UAAa,IAAc,EAAA;;;;;;AACjB,wBAAA,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACpE,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CACxC,CAAC,aAAa,CAAC,EACf,EAAE,EACF,CAAC,IAAI,CAAC,aAAa,CAAC,CACrB,CAAA,CAAA;;AAJK,wBAAA,IAAI,GAAG,EAIM,CAAA,IAAA,EAAA,CAAA;AACnB,wBAAA,OAAA,CAAA,CAAA,aAAO,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAiB,CAAC,CAAA;;;;AACpH,KAAA,CAAA;AAGL;;;;;AAKG;IACG,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAtB,UAAuB,IAAwB,EAAA;;;;;;AACzC,wBAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3E,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAA,CAAA;;AAAxE,wBAAA,GAAG,GAAG,EAAoF,CAAA,IAAA,EAAA,CAAA;wBAC1F,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC;AACvC,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAED;;;;;;;;AAQG;IACG,eAAc,CAAA,SAAA,CAAA,cAAA,GAApB,UAAqB,IAAgB,EAAA;;;;;;AAC7B,wBAAA,cAAc,GAAG;4BACrB,OAAO,EAAE,IAAI,CAAC,MAAM;4BACpB,IAAI,EAAE,IAAI,CAAC,YAAY;4BACvB,IAAI,EAAE,IAAI,CAAC,cAAc;AACzB,4BAAA,WAAW,EAAE,IAAI,CAAC,YAAY;yBAC/B,CAAC;AAGE,wBAAA,MAAM,GAAG;AACX,4BAAA,OAAO,EAAE,OAAO;AAChB,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,aAAa,EAAE,CAAC;oCACd,KAAK,EAAE,IAAI,CAAC,MAAM;AAClB,oCAAA,UAAU,EAAE,QAAQ;iCACrB,CAAC;yBACH,CAAC;AAEQ,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAC9C,EAAE,EACF,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAC7B,CAAA,CAAA;;AAHG,wBAAA,GAAG,GAAG,EAGS,CAAA,IAAA,EAAA,CAAA;wBACf,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC;AACrC,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;IAGH,OAAC,eAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACjJD,IAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAMzC,IAAA,YAAA,kBAAA,YAAA;AAUI,IAAA,SAAA,YAAA,CAAa,IAAY,EAAA;QAAzB,IAQC,KAAA,GAAA,IAAA,CAAA;AAED,QAAA,IAAA,CAAA,QAAQ,GAAG,UACP,OAAc,EACd,WAAqB;AACrB,QAAA,YAAsB;;YAEtB,OAAO,KAAI,CAAC,SAAS,CAAC,QAAQ,CAC1B,OAAO,EACP,WAAW;YACX,YAAY,CAAC,CAAC;AAClB,SAAC,CAAA;AAlBD,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,GAAG,IAAIG,QAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAEF,OAAK,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAIG,iBAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACpF,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7C;AAcL;;;;AAIG;IACK,YAAS,CAAA,SAAA,CAAA,SAAA,GAAf,UAAgB,IAAiB,EAAA;;;;;AAErB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CACjC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC9C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,KAAK,CACX,CAAA,CAAA;;AAJK,wBAAA,CAAC,GAAG,EAIT,CAAA,IAAA,EAAA,CAAA;AACW,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA,CAAA;;AADtB,wBAAA,GAAG,GAAG,EACkC,CAAA,IAAA,EAAA,CAAA;wBAE1C,CAAC,GAAe,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC3C,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAA;;AAApC,wBAAA,CAAC,GAAG,EAAgC,CAAA,IAAA,EAAA,CAAA;AAChC,wBAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAlB,wBAAA,CAAC,GAAG,EAAc,CAAA,IAAA,EAAA,CAAA;wBACtB,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAE1E,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;AACtC,wBAAA,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;;AAEnC,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAGH;;;;AAIG;IACK,YAAiB,CAAA,SAAA,CAAA,iBAAA,GAAvB,UAAwB,IAAyB,EAAA;;;;;;wBAChC,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;wBAEhE,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CACtC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAChD,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAC7B,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EACxB,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CACzD,CAAA,CAAA;;AALK,wBAAA,CAAC,GAAG,EAKT,CAAA,IAAA,EAAA,CAAA;AAEW,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAA;;AADxB,wBAAA,GAAG,GAAG,EACoC,CAAA,IAAA,EAAA,CAAA;wBAE5C,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,sBAAsB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC9C,wBAAA,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;wBAEP,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAK,IAAI,CAAE,EAAA,EAAA,MAAM,EAAA,MAAA,EAAA,CAAA,CAAG,CAAA,CAAA;;AAAnD,wBAAA,EAAE,GAAG,EAA8C,CAAA,IAAA,EAAA,CAAA;AACzD,wBAAA,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAGH;;;;AAIG;IACK,YAA8B,CAAA,SAAA,CAAA,8BAAA,GAApC,UAAqC,IAAsC,EAAA;;;;;;wBAC1D,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;wBAEhE,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAC/C,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAChD,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,EACxC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAC/B,CAAA,CAAA;;AALK,wBAAA,CAAC,GAAG,EAKT,CAAA,IAAA,EAAA,CAAA;AAEW,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,EAAE,EACF,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAA;;AAFpB,wBAAA,GAAG,GAAG,EAEgC,CAAA,IAAA,EAAA,CAAA;wBAExC,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,sBAAsB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC9C,wBAAA,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;wBACT,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,wBAAwB,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAK,IAAI,CAAE,EAAA,EAAA,MAAM,EAAA,MAAA,EAAA,CAAA,CAAG,CAAA,CAAA;;AAA5D,wBAAA,EAAE,GAAG,EAAuD,CAAA,IAAA,EAAA,CAAA;wBAChE,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AACnF,wBAAA,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAED;;;;AAIC;IACM,YAAsB,CAAA,SAAA,CAAA,sBAAA,GAA5B,UAA6B,IAA8B,EAAA;;;;;;wBAC3C,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;wBAEhE,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAC3C,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAChD,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAC7B,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,SAAS,EACrC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAC/B,CAAA,CAAA;;AALK,wBAAA,CAAC,GAAG,EAKT,CAAA,IAAA,EAAA,CAAA;AAEW,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,EAAE,EACF,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAA;;AAFpB,wBAAA,GAAG,GAAG,EAEgC,CAAA,IAAA,EAAA,CAAA;wBAExC,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,sBAAsB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC9C,wBAAA,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;wBACT,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAA,CAAA,QAAA,CAAA,EAAA,EAAK,IAAI,CAAA,EAAA,EAAE,MAAM,EAAA,MAAA,EAAuB,CAAA,CAAE,CAAA,CAAA;;AAA/E,wBAAA,EAAE,GAAG,EAA0E,CAAA,IAAA,EAAA,CAAA;wBACnF,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAClE,wBAAA,CAAC,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAGD;;;;AAIC;IACK,YAAkB,CAAA,SAAA,CAAA,kBAAA,GAAxB,UAAyB,IAA0B,EAAA;;;;;;;wBAEhC,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;wBAE1E,OAAO,CAAC,GAAG,CAAC,aAAc,CAAA,MAAA,CAAA,IAAI,CAAC,SAAS,EAAa,YAAA,CAAA,CAAA,MAAA,CAAA,MAAM,CAAE,CAAC,CAAA;AAE9D,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;4BAAE,OAAO,uBAAuB,EAAE;AAEnE,wBAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAEvD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CACvC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAChD,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CACjC,CAAA,CAAA;;AAJK,wBAAA,CAAC,GAAG,EAIT,CAAA,IAAA,EAAA,CAAA;AAED,wBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAElC,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAA;;AADlE,wBAAA,GAAG,GAAG,EAC8E,CAAA,IAAA,EAAA,CAAA;wBAEtF,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,uBAAuB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;AAGT,wBAAA,OAAO,CAAC,GAAG,CAAE,IAAU,CAAC,OAAO,CAAC,CAAC;wBACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAE,CAAC,CAAC,CAAC;AAChC,wBAAA,MAAM,IAAE,CAAC;;;;;AAGZ,KAAA,CAAA;AAEH;;;;AAIG;IACK,YAA2B,CAAA,SAAA,CAAA,2BAAA,GAAjC,UAAkC,IAA0B,EAAA;;;;;;wBAC3C,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;AAE1E,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;4BAAE,OAAO,uBAAuB,EAAE;AAEzD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAChD,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAChD,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CACjC,CAAA,CAAA;;AAJK,wBAAA,CAAC,GAAG,EAIT,CAAA,IAAA,EAAA,CAAA;wBAEW,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAA;;AADlE,wBAAA,GAAG,GAAG,EAC8E,CAAA,IAAA,EAAA,CAAA;wBAEtF,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,uBAAuB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAEH;;;;AAIG;IACI,YAAuB,CAAA,SAAA,CAAA,uBAAA,GAA7B,UAA8B,IAA0B,EAAA;;;;;;wBACtC,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;AAE1E,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;4BAAE,OAAO,uBAAuB,EAAE;AAEzD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAC5C,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAChD,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CACjC,CAAA,CAAA;;AAJK,wBAAA,CAAC,GAAG,EAIT,CAAA,IAAA,EAAA,CAAA;wBAEW,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAA,CAAA;;AADlE,wBAAA,GAAG,GAAG,EAC8E,CAAA,IAAA,EAAA,CAAA;wBAEtF,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,uBAAuB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAEH;;;;AAIG;IACK,YAAkB,CAAA,SAAA,CAAA,kBAAA,GAAxB,UAAyB,IAA0B,EAAA;;;;;;wBAClC,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;AAE1E,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;4BAAE,OAAO,uBAAuB,EAAE;AAEzD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CACvC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC5C,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CACjC,CAAA,CAAA;;AAHK,wBAAA,CAAC,GAAG,EAGT,CAAA,IAAA,EAAA,CAAA;wBAEW,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA,CAAA;;AAD1D,wBAAA,GAAG,GAAG,EACsE,CAAA,IAAA,EAAA,CAAA;wBAE9E,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,uBAAuB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAEH;;;AAGG;IACK,YAA2B,CAAA,SAAA,CAAA,2BAAA,GAAjC,UAAkC,IAA0B,EAAA;;;;;;wBAC3C,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;AAE1E,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;4BAAE,OAAO,uBAAuB,EAAE;AAEzD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAChD,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAC/E,CAAA,CAAA;;AAFK,wBAAA,CAAC,GAAG,EAET,CAAA,IAAA,EAAA,CAAA;AAEW,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA,CAAA;;AAArD,wBAAA,GAAG,GAAG,EAAiE,CAAA,IAAA,EAAA,CAAA;wBAEzE,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,uBAAuB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAEH;;;AAGG;IACK,YAAuB,CAAA,SAAA,CAAA,uBAAA,GAA7B,UAA8B,IAA0B,EAAA;;;;;;wBACvC,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;AAE1E,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;4BAAE,OAAO,uBAAuB,EAAE;AAEzD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAC5C,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAC/E,CAAA,CAAA;;AAFK,wBAAA,CAAC,GAAG,EAET,CAAA,IAAA,EAAA,CAAA;AAEW,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA,CAAA;;AAArD,wBAAA,GAAG,GAAG,EAAiE,CAAA,IAAA,EAAA,CAAA;wBAEzE,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,uBAAuB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAEH;;;AAGG;IACK,YAAc,CAAA,SAAA,CAAA,cAAA,GAApB,UAAqB,IAAuB,EAAA;;;;;;wBAE3B,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;wBAEhE,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5B,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC7C,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,IAAI,UAAU,EAC3D,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CACtC,CAAA,CAAA;;AAJK,wBAAA,CAAC,GAAG,EAIT,CAAA,IAAA,EAAA,CAAA;wBAED,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AADrB,wBAAA,GAAG,GAAG,EACiC,CAAA,IAAA,EAAA,CAAA;wBAE7C,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACrF,wBAAA,OAAA,CAAA,CAAA,aAAO,EAAE,oBAAoB,EAAE,GAAG,CAAC,cAAc,EAAiB,CAAC,CAAA;;;;AACpE,KAAA,CAAA;AAED;;;AAGC;IACK,YAAmB,CAAA,SAAA,CAAA,mBAAA,GAAzB,UAA0B,IAA8B,EAAA;;;;;;;wBAEtD,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAChC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC7C,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAC1B,CAAA,CAAA;;AAHK,wBAAA,CAAC,GAAG,EAGT,CAAA,IAAA,EAAA,CAAA;wBAED,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AADrB,wBAAA,GAAG,GAAG,EACiC,CAAA,IAAA,EAAA,CAAA;;AAG7C,wBAAA,OAAA,CAAA,CAAA,aAAO,EAAE,wBAAwB,EAAE,GAAG,CAAC,cAAc,EAAiB,CAAC,CAAA;;;;AACxE,KAAA,CAAA;;AAMH;;;AAGG;AACI,IAAA,YAAA,CAAA,SAAA,CAAA,eAAe,GAArB,UAAsB,KAAc,EAAE,MAAgB,EAAA;;;;;;;AACnD,wBAAA,IAAI,CAAC,KAAK;AACR,4BAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AAE/B,wBAAA,CAAC,GAAe,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;wBACpC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC5D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAA;;AAApC,wBAAA,CAAC,GAAG,EAAgC,CAAA,IAAA,EAAA,CAAA;AAChC,wBAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAlB,wBAAA,CAAC,GAAG,EAAc,CAAA,IAAA,EAAA,CAAA;wBAEtB,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC9E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;AAC3B,4BAAA,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE/B,wBAAA,CAAC,GAAW,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,EAAE,CAAC;AAC5C,wBAAA,IAAG,CAAC,CAAC,IAAI,CAAC,MAAM;AACd,4BAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AAEnC,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;IAEK,YAAe,CAAA,SAAA,CAAA,eAAA,GAArB,UAAsB,IAAuB,EAAA;;;;;;;wBAE3C,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;wBACtE,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA,CAAA;;wBAAjD,EAAA,IAAC,EAAgD,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAA1E,wBAAA,MAAM,GAAoE,EAAA,CAAA;AAChF,wBAAA,IAAG,CAAC,MAAM;AAAE,4BAAA,OAAA,CAAA,CAAA,aAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAEjC,wBAAA,IAAA,EAAA,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAA,EAAvD,OAAuD,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAE9C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAE,EAAE,KAAK,EAAE,MAAM,EAAG,eAAe,EAAE,IAAI,CAAC,eAAe,EAAqB,CAAE,CAAA,CAAA;;AAAzH,wBAAA,GAAA,GAAI,EAAqH,CAAA,IAAA,EAAA,CAAA;AAC7H,wBAAA,EAAA,GAAA,IAAI,CAAA;AAAe,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;wBAAjC,EAAK,CAAA,WAAW,GAAG,EAAA,CAAA,IAAA,EAAc,CAAC;;;wBAGtC,IAAG,IAAI,CAAC,WAAW;4BAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAEtE,wBAAA,GAAG,GAAG;AACN,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;AACjC,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,KAAK,EAAE,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;4BAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,4BAAA,cAAc,EAAE,GAAG;yBACC,CAAC;wBAE3B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,GAAG,CAAE,CAAA,CAAA;AAA1C,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,EAAmC,CAAA,IAAA,EAAA,EAAE,IAAI,EAAE,CAAA,CAAA;;AAAtD,wBAAA,CAAC,GAAG,EAAkD,CAAA,IAAA,EAAA,CAAA;wBAE1D,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,wBAAA,OAAA,CAAA,CAAA,aAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAY,CAAC,CAAA,EAAA,EAAE,MAAM,EAAA,MAAA,EAAG,CAAA,CAAA,CAAA;;;;AACzB,KAAA,CAAA;IAEK,YAAwB,CAAA,SAAA,CAAA,wBAAA,GAA9B,UAA+B,IAAuB,EAAA;;;;;;;wBAEpD,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;wBACnE,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA,CAAA;;wBAAjD,EAAA,IAAC,EAAgD,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAA1E,wBAAA,MAAM,GAAoE,EAAA,CAAA;AAChF,wBAAA,IAAG,CAAC,MAAM;AAAE,4BAAA,OAAA,CAAA,CAAA,aAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAEjC,wBAAA,IAAA,EAAA,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAA,EAAvD,OAAuD,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAE9C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAE,EAAE,KAAK,EAAE,MAAM,EAAG,eAAe,EAAE,IAAI,CAAC,eAAe,EAAqB,CAAE,CAAA,CAAA;;AAAlI,wBAAA,GAAA,GAAI,EAA8H,CAAA,IAAA,EAAA,CAAA;AACtI,wBAAA,EAAA,GAAA,IAAI,CAAA;AAAe,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;wBAAjC,EAAK,CAAA,WAAW,GAAG,EAAA,CAAA,IAAA,EAAc,CAAC;;;wBAGtC,IAAG,IAAI,CAAC,WAAW;4BAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AAEtE,wBAAA,GAAG,GAAG;AACN,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;AACjC,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,aAAa;4BACpB,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,KAAK,EAAE,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;4BAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,4BAAA,cAAc,EAAE,GAAG;yBACD,CAAC;wBAEzB,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,GAAG,CAAE,CAAA,CAAA;AAA1C,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,EAAmC,CAAA,IAAA,EAAA,EAAE,IAAI,EAAE,CAAA,CAAA;;AAAtD,wBAAA,CAAC,GAAG,EAAkD,CAAA,IAAA,EAAA,CAAA;wBAE1D,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACnF,wBAAA,OAAA,CAAA,CAAA,aAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAY,CAAC,CAAA,EAAA,EAAE,MAAM,EAAA,MAAA,EAAG,CAAA,CAAA,CAAA;;;;AACzB,KAAA,CAAA;IAEK,YAAoB,CAAA,SAAA,CAAA,oBAAA,GAA1B,UAA2B,IAAuB,EAAA;;;;;;;wBAEhD,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC/D,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA,CAAA;;wBAAjD,EAAA,IAAC,EAAgD,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAA1E,wBAAA,MAAM,GAAoE,EAAA,CAAA;AAChF,wBAAA,IAAG,CAAC,MAAM;4BAAE,OAAO,CAAA,CAAA,aAAA,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAAC,CAAA;AAI9E,wBAAA,IAAA,EAAA,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,CAAA,EAAvD,OAAuD,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAE9C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAE,EAAE,KAAK,EAAE,MAAM,EAAG,eAAe,EAAE,IAAI,CAAC,eAAe,EAAqB,CAAE,CAAA,CAAA;;AAAzH,wBAAA,GAAA,GAAI,EAAqH,CAAA,IAAA,EAAA,CAAA;AAC7H,wBAAA,EAAA,GAAA,IAAI,CAAA;AAAe,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;wBAAjC,EAAK,CAAA,WAAW,GAAG,EAAA,CAAA,IAAA,EAAc,CAAC;;;;wBAItC,IAAG,IAAI,CAAC,WAAW;4BAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACtE,wBAAA,GAAG,GAAG;AACN,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;AACjC,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,YAAY;4BACnB,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,KAAK,EAAE,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;4BAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,4BAAA,cAAc,EAAE,GAAG;yBACD,CAAC;wBAEzB,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC5D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,GAAG,CAAE,CAAA,CAAA;AAA1C,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,EAAmC,CAAA,IAAA,EAAA,EAAE,IAAI,EAAE,CAAA,CAAA;;AAAtD,wBAAA,CAAC,GAAG,EAAkD,CAAA,IAAA,EAAA,CAAA;wBAE1D,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/E,wBAAA,OAAA,CAAA,CAAA,aAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAY,CAAC,CAAA,EAAA,EAAE,MAAM,EAAA,MAAA,EAAG,CAAA,CAAA,CAAA;;;;AACzB,KAAA,CAAA;IAGO,YAAe,CAAA,SAAA,CAAA,eAAA,GAArB,UAAsB,IAAuB,EAAA;;;;;;;wBAC5B,EAAA,GAAA,IAAI,CAAC,MAAM,CAAA;gCAAX,OAAW,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;wBAAK,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAA;;wBAA3C,EAAA,IAAC,EAA0C,CAAA,IAAA,EAAA,CAAC,CAAA;;;AAApE,wBAAA,MAAM,GAA8D,EAAA,CAAA;AAGpE,wBAAA,GAAG,GAAG;AACR,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;AACjC,4BAAA,KAAK,EAAE,MAAM;AACb,4BAAA,KAAK,EAAE,WAAW;AAClB,4BAAA,QAAQ,EAAE,MAAM;4BAChB,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,KAAK,EAAE,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;4BAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,4BAAA,cAAc,EAAE,GAAG;yBACC,CAAC;wBACV,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAE,GAAG,CAAE,CAAA,CAAA;AAA1C,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,EAAmC,CAAA,IAAA,EAAA,EAAE,IAAI,EAAE,CAAA,CAAA;;AAAtD,wBAAA,CAAC,GAAG,EAAkD,CAAA,IAAA,EAAA,CAAA;wBAC1D,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,wBAAA,OAAA,CAAA,CAAA,aAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAAY,CAAC,CAAA,EAAA,EAAE,MAAM,EAAA,MAAA,EAAG,CAAA,CAAA,CAAA;;;;AACzB,KAAA,CAAA;IAEK,YAAQ,CAAA,SAAA,CAAA,QAAA,GAAd,UAAe,IAAgB,EAAA;;;;;;;AAGvB,wBAAA,GAAG,GAAG;AACV,4BAAA,IAAI,EAAE,IAAI;AACV,4BAAA,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;4BACjC,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,4BAAA,KAAK,EAAE,OAAO;AACd,4BAAA,QAAQ,EAAE,KAAK;4BACf,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;4BAC7B,KAAK,EAAE,CAAC,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC;4BAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,4BAAA,cAAc,EAAE,GAAG;yBACG,CAAC;wBAEd,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA,CAAA;AAAxC,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,CAAC,EAAiC,CAAA,IAAA,EAAA,EAAE,IAAI,EAAE,CAAA,CAAA;;wBAApD,CAAC,GAAG,SAAgD,CAAC;wBACrD,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/E,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;IAEL,OAAC,YAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AC7fD,IAAA,aAAA,kBAAA,YAAA;AAWI,IAAA,SAAA,aAAA,CAAa,IAAY,EAAA;QAAzB,IAUC,KAAA,GAAA,IAAA,CAAA;AAED,QAAA,IAAA,CAAA,QAAQ,GAAG,UACP,OAAc,EACd,WAAqB;AACrB,QAAA,YAAsB;;YAEtB,OAAO,KAAI,CAAC,SAAS,CAAC,QAAQ,CAC1B,OAAO,EACP,WAAW;YACX,YAAY,CAAC,CAAC;AACtB,SAAC,CAAA;AApBG,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAEtB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAIC,iBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACrG,IAAI,CAAC,WAAW,GAAG,IAAIC,UAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAEL,OAAK,CAAC,CAAC;AAChG,QAAA,IAAI,CAAC,IAAI,GAAG,IAAIM,iBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACrG,QAAA,IAAI,CAAC,MAAM,GAAG,IAAIL,eAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3F,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;KAC7C;AAaC;;;;;;;;AAQD;IACG,aAAY,CAAA,SAAA,CAAA,YAAA,GAAlB,UAAmB,IAAoB,EAAA;;;;;;wBACjC,CAAC,GAAgB,EAAE,CAAC;AAER,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA;;AAArG,wBAAA,OAAO,GAAG,EAA2F,CAAA,IAAA,EAAA,CAAA;wBAC3G,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AAA5D,wBAAA,GAAG,GAAG,EAAwE,CAAA,IAAA,EAAA,CAAA;AAEpF,wBAAA,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,cAAc,CAAC;AACzC,wBAAA,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC;AACX,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAED;;;;AAIE;IACI,aAAkB,CAAA,SAAA,CAAA,kBAAA,GAAxB,UAAyB,IAAoB,EAAA;;;;;;wBACvC,CAAC,GAAgB,EAAE,CAAC;AAER,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CACzC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC7C,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA;;AAHL,wBAAA,OAAO,GAAG,EAGL,CAAA,IAAA,EAAA,CAAA;wBAEX,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrC,EAAE,EACF,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AAFjB,wBAAA,GAAG,GAAG,EAE6B,CAAA,IAAA,EAAA,CAAA;AAEzC,wBAAA,CAAC,CAAC,mBAAmB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC3C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AAEV,KAAA,CAAA;AAED;;;;AAIG;IACG,aAAiB,CAAA,SAAA,CAAA,iBAAA,GAAvB,UAAwB,IAAoB,EAAA;;;;;;wBACtC,CAAC,GAAgB,EAAE,CAAC;AACR,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CACxC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC7C,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA;;AAHL,wBAAA,OAAO,GAAG,EAGL,CAAA,IAAA,EAAA,CAAA;wBAEX,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrC,EAAE,EACF,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AAFjB,wBAAA,GAAG,GAAG,EAE6B,CAAA,IAAA,EAAA,CAAA;AAEzC,wBAAA,CAAC,CAAC,mBAAmB,GAAG,GAAG,CAAC,cAAc,CAAC;AAC3C,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AAEV,KAAA,CAAA;;AAID;;;;;;AAMG;IACI,aAAU,CAAA,SAAA,CAAA,UAAA,GAAhB,UAAiB,IAAkB,EAAA;;;;;;;wBAClC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;wBACxE,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAlB,IAAI,CAAC,aAAa,GAAK,IAAI,CAAC,CAAA;wBAC5B,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAlB,IAAI,CAAC,aAAa,GAAK,IAAI,CAAC,CAAA;wBAC5B,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAhB,IAAI,CAAC,WAAW,GAAK,KAAK,CAAC,CAAA;wBAE3B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE,wBAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAC5B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,WAAW,EAChB,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAC9B,CAAC;AAEQ,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/B,EAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAChC,CAAA,CAAA;;AAFG,wBAAA,GAAG,GAAG,EAES,CAAA,IAAA,EAAA,CAAA;wBACf,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC;AACvC,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAED;;;;AAIG;IACG,aAAS,CAAA,SAAA,CAAA,SAAA,GAAf,UAAgB,IAAiB,EAAA;;;;;;wBAE3B,CAAC,GAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;wBACxC,CAAC,GAAgB,EAAE,CAAC;wBAGxB,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC3D,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA,CAAA;;AAA5C,wBAAA,CAAC,GAAG,EAAwC,CAAA,IAAA,EAAA,CAAA;AACxC,wBAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAlB,wBAAA,CAAC,GAAG,EAAsB,CAAA,IAAA,EAAA,CAAA;wBAExB,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAY,CAAC;wBACjC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAc,CAAC;wBAE3C,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAExC,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CACzC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC7C,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA,CAAA;;AAF1B,wBAAA,OAAO,GAAG,EAEgB,CAAA,IAAA,EAAA,CAAA;wBAEhC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EACrC,EAAE,EACF,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AAFjB,wBAAA,GAAG,GAAG,EAE6B,CAAA,IAAA,EAAA,CAAA;AAEzC,wBAAA,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;AACtC,wBAAA,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC;AACpB,wBAAA,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;AACxB,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;;AAGD;;;;AAIG;IACG,aAAW,CAAA,SAAA,CAAA,WAAA,GAAjB,UAAkB,IAAmB,EAAA;;;;;4BAEzB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CACxC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAC7C,wBAAA,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CAAC,CAAA,CAAA;;AAHL,wBAAA,CAAC,GAAG,EAGC,CAAA,IAAA,EAAA,CAAA;wBAEX,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC/B,EAAE,EACF,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AAFjB,wBAAA,GAAG,GAAG,EAE6B,CAAA,IAAA,EAAA,CAAA;wBAErC,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAC;AACxC,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;IAIH,OAAC,aAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AClND;AAQa,IAAA,kBAAkB,GAAG;AAC9B,IAAA,EAAE,IAAI,EAAE,MAAM,EAAU,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAA,EAAE,IAAI,EAAE,aAAa,EAAG,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAS,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAA,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAA,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAO,IAAI,EAAE,QAAQ,EAAE;AACxC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAO,IAAI,EAAE,QAAQ,EAAE;EACxC;AAEW,IAAA,WAAW,GAAG;AACzB,IAAA,EAAE,IAAI,EAAE,MAAM,EAAQ,IAAI,EAAE,QAAQ,EAAE;AACtC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAQ,IAAI,EAAE,QAAQ,EAAE;AACtC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAO,IAAI,EAAE,QAAQ,EAAE;AACtC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAK,IAAI,EAAE,QAAQ,EAAE;EACtC;AAcW,IAAA,cAAc,GAAG;;AAE1B,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAC;AAC/B,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAC;AACjC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAC;AAEhC,IAAA,EAAE,IAAI,EAAE,aAAa,EAAC,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAI,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAG,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAI,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAI,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAO,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAO,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,KAAK,EAAS,IAAI,EAAE,QAAQ,EAAC;;AAErC,IAAA,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAC;AACvC,IAAA,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAC;AACvC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAS,IAAI,EAAE,QAAQ,EAAC;AACvC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAM,IAAI,EAAE,QAAQ,EAAC;AACvC,IAAA,EAAE,IAAI,EAAE,aAAa,EAAG,IAAI,EAAE,QAAQ,EAAC;;AAEvC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAG,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAM,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAK,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAK,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAK,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAG,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAI,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAM,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAK,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAM,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAO,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAI,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAM,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAM,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAI,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAC;AACrC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAG,IAAI,EAAE,QAAQ,EAAC;;;;;;;;;;;EAYvC;AAEF;AACa,IAAA,WAAW,GAAG;AACzB,IAAA,EAAE,IAAI,EAAE,MAAM,EAAS,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAM,IAAI,EAAE,QAAQ,EAAC;AACxC,IAAA,EAAE,IAAI,EAAE,cAAc,EAAC,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAM,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,WAAW,EAAI,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,UAAU,EAAK,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAO,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,QAAQ,EAAO,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,OAAO,EAAQ,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAC;AACtC,IAAA,EAAE,IAAI,EAAE,SAAS,EAAM,IAAI,EAAE,QAAQ,EAAC;EAEtC;AAEK,IAAM,kBAAkB,GAAG;IAChC,EAAC,KAAK,EAAE,MAAM,EAAS,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAE;IAChD,EAAC,KAAK,EAAE,WAAW,EAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;;;IAGpD,EAAC,KAAK,EAAE,cAAc,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAC;IAC/C,EAAC,KAAK,EAAE,SAAS,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAC;IAC/C,EAAC,KAAK,EAAE,WAAW,EAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;;IAEtD,EAAC,KAAK,EAAE,QAAQ,EAAO,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;IAChD,EAAC,KAAK,EAAE,QAAQ,EAAO,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;IAChD,EAAC,KAAK,EAAE,OAAO,EAAQ,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;IAChD,EAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;IAChD,EAAC,KAAK,EAAE,SAAS,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAC;CACnD,CAAC;AAEK,IAAM,mBAAmB,GAAG;IACjC,EAAE,KAAK,EAAE,MAAM,EAAM,OAAO,EAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAC;IAC5C,EAAE,KAAK,EAAE,WAAW,EAAC,OAAO,EAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAC;IACjD,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAC;;IAEpD,EAAE,KAAK,EAAE,WAAW,EAAC,OAAO,EAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAC;;IAElD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAC;;IAE1C,EAAE,KAAK,EAAE,OAAO,EAAK,OAAO,EAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAC;IAC5C,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAC;IAC/C,EAAE,KAAK,EAAE,SAAS,EAAG,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAC;CAE9C,CAAC;AAgBH;;;;;;;;;;;;AAYK;;ACzJN,IAAA,cAAA,kBAAA,YAAA;AAUI,IAAA,SAAA,cAAA,CAAa,IAAY,EAAA;QAAzB,IASC,KAAA,GAAA,IAAA,CAAA;AAED,QAAA,IAAA,CAAA,QAAQ,GAAG,UACP,OAAc,EACd,WAAqB;AACrB,QAAA,YAAsB;;YAEtB,OAAO,KAAI,CAAC,SAAS,CAAC,QAAQ,CAC1B,OAAO,EACP,WAAW;YACX,YAAY,CAAC,CAAC;AAClB,SAAC,CAAA;AAnBD,QAAA,IAAI,CAAC,KAAK,GAAQ,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,IAAI,GAAS,IAAI,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAO,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,MAAM,GAAO,IAAIA,eAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC/F,IAAI,CAAC,KAAK,GAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,IAAI,GAAS,IAAI,CAAC,IAAI,CAAC;KAC/B;AAcD;;;;AAIG;IACG,cAAgB,CAAA,SAAA,CAAA,gBAAA,GAAtB,UAAuB,IAAwB,EAAA;;;;;;wBAGnC,GAAG,GAAgB,EAAE,CAAC;AAG1B,wBAAA,IAAI,IAAI,CAAC,eAAe,IAAI,SAAS;AAAE,4BAAA,MAAM,6BAA6B,CAAC;AAC3E,wBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS;AAAE,4BAAA,MAAM,yBAAyB,CAAC;AAC/D,wBAAA,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC7C,wBAAA,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAEhE,wBAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAC9B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,eAAe,EACpB,CAAC,IAAI,CAAC,IAAI,CAAC,EACX,CAAC,IAAI,CAAC,IAAI,CAAC,EACX,OAAO,EACP,YAAY,CACb,CAAC;wBAEF,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC7C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA,CAAA;;wBAAxE,IAAI,IAAG,EAAmF,CAAA,IAAA,EAAA,CAAA,CAAC;AAC3F,wBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;wBAGjC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAC3C,wBAAA,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC;wBAC7E,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;wBACpG,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAE/B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC7C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAA,CAAA;;wBAAxE,IAAI,IAAG,EAAmF,CAAA,IAAA,EAAA,CAAA,CAAC;AAC3F,wBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAEjC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC5C,wBAAA,QAAQ,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC5D,wBAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAChD,wBAAA,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;wBACpD,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAChH,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAE9B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAE,CAAA,CAAA;;wBAA1E,IAAI,IAAG,EAAqF,CAAA,IAAA,EAAA,CAAA,CAAC;AAC7F,wBAAA,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;wBACxC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAEjC,wBAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAC,CAAA;;;;AACZ,KAAA,CAAA;AAGP;;;;AAIC;IACK,cAAS,CAAA,SAAA,CAAA,SAAA,GAAf,UAAgB,IAAiB,EAAA;;;;;;wBAEzB,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS;AAAE,4BAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/F,wBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS;AAAE,4BAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzG,wBAAA,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS;AAAE,4BAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;AACjD,wBAAA,IAAK,CAAC,IAAI,CAAC,cAAc,IAAI,SAAS,MAAM,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC;4BAAG,OAAO,CAAA,CAAA,aAAA,CAAC,CAAC,CAAA;AACvF,wBAAA,IAAI,IAAI,CAAC,cAAc,IAAI,SAAS;AAAE,4BAAA,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9I,wBAAA,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS;AAAE,4BAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AAErD,wBAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAC7B,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EACxD,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CACnD,CAAC;AACI,wBAAA,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;AAC3E,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA,CAAA;;AAAnD,wBAAA,GAAG,GAAI,EAA8D,CAAA,IAAA,EAAA,CAAA;AAC3E,wBAAA,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;AACtC,wBAAA,CAAC,CAAC,QAAQ,GAAG,kBAAkB,CAAC;;;;AAG9B,wBAAA,EAAA,GAAA,CAAC,CAAA;wBAAa,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA,CAAA;;wBAA/D,EAAE,CAAA,QAAQ,GAAG,CAAC,EAAA,CAAA,IAAA,EAAiD,EAAE,CAAC,CAAC,CAAC;;;;;AAGpE,wBAAA,OAAO,CAAC,GAAG,CAAE,IAAU,CAAC,OAAO,CAAC,CAAC;AACjC,wBAAA,MAAM,IAAE,CAAC;;AAEX,wBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,cAAc,GAAG,aAAa,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClF,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AAaV,KAAA,CAAA;AAGH;;;;AAIG;IACK,cAAW,CAAA,SAAA,CAAA,WAAA,GAAjB,UAAkB,IAAmB,EAAA;;;;;;wBAE7B,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzF,wBAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA,CAAA;;AAAlE,wBAAA,GAAG,GAAG,EAA8E,CAAA,IAAA,EAAA,CAAA;wBACpF,CAAC,GAAgB,EAAE,CAAC;AACxB,wBAAA,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAC;AACxC,wBAAA,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC3B,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;IACH,OAAC,cAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;AC9JL,IAAA,UAAA,kBAAA,YAAA;AASE,IAAA,SAAA,UAAA,CAAa,IAAY,EAAA;;;AAGvB,QAAA,IAAI,CAAC,QAAQ,GAAI,IAAI,CAAC,QAAQ,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAI,IAAI,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,GAAO,IAAIA,eAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC/F,IAAI,CAAC,SAAS,GAAI,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;KAC5C;AAGD;;;;;AAKG;IACG,UAAiB,CAAA,SAAA,CAAA,iBAAA,GAAvB,UAAwB,GAAiB,EAAA;;;;;;AAEvC,wBAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AAEjB,4BAAA,IAAI,GAAG,CAAC,UAAU,IAAI,MAAM;gCAC1B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AAE9C,iCAAA,IAAI,GAAG,CAAC,UAAU,IAAI,KAAK;gCACzB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;;gCAE9C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;AACjD,yBAAA;AAEG,wBAAA,EAAE,GAAiB,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;;;;wBAElC,OAAM,CAAA,CAAA,YAAA,KAAK,CAAC,8DAA8D,EAAE;AAClF,gCAAA,MAAM,EAAE,MAAM;AACd,gCAAA,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;AAC/C,gCAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACnB,OAAO,EAAE,GAAG,CAAC,KAAK;oCAClB,IAAI,EAAE,GAAG,CAAC,QAAQ;iCACnB,CAAC;AACH,6BAAA,CAAC,CAAA,CAAA;;AAPE,wBAAA,CAAC,GAAG,EAON,CAAA,IAAA,EAAA,CAAA;AACF,wBAAA,EAAA,GAAA,EAAE,CAAA;AAAgB,wBAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;wBAAhC,EAAG,CAAA,YAAY,GAAG,EAAA,CAAA,IAAA,EAAc,CAAC;;AAEjC,wBAAA,OAAA,CAAA,CAAA,aAAO,EAAE,CAAC,CAAA;;;wBAEV,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,GAAC,CAAC,CAAC;AACvD,wBAAA,IAAI,GAAC,YAAY,QAAQ,IAAI,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACtF,wBAAA,MAAM,GAAC,CAAC;;;;;AAEX,KAAA,CAAA;AAEG;;;AAGD;AACO,IAAA,UAAA,CAAA,SAAA,CAAA,UAAU,GAAhB,UAAiB,QAAgB,EAAE,IAAa,EAAA;;;;;;;wBAC1C,CAAC,GAAgB,EAAE,CAAC;AACpB,wBAAA,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAA,CAAA,EAAA,GAAE,IAAI,CAAC,IAAI,MAAT,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAA,IAAI,CAAC,IAAI,GAAK,EAAE,EAAC,CAAC;AAChF,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAC1C,EAAE,EACF,CAAC,IAAI,CAAC,aAAa,CAAC,CACrB,CAAA,CAAA;;AAHG,wBAAA,GAAG,GAAG,EAGS,CAAA,IAAA,EAAA,CAAA;AACnB,wBAAA,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC;AAC5B,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACZ,KAAA,CAAA;AAED;;;;AAIC;IACK,UAAY,CAAA,SAAA,CAAA,YAAA,GAAlB,UAAmB,IAAa,EAAA;;;;;AAClB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA,CAAA;;AAA7D,wBAAA,CAAC,GAAG,EAAyD,CAAA,IAAA,EAAA,CAAA;AACnE,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAGL;;;;AAIG;IACG,UAAa,CAAA,SAAA,CAAA,aAAA,GAAnB,UAAoB,IAAa,EAAA;;;;;AACrB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA,CAAA;;AAA/D,wBAAA,CAAC,GAAG,EAA2D,CAAA,IAAA,EAAA,CAAA;AACrE,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;AAGD;;;;AAIG;IACG,UAAiB,CAAA,SAAA,CAAA,iBAAA,GAAvB,UAAwB,IAAa,EAAA;;;;;AACzB,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA,CAAA;;AAA/D,wBAAA,CAAC,GAAG,EAA2D,CAAA,IAAA,EAAA,CAAA;AACrE,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;;AACV,KAAA,CAAA;IAIH,OAAC,UAAA,CAAA;AAAD,CAAC,EAAA,CAAA;;ACvGD,IAAY,WAGX,CAAA;AAHD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,gBAGX,CAAA;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,cAAyB,CAAA;AACzB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,cAAsB,CAAA;AACxB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA;;ACnBM,IAAM,qBAAqB,GAAG,UAAC,IAAY,EAAA;AAChD,IAAA,OAAA,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;AAAzB,CAAyB,CAAC;AAErB,IAAM,gBAAgB,GAAG,UAC9B,KAAa,EACb,QAAgB,EAChB,QAAgB,EAAA;IAEhB,OAAO,EAAA,CAAA,MAAA,CAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,QAAQ,CAAE,CAAC;AAClD,CAAC;;ACNK,SAAU,wBAAwB,CACtC,MAA+C,EAAA;AAG7C,IAAA,IAAA,WAAW,GAQT,MAAM,YARG,EACX,EAAA,GAOE,MAAM,CAPoB,iBAAA,EAA5B,iBAAiB,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,QAAQ,KAAA,EAC5B,EAAE,GAMA,MAAM,CAAA,EANN,EACF,QAAQ,GAKN,MAAM,CALA,QAAA,EACR,QAAQ,GAIN,MAAM,SAJA,EACR,MAAM,GAGJ,MAAM,CAAA,MAHF,EACN,QAAQ,GAEN,MAAM,CAFA,QAAA,EACR,IAAI,GACF,MAAM,KADJ,CACK;IAEX,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACjD,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC5C,KAAA;IAED,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,aAAa,EAAE;AACb,gBAAA;AACE,oBAAA,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACxC,gBAAA,EAAE,EAAE,qBAAqB,CAAC,EAAE,CAAC;gBAC7B,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;gBACtD,IAAI,EAAE,IAAI,IAAI,EAAE;AACjB,aAAA;AACF,SAAA;KACF,CAAC;AACJ;;ACxBO,IAAM,uBAAuB,GAAG,UACrC,MAAoC,EAAA;;AAGlC,IAAA,IAAA,WAAW,GAcT,MAAM,CAAA,WAdG,EACX,UAAU,GAaR,MAAM,CAAA,UAbE,EACV,QAAQ,GAYN,MAAM,SAZA,EACR,QAAQ,GAWN,MAAM,CAXA,QAAA,EACR,UAAU,GAUR,MAAM,CAVE,UAAA,EACV,SAAS,GASP,MAAM,CAAA,SATC,EACT,WAAW,GAQT,MAAM,CAAA,WARG,EACX,SAAS,GAOP,MAAM,CAPC,SAAA,EACT,WAAW,GAMT,MAAM,CANG,WAAA,EACX,WAAW,GAKT,MAAM,CAAA,WALG,EACX,gBAAgB,GAId,MAAM,CAAA,gBAJQ,EAChB,YAAY,GAGV,MAAM,aAHI,EACZ,mBAAmB,GAEjB,MAAM,oBAFW,EACnB,oBAAoB,GAClB,MAAM,qBADY,CACX;IACX,IAAM,iBAAiB,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,iBAAiB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,QAAQ,CAAC;AAC/D,IAAA,IAAM,iBAAiB,GAAsB;AAC3C,QAAA,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC;AAC1C,QAAA,eAAe,EAAE,qBAAqB,CAAC,UAAU,CAAC;AAClD,QAAA,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC;QAC5D,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QACtC,aAAa,EAAE,gBAAgB,CAAC,WAAW,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC;AACxE,QAAA,WAAW,EAAE,CAAC;AACd,QAAA,WAAW,EAAE,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,WAAW,GAAI,EAAE;KAC/B,CAAC;AACF,IAAA,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,KAAK,EAAE;AAC5C,QAAA,iBAAiB,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAZ,YAAY,GAAI,CAAC,IAAI,GAAG,CAAC;QAC/D,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,KAAhB,IAAA,IAAA,gBAAgB,KAAhB,KAAA,CAAA,GAAA,gBAAgB,GAAI,CAAC,CAAC;AAChE,KAAA;IAED,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,aAAa,EAAE;AACb,gBAAA;oBACE,KAAK,EAAE,MAAM,CAAC,WAAW;AACzB,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,KAAK,EAAE,MAAM,CAAC,WAAW;AACzB,gBAAA,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;AAC9B,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,aAAa,EAAE;AACb,gBAAA;oBACE,KAAK,EAAE,MAAM,CAAC,WAAW;AACzB,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM,CAAC,WAAW;AACxB,gBAAA,EAAE,EAAE,mBAAmB;AACvB,gBAAA,SAAS,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;AAChC,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EACF,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,KAAK;kBACpC,gBAAgB,CAAC,KAAK;kBACtB,gBAAgB,CAAC,QAAQ;AAC/B,YAAA,aAAa,EAAE;AACb,gBAAA;oBACE,KAAK,EAAE,MAAM,CAAC,WAAW;AACzB,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE,iBAAiB;AACxB,SAAA;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,kBAAkB,GAAG,UAChC,MAA+B,EAAA;IAG7B,IAAA,WAAW,GAST,MAAM,CAAA,WATG,EACX,EAQE,GAAA,MAAM,CARoB,iBAAA,EAA5B,iBAAiB,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,QAAQ,GAAA,EAAA,EAC5B,QAAQ,GAON,MAAM,SAPA,EACR,MAAM,GAMJ,MAAM,CANF,MAAA,EACN,MAAM,GAKJ,MAAM,OALF,EACN,SAAS,GAIP,MAAM,CAAA,SAJC,EACT,WAAW,GAGT,MAAM,YAHG,EACX,mBAAmB,GAEjB,MAAM,CAAA,mBAFW,EACnB,oBAAoB,GAClB,MAAM,CAAA,oBADY,CACX;AACX,IAAA,OAAA,aAAA,CAAA,aAAA,CAAA;AACE,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,aAAa,EAAE;AACb,gBAAA;AACE,oBAAA,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,gBAAA,YAAY,EAAE,EAAA,CAAA,MAAA,CAAG,QAAQ,EAAA,GAAA,CAAA,CAAA,MAAA,CAAI,MAAM,CAAE;AACtC,aAAA;AACF,SAAA;AACE,KAAA,EAAA,wBAAwB,CAAC;AAC1B,QAAA,MAAM,EAAA,MAAA;AACN,QAAA,EAAE,EAAE,mBAAmB;AACvB,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,QAAQ,EAAA,QAAA;AACR,QAAA,WAAW,EAAA,WAAA;AACX,QAAA,iBAAiB,EAAA,iBAAA;AACjB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,oBAAoB,EAAA,oBAAA;AACpB,QAAA,mBAAmB,EAAA,mBAAA;KACpB,CAAC,EAAA,IAAA,CAAA,EAAA;AACF,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,aAAa,EAAE;AACb,gBAAA;AACE,oBAAA,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,MAAM,EAAE,qBAAqB,CAAC,WAAW,CAAC;AAC1C,gBAAA,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;AACtD,gBAAA,WAAW,EAAE,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,WAAW,GAAI,EAAE;AAC/B,aAAA;AACF,SAAA;AACD,KAAA,EAAA,KAAA,CAAA,CAAA;AACJ,CAAC,CAAC;AAEK,IAAM,mBAAmB,GAAG,UACjC,MAAgC,EAAA;IAG9B,IAAA,WAAW,GAIT,MAAM,CAAA,WAJG,EACX,EAGE,GAAA,MAAM,CAHoB,iBAAA,EAA5B,iBAAiB,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,QAAQ,GAAA,EAAA,EAC5B,SAAS,GAEP,MAAM,CAAA,SAFC,EACT,mBAAmB,GACjB,MAAM,CAAA,mBADW,CACV;IAEX,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,aAAa,EAAE;AACb,gBAAA;AACE,oBAAA,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC;AAC7C,aAAA;AACF,SAAA;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,qBAAqB,GAAG,UACnC,MAAkC,EAAA;IAGhC,IAAA,WAAW,GAIT,MAAM,CAAA,WAJG,EACX,EAGE,GAAA,MAAM,CAHoB,iBAAA,EAA5B,iBAAiB,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,QAAQ,GAAA,EAAA,EAC5B,SAAS,GAEP,MAAM,CAAA,SAFC,EACT,mBAAmB,GACjB,MAAM,CAAA,mBADW,CACV;IAEX,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,aAAa,EAAE;AACb,gBAAA;AACE,oBAAA,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC;AAC7C,aAAA;AACF,SAAA;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,sBAAsB,GAAG,UACpC,MAAmC,EAAA;IAGjC,IAAA,WAAW,GAIT,MAAM,CAAA,WAJG,EACX,EAGE,GAAA,MAAM,CAHoB,iBAAA,EAA5B,iBAAiB,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,QAAQ,GAAA,EAAA,EAC5B,SAAS,GAEP,MAAM,CAAA,SAFC,EACT,mBAAmB,GACjB,MAAM,CAAA,mBADW,CACV;IACX,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,mBAAmB;AAC5B,YAAA,IAAI,EAAE,WAAW;AACjB,YAAA,aAAa,EAAE;AACb,gBAAA;AACE,oBAAA,KAAK,EAAE,qBAAqB,CAAC,WAAW,CAAC;AACzC,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC;AAC7C,aAAA;AACF,SAAA;KACF,CAAC;AACJ,CAAC,CAAC;AAEK,IAAM,qBAAqB,GAAG,UACnC,MAAkC,EAAA;IAGhC,IAAA,WAAW,GAKT,MAAM,CALG,WAAA,EACX,iBAAiB,GAIf,MAAM,CAJS,iBAAA,EACjB,SAAS,GAGP,MAAM,CAHC,SAAA,EACT,mBAAmB,GAEjB,MAAM,CAAA,mBAFW,EACnB,oBAAoB,GAClB,MAAM,CAAA,oBADY,CACX;IACX,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;AAC5C,KAAA;AACD,IAAA,OAAA,aAAA,CAAA,aAAA,CAAA,EAAA,EACK,sBAAsB,CAAC;AACxB,QAAA,SAAS,EAAA,SAAA;AACT,QAAA,WAAW,EAAA,WAAA;AACX,QAAA,iBAAiB,EAAA,iBAAA;AACjB,QAAA,mBAAmB,EAAA,mBAAA;AACnB,QAAA,oBAAoB,EAAA,oBAAA;AACrB,KAAA,CAAC,EACC,IAAA,CAAA,EAAA,uBAAuB,CAAC,MAAM,CAAC,EAClC,IAAA,CAAA,CAAA;AACJ,CAAC;;AC7Oc,IAAA,WAAW,GACxB;AACE,IAAA,UAAU,EAAQ,gCAAgC;AAClD,IAAA,YAAY,EAAM,kCAAkC;AACpD,IAAA,gBAAgB,EAAE,0CAA0C;AAC5D,IAAA,gBAAgB,EAAE,+CAA+C;EACjE;AAGK,IAAM,gBAAgB,GAC7B;AACE,IAAA,UAAU,EAAQ,gCAAgC;AAClD,IAAA,YAAY,EAAM,kCAAkC;AACpD,IAAA,gBAAgB,EAAE,0CAA0C;AAC5D,IAAA,gBAAgB,EAAE,uCAAuC;CAC1D,CAAC;AAEW,IAAA,eAAe,GAC5B;AACE,IAAA,cAAc,EAAE,OAAO;AACvB,IAAA,cAAc,EAAE,aAAa;AAC7B,IAAA,gBAAgB,EAAE,UAAU;AAC5B,IAAA,gBAAgB,EAAE,YAAY;AAC9B,IAAA,aAAa,EAAE,WAAW;AAC1B,IAAA,oBAAoB,EAAE,cAAc;AACpC,IAAA,qBAAqB,EAAE,cAAc;;;ACmBzC;;;;;;AAMG;AACH,IAAA,iBAAA,kBAAA,YAAA;AAiCE;;;;;;AAMG;AACH,IAAA,SAAA,iBAAA,CAAa,CAAS,EAAA;QAlCd,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;;AAqC7B,QAAA,IAAI,CAAC,KAAK,GAAQ,CAAC,CAAC,KAAK,CAAC;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAS,CAAC,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAK,CAAC,CAAC,QAAQ,CAAC;QAE7B,IAAI,CAAC,SAAS,GAAI,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAO,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,GAAS,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,GAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAQ,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAO,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAK,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAS,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;;AAGpC,QAAA,IAAI,CAAC,MAAM,GAAO,IAAIA,eAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;KAEhG;IAEK,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAhB,UAAiB,IAAkB,EAAA;;;;;;wBAC3B,EAAE,GAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACxC,wBAAA,OAAA,CAAA,CAAA,YAAM,EAAE,CAAA,CAAA;;AAAZ,wBAAA,IAAG,CAAC,EAAQ,CAAA,IAAA,EAAA,EAAE,cAAc,IAAI,SAAS;4BACvC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;;;;;AACvE,KAAA,CAAA;AAED;;;;AAIG;AACG,IAAA,iBAAA,CAAA,SAAA,CAAA,oBAAoB,GAA1B,UAA2B,IAAY,EAAE,GAAW,EAAA;;;;;;wBAE9C,GAAG,GAAiB,EAAE,CAAC;wBAGrB,eAAe,GAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;wBAC7D,eAAe,GAAO,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC;wBACtE,aAAa,GAAS,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;wBACvE,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,IAAI,CAAC,CAAC;wBAE5E,OAAO,GAAG,IAAI,CAAC;wBACf,YAAY,GAAG,IAAI,CAAC;wBAEpB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAE,IAAI,EAAE,eAAe,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,CAAE,CAAC;wBACrG,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC9B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAC7C,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAE,CAAA,CAAA;;wBAArD,IAAI,IAAG,EAAgE,CAAA,IAAA,EAAA,CAAA,CAAC;AACxE,wBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;wBAGjC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AAC3E,wBAAA,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;wBAC9F,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC/B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AACjD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA;;wBAAnD,IAAI,IAAG,EAA8D,CAAA,IAAA,EAAA,CAAA,CAAC;AACtE,wBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAEjC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAClD,wBAAA,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAC,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;wBAC7F,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC/B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA;;wBAAnD,IAAI,IAAG,EAA8D,CAAA,IAAA,EAAA,CAAA,CAAC;AACtE,wBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAEjC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAC1D,wBAAA,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;wBACrF,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAC/B,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;AAC7D,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA;;wBAAnD,IAAI,IAAG,EAA8D,CAAA,IAAA,EAAA,CAAA,CAAC;AACtE,wBAAA,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAEjC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;wBAC5C,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA,CAAA;;AAA7C,wBAAA,EAAE,GAAG,EAAwC,CAAA,IAAA,EAAA,CAAA;AACjD,wBAAA,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,cAAc,CAAC;AACvC,wBAAA,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;wBACjC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAE,CAAC;;AAErD,wBAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAC,CAAA;;;;AACZ,KAAA,CAAA;AAGD;;;;AAIG;AACH;;;AAGI;AACE,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAxB,UAAyB,IAAY,EAAE,GAAW,EAAA;;;;;;wBAE5C,QAAQ,GAAG,KAAK,CAAC;wBACjB,QAAQ,GAAG,IAAI,CAAC;AACd,wBAAA,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAClC,IAAI,EACJ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAE,IAAI,CAAE,EACxC,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAE,IAAI,CAAE,EAClD,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,CACnB,CAAC;AAES,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA;;AAAlD,wBAAA,IAAI,GAAG,EAA2C,CAAA,IAAA,EAAA,CAAA;wBACtD,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC7B,EAAE,GAAgB,EAAE,CAAC;AACzB,wBAAA,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AACxC,wBAAA,EAAA,GAAA,EAAE,CAAA;wBAAgB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA,CAAA;;wBAAvE,EAAG,CAAA,WAAW,GAAG,CAAC,EAAA,CAAA,IAAA,EAAqD,EAAE,QAAQ,EAAE,CAAC;AACpF,wBAAA,OAAA,CAAA,CAAA,aAAO,EAAE,CAAC,CAAA;;;;AAEX,KAAA,CAAA;IAEK,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAd,UAAe,IAAgB,EAAA;;;;;;4BAGjB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAA;;AAA/D,wBAAA,GAAG,GAAG,EAAyD,CAAA,IAAA,EAAA,CAAA;AACrE,wBAAA,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,CAAC,CAAC;4BAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACtF,wBAAA,KAAK,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAE,GAAG,CAAC;AAE1B,wBAAA,CAAC,GAAiB;4BACpB,OAAO,EAAG,IAAI,CAAC,MAAM;4BACrB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAE,IAAI,CAAC,MAAM,CAAE;4BACzD,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE,4BAAA,OAAO,EAAG,GAAG;;;AAGb,4BAAA,cAAc,EAAE;AACd,gCAAA,EAAC,KAAK,EAAE,WAAW,EAAI,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC;AAC3D,gCAAA,EAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC;gCACzD,EAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAC;AAChD,6BAAA;AACD,4BAAA,YAAY,EAAE,EAAE;4BAChB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,aAAa,EAAE,IAAI,CAAC,aAAa;yBAClC,CAAC;wBACS,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAArC,wBAAA,IAAI,GAAG,EAA8B,CAAA,IAAA,EAAA,CAAA;AACzC,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,CAAA;;;;AACb,KAAA,CAAA;IAEK,iBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAzB,UAA0B,IAAY,EAAE,GAAW,EAAE,GAAY,EAAE,GAAY,EAAA;;;;;;wBAEzE,QAAQ,GAAG,IAAI,CAAC;wBAChB,QAAQ,GAAG,IAAI,CAAC;wBACd,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAClC,IAAI,EACJ,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAH,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAE,IAAI,CAAE,EAC/C,GAAG,aAAH,GAAG,KAAA,KAAA,CAAA,GAAH,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAE,IAAI,CAAE,EACzD,QAAQ,EAAE,QAAQ,EAClB,mBAAmB,CACpB,CAAC;AAES,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA;;AAAlD,wBAAA,IAAI,GAAG,EAA2C,CAAA,IAAA,EAAA,CAAA;wBAEtD,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;wBAC9D,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAE7B,EAAE,GAAgB,EAAE,CAAC;AACzB,wBAAA,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AACxC,wBAAA,EAAA,GAAA,EAAE,CAAA;wBAAgB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA,CAAA;;wBAAvE,EAAG,CAAA,WAAW,GAAG,CAAC,EAAA,CAAA,IAAA,EAAqD,EAAE,QAAQ,EAAE,CAAC;AACpF,wBAAA,OAAA,CAAA,CAAA,aAAO,EAAE,CAAC,CAAA;;;;AAEX,KAAA,CAAA;IAEK,iBAAS,CAAA,SAAA,CAAA,SAAA,GAAf,UAAgB,IAAiB,EAAA;;;;;;4BAGrB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAA;;AAAhE,wBAAA,GAAG,GAAG,EAA0D,CAAA,IAAA,EAAA,CAAA;AACtE,wBAAA,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,CAAC,CAAC;4BAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAEzF,wBAAA,CAAC,GAAiB;4BACpB,OAAO,EAAG,IAAI,CAAC,MAAM;AACrB,4BAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAE,IAAI,CAAC,MAAM,CAAE;4BAC1E,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC;AACjE,4BAAA,OAAO,EAAG,GAAG;;;AAGb,4BAAA,cAAc,EAAE;AACd,gCAAA,EAAC,KAAK,EAAE,MAAM,EAAO,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,EAAC;AAC1D,gCAAA,EAAC,KAAK,EAAE,WAAW,EAAK,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC;AAC5D,gCAAA,EAAC,KAAK,EAAE,UAAU,EAAG,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,GAAG,CAAC,EAAC;AAC5D,6BAAA;AACD,4BAAA,YAAY,EAAE,EAAE;4BAChB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,aAAa,EAAE,IAAI,CAAC,aAAa;yBAClC,CAAC;wBACS,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAArC,wBAAA,IAAI,GAAG,EAA8B,CAAA,IAAA,EAAA,CAAA;AACzC,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,CAAA;;;;AACX,KAAA,CAAA;IAeK,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAjB,UAAkB,IAAmB,EAAA;;;;;;;wBAE7B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1D,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACvE,OAAO,GAAG,CAAC,CAAC,CAAC;wBACb,cAAc,GAAoB,EAAE,CAAC;AACrC,wBAAA,YAAY,GAAsB;AACpC,4BAAA,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAO,IAAI,CAAC,MAAM,CAAC,EAAC;AACvD,4BAAA,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAQ,IAAI,CAAC,KAAK,CAAE,EAAC;AAEvD,4BAAA,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAE,EAAC;AAC7D,4BAAA,EAAE,GAAG,EAAE,KAAK,EAAU,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,GAAG,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAE,EAAC;AAEzD,4BAAA,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAE,EAAC;AACvD,4BAAA,EAAE,GAAG,EAAE,WAAW,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAE,EAAC;AACxD,4BAAA,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAE,EAAC;AAC3D,4BAAA,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAE,EAAC;AAC3D,4BAAA,EAAE,GAAG,EAAE,OAAO,EAAK,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAK,EAAC;AAC3D,4BAAA,EAAE,GAAG,EAAE,OAAO,EAAK,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAK,EAAC;;AAG3D,4BAAA,EAAE,GAAG,EAAE,aAAa,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAM,EAAC;AACrE,4BAAA,EAAE,GAAG,EAAE,YAAY,EAAO,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAO,EAAC;AACrE,4BAAA,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAE,EAAC;AACrE,4BAAA,EAAE,GAAG,EAAE,UAAU,EAAS,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAK,EAAC;AACjE,4BAAA,EAAE,GAAG,EAAE,aAAa,EAAM,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAE,EAAC;yBAClE,CAAC;AAEE,wBAAA,CAAC,GAAiB;4BACpB,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,4BAAA,cAAc,EAAE,cAAc;AAC9B,4BAAA,YAAY,EAAE,YAAY;AAC1B,4BAAA,QAAQ,EAAE,QAAQ;AAClB,4BAAA,QAAQ,EAAE,QAAQ;AAClB,4BAAA,OAAO,EAAE,OAAO;4BAChB,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;yBAC9C,CAAA;wBACU,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAArC,wBAAA,IAAI,GAAG,EAA8B,CAAA,IAAA,EAAA,CAAA;AACzC,wBAAA,IAAI,CAAC,gBAAgB,GAAI,IAAI,CAAC,cAAc,CAAC;AAC7C,wBAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,CAAA;;;;AAEf,KAAA,CAAA;AACA;;;;AAIE;IACG,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAhB,UAAiB,IAAgB,EAAA;;;;;;;wBAEzB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC1D,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACpE,OAAO,GAAG,CAAC,CAAC,CAAC;wBACb,cAAc,GAAW,EAAG,CAAC;AAC7B,wBAAA,YAAY,GAAG;AACjB,4BAAA,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAC;AAC/C,4BAAA,EAAC,KAAK,EAAE,MAAM,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAC;AAC9C,4BAAA,EAAC,KAAK,EAAE,SAAS,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAG,IAAI,CAAC,OAAO,CAAC,EAAC;AACrD,4BAAA,EAAC,KAAK,EAAE,OAAO,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,aAAa,CAAE,EAAC;yBAClE,CAAC;AACF,wBAAA,SAAS;AACL,wBAAA,CAAC,GAAiB;4BACpB,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,4BAAA,cAAc,EAAE,cAAc;AAC9B,4BAAA,YAAY,EAAE,YAAY;AAC1B,4BAAA,QAAQ,EAAE,QAAQ;AAClB,4BAAA,QAAQ,EAAE,QAAQ;AAClB,4BAAA,OAAO,EAAE,OAAO;4BAChB,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;yBAC9C,CAAA;;;;wBAGiB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAA1C,wBAAA,QAAQ,GAAI,EAA8B,CAAA,IAAA,EAAA,CAAA;AAC9C,wBAAA,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC;AACjD,wBAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAC7B,wBAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACtB,wBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,CAAA;;;wBAGZ,UAAU,GAAG,qEAAqE,CAAC;AACnF,wBAAA,GAAG,GAAI,GAAW,CAAC,OAAO,CAAC;AAC/B,wBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;wBACtC,IAAI,GAAG,IAAI,UAAU;AAAE,4BAAA,MAAM,GAAC,CAAC;AAE3B,wBAAA,UAAU,GAAwB;4BAClC,IAAI,EAAE,IAAI,CAAC,OAAO;AAClB,4BAAA,eAAe,EAAE,QAAQ;AACzB,4BAAA,WAAW,EAAE,QAAQ;AACrB,4BAAA,aAAa,EAAE,WAAW;AAC1B,4BAAA,aAAa,EAAE,IAAI;AACnB,4BAAA,eAAe,EAAE,EAAE;4BACnB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AAC7C,4BAAA,YAAY,EAAE,IAAI;AAClB,4BAAA,OAAO,EAAM,IAAI;AACjB,4BAAA,QAAQ,EAAK,KAAK;AAClB,4BAAA,QAAQ,EAAK,KAAK;AAClB,4BAAA,UAAU,EAAG,QAAQ;yBACxB,CAAC;wBAEQ,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA,CAAA;;AAApD,wBAAA,GAAG,GAAG,EAA8C,CAAA,IAAA,EAAA,CAAA;;wBAGxD,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAA;wBAChE,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;;;wBAId,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAA1C,wBAAA,QAAQ,GAAI,EAA8B,CAAA,IAAA,EAAA,CAAA;AAC9C,wBAAA,QAAQ,CAAC,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC;AACjD,wBAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AAC5B,wBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,CAAA;;;wBAEZ,KAAO,GAAA,GAAW,CAAC,OAAO,CAAC;AAC/B,wBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,KAAG,CAAC,CAAC;AAErD,wBAAA,MAAM,GAAC,CAAC;;;;;;;AAGf,KAAA,CAAA;IAEK,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAhB,UAAiB,IAAkB,EAAA;;;;;;4BAEnB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,CAAA;;AAAhD,wBAAA,GAAG,GAAG,EAA0C,CAAA,IAAA,EAAA,CAAA;AACtD,wBAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AACnE,wBAAA,IAAI,GAAG;4BACT,EAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,mCAAI,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC;4BAC5E,EAAC,KAAK,EAAE,MAAM,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,mCAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC;4BAC1E,EAAC,KAAK,EAAE,SAAS,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,mCAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAC;4BACpF,EAAC,KAAK,EAAE,OAAO,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAG,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,mCAAE,GAAG,CAAC,YAAY,CAAC,KAAK,CAAE,EAAC;yBACjF,CAAC;AAEI,wBAAA,CAAC,GAAmB;4BACtB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,IAAI,CAAC,MAAM;4BAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,4BAAA,QAAQ,EAAE,IAAI;4BACd,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAC,MAAM;4BAC9B,aAAa,EAAE,IAAI,CAAC,aAAa;yBAElC,CAAC;wBACQ,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA;;AAAtC,wBAAA,GAAG,GAAG,EAAgC,CAAA,IAAA,EAAA,CAAA;AAC1C,wBAAA,GAAG,CAAC,eAAe,GAAC,GAAG,CAAC,gBAAgB,CAAC;AACzC,wBAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7B,wBAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AACvD,wBAAA,OAAA,CAAA,CAAA,aAAO,GAAG,CAAC,CAAA;;;;AACd,KAAA,CAAA;AAED;;AAEG;IACG,iBAAa,CAAA,SAAA,CAAA,aAAA,GAAnB,UAAoB,IAAqB,EAAA;;;;;;AACnC,wBAAA,CAAC,GAAiB;4BACpB,OAAO,EAAG,IAAI,CAAC,OAAO;4BACtB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAE,IAAI,CAAC,OAAO,CAAE;4BAC1D,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;4BACjE,OAAO,EAAE,CAAC,CAAC;4BACX,cAAc,EAAE,IAAI,CAAC,cAAc;4BACnC,YAAY,EAAE,IAAI,CAAC,YAAY;4BAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,aAAa,EAAE,IAAI,CAAC,aAAa;yBAClC,CAAA;;;;wBAGiB,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAA1C,wBAAA,QAAQ,GAAI,EAA8B,CAAA,IAAA,EAAA,CAAA;AAC9C,wBAAA,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC;wBAChD,IAAI,IAAI,CAAC,KAAK,EAAE;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAAC,4BAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAAE,yBAAA;AACxE,wBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,CAAA;;;wBAEZ,UAAU,GAAG,qEAAqE,CAAC;AACnF,wBAAA,GAAG,GAAI,GAAW,CAAC,OAAO,CAAC;AAC/B,wBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;wBACtC,IAAI,GAAG,IAAI,UAAU;AAAE,4BAAA,MAAM,GAAC,CAAC;AAErB,wBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA,CAAA;;AAAvE,wBAAA,GAAG,GAAG,EAAiE,CAAA,IAAA,EAAA,CAAA;wBAC3E,IAAG,IAAI,CAAC,KAAK,EAAE;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AAAC,4BAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAAE,yBAAA;;;;wBAGpE,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAA1C,wBAAA,QAAQ,GAAI,EAA8B,CAAA,IAAA,EAAA,CAAA;AAC9C,wBAAA,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,cAAc,CAAC;AAChD,wBAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACnC,wBAAA,OAAA,CAAA,CAAA,aAAO,QAAQ,CAAC,CAAA;;;wBAEZ,KAAO,GAAA,GAAW,CAAC,OAAO,CAAC;AAC/B,wBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,GAAG,KAAG,CAAC,CAAC;AACrD,wBAAA,MAAM,GAAC,CAAC;;;;;;;AAIb,KAAA,CAAA;IAEK,iBAAoB,CAAA,SAAA,CAAA,oBAAA,GAA1B,UAA4B,IAAmB,EAAA;;;;;;wBAC7C,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACrD,wBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAEd,wBAAA,CAAC,GAAmB;4BACtB,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,aAAa,EAAE,IAAI,CAAC,aAAa;yBAClC,CAAC;wBAEW,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA,CAAA;;AAAzC,wBAAA,KAAK,GAAI,EAA+C,CAAA,IAAA,EAAA,CAAA;wBAC5D,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAE9B,QAAQ,GAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAE;;AAGtF;;;;AAIkD;;AAGlD,wBAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAG,QAAQ,CAAC,CAAC;AAC/C,wBAAA,CAAC,GAAgB;4BACnB,KAAK,EAAE,IAAI,CAAC,UAAU;AACtB,4BAAA,GAAG,EAAG,QAAQ;4BACd,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,aAAa,EAAE,IAAI,CAAC,aAAa;yBAClC,CAAC;wBAEU,OAAM,CAAA,CAAA,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAA;;AAArC,wBAAA,KAAK,GAAG,EAA6B,CAAA,IAAA,EAAA,CAAA;wBACzC,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAElC,wBAAA,OAAA,CAAA,CAAA,aAAO,KAAK,CAAC,CAAA;;;;AACd,KAAA,CAAA;AAED;;;;AAIC;IACK,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAjB,UAAkB,OAAsB,EAAA;;;;;;wBAChC,GAAG,GAAG,IAAII,UAAW,CAAC,gCAAgC,EAAE,YAAY,EAAEL,OAAK,CAAC,CAAC;;;;AAG3E,wBAAA,EAAE,GAAG,OAAO,CAAC,IAAI,GAAG,eAAe,GAAG,gBAAgB,CAAC;AACrD,wBAAA,OAAA,CAAA,CAAA,YAAM,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAA,CAAA;;AAA1B,wBAAA,CAAC,GAAG,EAAsB,CAAA,IAAA,EAAA,CAAA;AACtB,wBAAA,OAAA,CAAA,CAAA,YAAM,CAAC,CAAC,IAAI,EAAE,CAAA,CAAA;;AAAlB,wBAAA,CAAC,GAAG,EAA6B,CAAA,IAAA,EAAA,CAAA;AACrC,wBAAA,OAAA,CAAA,CAAA,aAAO,CAAC,CAAC,CAAA;;;wBAGT,IAAG,IAAI,CAAC,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,GAAC,CAAC,CAAC;wBAEvD,IAAI,GAAC,YAAY,QAAQ;4BACvB,IAAG,IAAI,CAAC,KAAK;AAAE,gCAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;;AAGhE,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,aAAO,EAAiB,CAAC,CAAA;;;;AAE1B,KAAA,CAAA;;;IAKO,iBAAe,CAAA,SAAA,CAAA,eAAA,GAAvB,UAA2B,MAAS,EAAA;AAClC,QAAA,OAAA,QAAA,CAAA,EACE,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EACzD,mBAAmB,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAA,EACpD,MAAM,CACT,CAAA;KACH,CAAA;AAEa,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAA7B,UAA8B,OAA4B,EAAE,aAAqB,EAAA;;;;;AAC9D,oBAAA,KAAA,CAAA,EAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC5C,OAAO,EACP,EAAE,EACF,CAAC,aAAa,CAAC,CAChB,CAAA,CAAA;;AAJK,wBAAA,QAAQ,GAAG,EAIE,CAAA,IAAA,EAAA,CAAA;wBACnB,OAAO,CAAA,CAAA,aAAA;gCACL,IAAI,EAAE,QAAQ,CAAC,cAAc;6BAC9B,CAAC,CAAA;;;;AACH,KAAA,CAAA;;AAGD;;;AAGG;AACG,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAnB,UAAoB,MAA6B,EAAE,GAAW,EAAA;;;;gBACtD,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBACtE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;;;AAC3C,KAAA,CAAA;AAED;;;AAGG;AACG,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAArB,UAAsB,MAAwB,EAAE,GAAW,EAAA;;;;gBACnD,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;;;AAC3C,KAAA,CAAA;AAED;;;AAGG;AACG,IAAA,iBAAA,CAAA,SAAA,CAAA,oBAAoB,GAA1B,UAA2B,MAAyB,EAAE,GAAW,EAAA;;;;gBACzD,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBAClE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;;;AAC3C,KAAA,CAAA;AAED;;;AAGG;AACG,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAxB,UAAyB,MAA2B,EAAE,GAAW,EAAA;;;;gBACzD,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;;;AAC3C,KAAA,CAAA;AAED;;;AAGG;AACG,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAlB,UAAmB,MAA4B,EAAE,GAAW,EAAA;;;;gBACpD,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;;;AAC3C,KAAA,CAAA;AAED;;;;AAIG;AACG,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAjB,UAAkB,MAA2B,EAAE,GAAW,EAAA;;;;gBAClD,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;;;AAC3C,KAAA,CAAA;AAGI,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAnB,YAAA;;AAAwB,YAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAA;;AAAE,KAAA,CAAA;IACzD,iBAAa,CAAA,SAAA,CAAA,aAAA,GAAnB,UAAoB,IAAkB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC/E,iBAAM,CAAA,SAAA,CAAA,MAAA,GAAZ,UAAa,IAAc,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,CAAA;;AAAE,KAAA,CAAA;IAC5D,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAtB,UAAuB,IAAwB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC3F,iBAAc,CAAA,SAAA,CAAA,cAAA,GAApB,UAAqB,IAAgB,EAAA;;YAAK,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAEhF,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAtB,UAAuB,IAAwB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAC,KAAA,CAAA;IACxF,iBAAS,CAAA,SAAA,CAAA,SAAA,GAAf,UAAgB,IAAiB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IACpE,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAjB,UAAkB,IAAmB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;;IAG1E,iBAAY,CAAA,SAAA,CAAA,YAAA,GAAlB,UAAmB,IAAoB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC5E,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAxB,UAAyB,IAAoB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAClF,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAvB,UAAwB,IAAoB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAEtF,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAhB,UAAiB,IAAkB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IACtE,iBAAS,CAAA,SAAA,CAAA,SAAA,GAAf,UAAgB,IAAiB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IACnE,iBAAW,CAAA,SAAA,CAAA,WAAA,GAAjB,UAAkB,IAAmB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAEzE,iBAAS,CAAA,SAAA,CAAA,SAAA,GAAf,UAAgB,IAAiB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAC,KAAA,CAAA;IACjE,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAvB,UAAwB,IAAyB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC1F,iBAA8B,CAAA,SAAA,CAAA,8BAAA,GAApC,UAAqC,IAAsC,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IACjI,iBAAsB,CAAA,SAAA,CAAA,sBAAA,GAA5B,UAA6B,IAA8B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAEzG,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAxB,UAAyB,IAA0B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC7F,iBAA2B,CAAA,SAAA,CAAA,2BAAA,GAAjC,UAAkC,IAA0B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC/G,iBAAuB,CAAA,SAAA,CAAA,uBAAA,GAA7B,UAA8B,IAA0B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAEvG,iBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAxB,UAAyB,IAA0B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC7F,iBAA2B,CAAA,SAAA,CAAA,2BAAA,GAAjC,UAAkC,IAA0B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAC/G,iBAAuB,CAAA,SAAA,CAAA,uBAAA,GAA7B,UAA8B,IAA0B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAC,KAAA,CAAA;IAEtG,iBAAc,CAAA,SAAA,CAAA,cAAA,GAApB,UAAqB,IAAuB,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA,CAAA;;AAAE,KAAA,CAAA;IACjF,iBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAzB,UAA0B,IAA8B,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;AAEnG,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAd,UAAe,OAAc,EAAE,WAAqB,EAAE,YAAsB,EAAA;;AAAO,YAAA,OAAA,CAAA,CAAA,aAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IAEjJ,iBAAY,CAAA,SAAA,CAAA,YAAA,GAAlB,UAAmB,IAAa,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IACpE,iBAAa,CAAA,SAAA,CAAA,aAAA,GAAnB,UAAoB,IAAa,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;IACtE,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAvB,UAAwB,IAAkB,EAAA;;YAAG,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;AAElF,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAxB,UAAyB,IAAY,EAAE,CAAS,EAAA;;YAAI,OAAO,CAAA,CAAA,aAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;;AAAE,KAAA,CAAA;;;AAtmB3F,IAAA,iBAAA,CAAA,QAAQ,GAAG;AAChB,QAAA,eAAe,EAAA,eAAA;AACf,QAAA,WAAW,EAAA,WAAA;AACX,QAAA,gBAAgB,EAAA,gBAAA;KACjB,CAAC;AAEK,IAAA,iBAAA,CAAA,YAAY,GAAW;AAC5B,QAAA,QAAQ,EAAE,EAAI,CAAC,QAAQ,CAAC,eAAe;AACvC,QAAA,IAAI,EAAE,EAAI,CAAC,QAAQ,CAAC,WAAW;AAC/B,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,QAAQ,EAAE,KAAK;KAChB,CAAA;;AAwNoB,IAAA,iBAAA,CAAA,WAAW,GAAG;AACjC,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,KAAK,EAAE,OAAO;;KAEf,CAAC;IA2XJ,OAAC,iBAAA,CAAA;AAAA,CAjnBD,EAinBC;;;;"}