@seedprotocol/sdk 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ArweaveClient-2RMCxfNZ.js +13 -0
- package/dist/ArweaveClient-2RMCxfNZ.js.map +1 -0
- package/dist/ArweaveClient-COlwyYTF.js +13 -0
- package/dist/ArweaveClient-COlwyYTF.js.map +1 -0
- package/dist/Db-CRWMiKY9.js +384 -0
- package/dist/Db-CRWMiKY9.js.map +1 -0
- package/dist/Db-G5dIgZv-.js +81 -0
- package/dist/Db-G5dIgZv-.js.map +1 -0
- package/dist/EasClient-CFnb5g-r.js +13 -0
- package/dist/EasClient-CFnb5g-r.js.map +1 -0
- package/dist/EasClient-CO5puCWa.js +10 -0
- package/dist/EasClient-CO5puCWa.js.map +1 -0
- package/dist/FileManager-BOixZyex.js +50 -0
- package/dist/FileManager-BOixZyex.js.map +1 -0
- package/dist/FileManager-gKGTTa4s.js +1045 -0
- package/dist/FileManager-gKGTTa4s.js.map +1 -0
- package/dist/Item-BD2_tuda.js +34 -0
- package/dist/Item-BD2_tuda.js.map +1 -0
- package/dist/ItemProperty-CjcrzEmg.js +33 -0
- package/dist/ItemProperty-CjcrzEmg.js.map +1 -0
- package/dist/QueryClient-W4slRa7O.js +22 -0
- package/dist/QueryClient-W4slRa7O.js.map +1 -0
- package/dist/QueryClient-ZUsZ1Qxq.js +22 -0
- package/dist/QueryClient-ZUsZ1Qxq.js.map +1 -0
- package/dist/bin.js +7 -6
- package/dist/bin.js.map +1 -1
- package/dist/constants-C-6Pg8FW.js +235 -0
- package/dist/constants-C-6Pg8FW.js.map +1 -0
- package/dist/index-BxAVepOO.js +25 -0
- package/dist/index-BxAVepOO.js.map +1 -0
- package/dist/index-D-O-gmXo.js +7930 -0
- package/dist/index-D-O-gmXo.js.map +1 -0
- package/dist/main.js +4 -5
- package/dist/main.js.map +1 -1
- package/dist/scripts/bin.d.ts.map +1 -0
- package/dist/seed.schema.config-DmTl3a9U.js +73 -0
- package/dist/seed.schema.config-DmTl3a9U.js.map +1 -0
- package/dist/src/Item/BaseItem.d.ts.map +1 -0
- package/dist/src/Item/index.d.ts.map +1 -0
- package/dist/src/Item/queries.d.ts.map +1 -0
- package/dist/src/Item/service/actors/fetchDataFromEas.d.ts.map +1 -0
- package/dist/src/Item/service/actors/hydrateExistingItem.d.ts.map +1 -0
- package/dist/src/Item/service/actors/hydrateNewItem.d.ts.map +1 -0
- package/dist/src/Item/service/actors/initialize.d.ts.map +1 -0
- package/dist/src/Item/service/actors/reload.d.ts.map +1 -0
- package/dist/src/Item/service/actors/saveDataToDb.d.ts.map +1 -0
- package/dist/src/Item/service/actors/waitForDb.d.ts.map +1 -0
- package/dist/src/Item/service/itemMachineSingle.d.ts.map +1 -0
- package/dist/src/ItemProperty/BaseItemProperty.d.ts.map +1 -0
- package/dist/src/ItemProperty/index.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/index.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/initialize.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/actors/waitForDb.d.ts.map +1 -0
- package/dist/src/ItemProperty/service/propertyMachine.d.ts.map +1 -0
- package/dist/src/browser/Item/Item.d.ts.map +1 -0
- package/dist/src/browser/Item/index.d.ts.map +1 -0
- package/dist/src/browser/ItemProperty/ItemProperty.d.ts.map +1 -0
- package/dist/src/browser/ItemProperty/index.d.ts.map +1 -0
- package/dist/src/browser/db/Db.d.ts.map +1 -0
- package/dist/src/browser/db/index.d.ts.map +1 -0
- package/dist/src/browser/db/sqlWasmClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/ArweaveClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/EasClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/FileManager.d.ts +25 -0
- package/dist/src/browser/helpers/FileManager.d.ts.map +1 -0
- package/dist/src/browser/helpers/QueryClient.d.ts.map +1 -0
- package/dist/src/browser/helpers/index.d.ts.map +1 -0
- package/dist/src/browser/index.d.ts.map +1 -0
- package/dist/src/browser/react/OPFSImage.d.ts +7 -0
- package/dist/src/browser/react/OPFSImage.d.ts.map +1 -0
- package/dist/src/browser/react/db.d.ts.map +1 -0
- package/dist/src/browser/react/index.d.ts.map +1 -0
- package/dist/src/browser/react/item.d.ts.map +1 -0
- package/dist/src/browser/react/property.d.ts.map +1 -0
- package/dist/src/browser/react/services.d.ts.map +1 -0
- package/dist/src/browser/react/trash.d.ts.map +1 -0
- package/dist/src/browser/seed.d.ts.map +1 -0
- package/dist/src/browser/workers/FileDownloader.d.ts.map +1 -0
- package/dist/src/browser/workers/ImageResizer.d.ts.map +1 -0
- package/dist/src/browser/workers/content-hash.d.ts.map +1 -0
- package/dist/src/browser/workers/filesDownload.d.ts.map +1 -0
- package/dist/src/browser/workers/imageResize.d.ts.map +1 -0
- package/dist/src/client/BaseClientManager.d.ts.map +1 -0
- package/dist/src/client/ClientManager.d.ts +27 -0
- package/dist/src/client/ClientManager.d.ts.map +1 -0
- package/dist/src/client/actions/setAddresses.d.ts.map +1 -0
- package/dist/src/client/actors/initialize.d.ts.map +1 -0
- package/dist/src/client/actors/saveAppState.d.ts.map +1 -0
- package/dist/src/client/clientManagerMachine.d.ts.map +1 -0
- package/dist/src/client/index.d.ts.map +1 -0
- package/dist/src/db/Db/BaseDb.d.ts.map +1 -0
- package/dist/src/db/Db/index.d.ts.map +1 -0
- package/dist/src/db/configs/browser.app.db.config.d.ts.map +1 -0
- package/dist/src/db/configs/node.app.db.config.d.ts.map +1 -0
- package/dist/src/db/configs/seed.schema.config.d.ts.map +1 -0
- package/dist/src/db/read/getExistingItem.d.ts.map +1 -0
- package/dist/src/db/read/getItem.d.ts.map +1 -0
- package/dist/src/db/read/getItemData.d.ts.map +1 -0
- package/dist/src/db/read/getItemProperties.d.ts.map +1 -0
- package/dist/src/db/read/getItemProperty.d.ts.map +1 -0
- package/dist/src/db/read/getItems.d.ts.map +1 -0
- package/dist/src/db/read/getMetadata.d.ts.map +1 -0
- package/dist/src/db/read/getModelSchemas.d.ts.map +1 -0
- package/dist/src/db/read/getPropertyData.d.ts.map +1 -0
- package/dist/src/db/read/getPublishPayload.d.ts.map +1 -0
- package/dist/src/db/read/getPublishUploads.d.ts.map +1 -0
- package/dist/src/db/read/getRelationValueData.d.ts.map +1 -0
- package/dist/src/db/read/getSchemaUidForModel.d.ts.map +1 -0
- package/dist/src/db/read/getSeedData.d.ts.map +1 -0
- package/dist/src/db/read/getStorageTransactionIdForSeedUid.d.ts.map +1 -0
- package/dist/src/db/read/getVersionData.d.ts.map +1 -0
- package/dist/src/db/read/getVersionsForVersionUids.d.ts.map +1 -0
- package/dist/src/db/read/subqueries/metadataLatest.d.ts.map +1 -0
- package/dist/src/db/read/subqueries/versionData.d.ts.map +1 -0
- package/dist/src/db/write/createMetadata.d.ts.map +1 -0
- package/dist/src/db/write/createNewItem.d.ts.map +1 -0
- package/dist/src/db/write/createSeed.d.ts.map +1 -0
- package/dist/src/db/write/createSeeds.d.ts.map +1 -0
- package/dist/src/db/write/createVersion.d.ts.map +1 -0
- package/dist/src/db/write/deleteItem.d.ts.map +1 -0
- package/dist/src/db/write/recoverDeletedItem.d.ts.map +1 -0
- package/dist/src/db/write/saveAppState.d.ts.map +1 -0
- package/dist/src/db/write/saveMetadata.d.ts.map +1 -0
- package/dist/src/db/write/updateItemPropertyValue.d.ts.map +1 -0
- package/dist/src/db/write/updateMetadata.d.ts.map +1 -0
- package/dist/src/eventBus.d.ts.map +1 -0
- package/dist/src/events/files/download.d.ts.map +1 -0
- package/dist/src/events/files/index.d.ts.map +1 -0
- package/dist/src/events/index.d.ts.map +1 -0
- package/dist/src/events/item/create.d.ts.map +1 -0
- package/dist/src/events/item/index.d.ts.map +1 -0
- package/dist/src/events/item/publish.d.ts.map +1 -0
- package/dist/src/events/item/request.d.ts.map +1 -0
- package/dist/src/events/item/requestAll.d.ts.map +1 -0
- package/dist/src/events/item/syncDbWithEas.d.ts.map +1 -0
- package/dist/src/events/services/allItems.d.ts.map +1 -0
- package/dist/src/events/services/index.d.ts.map +1 -0
- package/dist/src/graphql/fragments/Attestation.d.ts.map +1 -0
- package/dist/src/graphql/fragments/Schema.d.ts.map +1 -0
- package/dist/src/graphql/fragments/index.d.ts.map +1 -0
- package/dist/src/graphql/gql/fragment-masking.d.ts.map +1 -0
- package/dist/src/graphql/gql/gql.d.ts.map +1 -0
- package/dist/src/graphql/gql/graphql.d.ts.map +1 -0
- package/dist/src/graphql/gql/index.d.ts.map +1 -0
- package/dist/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +1 -0
- package/dist/src/helpers/ArweaveClient/index.d.ts.map +1 -0
- package/dist/src/helpers/ArweaveClient/queries.d.ts.map +1 -0
- package/dist/src/helpers/EasClient/BaseEasClient.d.ts.map +1 -0
- package/dist/src/helpers/EasClient/index.d.ts.map +1 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts +20 -0
- package/dist/src/helpers/FileManager/BaseFileManager.d.ts.map +1 -0
- package/dist/src/helpers/FileManager/index.d.ts.map +1 -0
- package/dist/src/helpers/QueryClient/BaseQueryClient.d.ts.map +1 -0
- package/dist/src/helpers/QueryClient/index.d.ts.map +1 -0
- package/dist/src/helpers/constants.d.ts.map +1 -0
- package/dist/src/helpers/db.d.ts.map +1 -0
- package/dist/src/helpers/environment.d.ts.map +1 -0
- package/dist/src/helpers/files.d.ts.map +1 -0
- package/dist/src/helpers/getSchemaForItemProperty.d.ts.map +1 -0
- package/dist/src/helpers/getSegmentedItemProperties.d.ts.map +1 -0
- package/dist/src/helpers/index.d.ts.map +1 -0
- package/dist/src/helpers/updateMachineContext.d.ts.map +1 -0
- package/dist/src/index.d.ts +8 -5
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/interfaces/IDb.d.ts.map +1 -0
- package/dist/src/interfaces/IEasClient.d.ts.map +1 -0
- package/dist/src/interfaces/IItem.d.ts.map +1 -0
- package/dist/src/interfaces/IItemProperty.d.ts.map +1 -0
- package/dist/src/interfaces/IQueryClient.d.ts.map +1 -0
- package/dist/src/interfaces/index.d.ts.map +1 -0
- package/dist/src/node/Item/Item.d.ts.map +1 -0
- package/dist/src/node/ItemProperty/ItemProperty.d.ts.map +1 -0
- package/dist/src/node/codegen/drizzle.d.ts.map +1 -0
- package/dist/src/node/codegen/index.d.ts.map +1 -0
- package/dist/src/node/codegen/ts-to-proto.d.ts.map +1 -0
- package/dist/src/node/constants.d.ts.map +1 -0
- package/dist/src/node/db/Db.d.ts.map +1 -0
- package/dist/src/node/db/index.d.ts.map +1 -0
- package/dist/src/node/db/node.app.db.config.d.ts.map +1 -0
- package/dist/src/node/helpers/ArweaveClient.d.ts.map +1 -0
- package/dist/src/node/helpers/EasClient.d.ts.map +1 -0
- package/dist/src/node/helpers/FileManager.d.ts.map +1 -0
- package/dist/src/node/helpers/QueryClient.d.ts.map +1 -0
- package/dist/src/node/helpers/index.d.ts.map +1 -0
- package/dist/src/node/index.d.ts.map +1 -0
- package/dist/src/node/seed.d.ts.map +1 -0
- package/dist/src/node/webpack/index.d.ts.map +1 -0
- package/dist/src/schema/file/download/actors.d.ts.map +1 -0
- package/dist/src/schema/file/download/index.d.ts.map +1 -0
- package/dist/src/schema/file/fetchAll/actors.d.ts.map +1 -0
- package/dist/src/schema/file/fetchAll/index.d.ts.map +1 -0
- package/dist/src/schema/file/queries.d.ts.map +1 -0
- package/dist/src/schema/image/queries.d.ts.map +1 -0
- package/dist/src/schema/index.d.ts.map +1 -0
- package/dist/src/schema/model/index.d.ts.map +1 -0
- package/dist/src/schema/property/index.d.ts.map +1 -0
- package/dist/src/seedSchema/AppStateSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/ConfigSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/MetadataSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/ModelSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/ModelUidSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/PropertyUidSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/SeedSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/VersionSchema.d.ts.map +1 -0
- package/dist/src/seedSchema/index.d.ts.map +1 -0
- package/dist/src/services/allItems/actors/fetchDbData.d.ts.map +1 -0
- package/dist/src/services/allItems/actors/fetchRelatedItems.d.ts.map +1 -0
- package/dist/src/services/allItems/actors/fetchSeeds.d.ts.map +1 -0
- package/dist/src/services/allItems/actors/fetchVersions.d.ts.map +1 -0
- package/dist/src/services/allItems/actors/initialize.d.ts.map +1 -0
- package/dist/src/services/allItems/actors/processItems.d.ts.map +1 -0
- package/dist/src/services/allItems/itemMachineAll.d.ts.map +1 -0
- package/dist/src/services/db/actors/checkStatus.d.ts.map +1 -0
- package/dist/src/services/db/actors/connectToDb.d.ts.map +1 -0
- package/dist/src/services/db/actors/migrate.d.ts.map +1 -0
- package/dist/src/services/db/actors/validate.d.ts.map +1 -0
- package/dist/src/services/db/actors/waitForFiles.d.ts.map +1 -0
- package/dist/src/services/db/connectionManager.d.ts.map +1 -0
- package/dist/src/services/db/dbMachine.d.ts.map +1 -0
- package/dist/src/services/db/index.d.ts.map +1 -0
- package/dist/src/services/events.d.ts.map +1 -0
- package/dist/src/services/global/actors/addModelsToDb.d.ts.map +1 -0
- package/dist/src/services/global/actors/getSchemaForModel.d.ts.map +1 -0
- package/dist/src/services/global/actors/initialize.d.ts.map +1 -0
- package/dist/src/services/global/actors/savePublishService.d.ts.map +1 -0
- package/dist/src/services/global/globalMachine.d.ts.map +1 -0
- package/dist/src/services/global/index.d.ts.map +1 -0
- package/dist/src/services/internal/actors/configureFs.d.ts.map +1 -0
- package/dist/src/services/internal/actors/loadAppDb.d.ts.map +1 -0
- package/dist/src/services/internal/actors/prepareDb.d.ts.map +1 -0
- package/dist/src/services/internal/actors/saveConfig.d.ts.map +1 -0
- package/dist/src/services/internal/actors/validateInput.d.ts.map +1 -0
- package/dist/src/services/internal/actors/waitForFiles.d.ts.map +1 -0
- package/dist/src/services/internal/constants.d.ts.map +1 -0
- package/dist/src/services/internal/helpers.d.ts.map +1 -0
- package/dist/src/services/internal/internalMachine.d.ts.map +1 -0
- package/dist/src/services/internal/queries.d.ts.map +1 -0
- package/dist/src/services/internal/types.d.ts.map +1 -0
- package/dist/src/services/publish/actors/createPublishAttempt.d.ts.map +1 -0
- package/dist/src/services/publish/actors/preparePublishRequestData.d.ts.map +1 -0
- package/dist/src/services/publish/actors/upload.d.ts.map +1 -0
- package/dist/src/services/publish/actors/validateItemData.d.ts.map +1 -0
- package/dist/src/services/publish/publishMachine.d.ts.map +1 -0
- package/dist/src/stores/eas.d.ts.map +1 -0
- package/dist/src/stores/modelClass.d.ts.map +1 -0
- package/dist/src/types/browser.d.ts.map +1 -0
- package/dist/src/types/db.d.ts.map +1 -0
- package/dist/src/types/fileManager.d.ts.map +1 -0
- package/dist/src/types/helpers.d.ts.map +1 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/item.d.ts.map +1 -0
- package/dist/src/types/machines.d.ts.map +1 -0
- package/dist/src/types/model.d.ts.map +1 -0
- package/dist/src/types/property.d.ts.map +1 -0
- package/dist/src/types/seedProtocol.d.ts.map +1 -0
- package/dist/src/types/services.d.ts.map +1 -0
- package/package.json +7 -15
- package/dist/ArweaveClient-C0g0es2v.js +0 -13
- package/dist/ArweaveClient-C0g0es2v.js.map +0 -1
- package/dist/ArweaveClient-CzkBgiZY.js +0 -13
- package/dist/ArweaveClient-CzkBgiZY.js.map +0 -1
- package/dist/Db-C4oog-0n.js +0 -385
- package/dist/Db-C4oog-0n.js.map +0 -1
- package/dist/Db-VPouegkr.js +0 -82
- package/dist/Db-VPouegkr.js.map +0 -1
- package/dist/EasClient-B9a3NsTi.js +0 -10
- package/dist/EasClient-B9a3NsTi.js.map +0 -1
- package/dist/EasClient-DQ93i2ci.js +0 -13
- package/dist/EasClient-DQ93i2ci.js.map +0 -1
- package/dist/FileManager-_ErxVuwb.js +0 -50
- package/dist/FileManager-_ErxVuwb.js.map +0 -1
- package/dist/Item-D9HFPxsK.js +0 -35
- package/dist/Item-D9HFPxsK.js.map +0 -1
- package/dist/ItemProperty-BdtvKrEy.js +0 -34
- package/dist/ItemProperty-BdtvKrEy.js.map +0 -1
- package/dist/QueryClient-Bmnv_moN.js +0 -22
- package/dist/QueryClient-Bmnv_moN.js.map +0 -1
- package/dist/QueryClient-hzOtFe99.js +0 -22
- package/dist/QueryClient-hzOtFe99.js.map +0 -1
- package/dist/constants-Bhl5dZpN.js +0 -227
- package/dist/constants-Bhl5dZpN.js.map +0 -1
- package/dist/index-BAtjd9W-.js +0 -26
- package/dist/index-BAtjd9W-.js.map +0 -1
- package/dist/index-BSR5hv7Q.js +0 -8940
- package/dist/index-BSR5hv7Q.js.map +0 -1
- package/dist/seed.schema.config-BxJYabim.js +0 -74
- package/dist/seed.schema.config-BxJYabim.js.map +0 -1
- package/dist/src/AppStateSchema.ts +0 -10
- package/dist/src/ArweaveClient.ts +0 -13
- package/dist/src/Attestation.ts +0 -21
- package/dist/src/BaseArweaveClient.ts +0 -13
- package/dist/src/BaseClientManager.ts +0 -35
- package/dist/src/BaseDb.ts +0 -35
- package/dist/src/BaseEasClient.ts +0 -14
- package/dist/src/BaseFileManager.ts +0 -60
- package/dist/src/BaseItem.ts +0 -413
- package/dist/src/BaseItemProperty.ts +0 -416
- package/dist/src/BaseQueryClient.ts +0 -13
- package/dist/src/ClientManager.ts +0 -63
- package/dist/src/ConfigSchema.ts +0 -15
- package/dist/src/Db.ts +0 -82
- package/dist/src/EasClient.ts +0 -13
- package/dist/src/FileDownloader.ts +0 -63
- package/dist/src/FileManager.ts +0 -59
- package/dist/src/IDb.ts +0 -7
- package/dist/src/IEasClient.ts +0 -2
- package/dist/src/IItem.ts +0 -26
- package/dist/src/IItemProperty.ts +0 -28
- package/dist/src/IQueryClient.ts +0 -11
- package/dist/src/ImageResizer.ts +0 -81
- package/dist/src/Item.ts +0 -12
- package/dist/src/ItemProperty.ts +0 -9
- package/dist/src/MetadataSchema.ts +0 -28
- package/dist/src/ModelSchema.ts +0 -46
- package/dist/src/ModelUidSchema.ts +0 -16
- package/dist/src/PropertyUidSchema.ts +0 -16
- package/dist/src/QueryClient.ts +0 -26
- package/dist/src/Schema.ts +0 -17
- package/dist/src/SeedProtocolSdk.d.ts +0 -19
- package/dist/src/SeedSchema.ts +0 -29
- package/dist/src/VersionSchema.ts +0 -16
- package/dist/src/actors.ts +0 -295
- package/dist/src/addModelsToDb.ts +0 -152
- package/dist/src/allItems.ts +0 -31
- package/dist/src/analyzeInput.ts +0 -144
- package/dist/src/browser.app.db.config.ts +0 -27
- package/dist/src/browser.ts +0 -30
- package/dist/src/checkStatus.ts +0 -57
- package/dist/src/clientManagerMachine.ts +0 -59
- package/dist/src/configureFs.ts +0 -98
- package/dist/src/connectToDb.ts +0 -41
- package/dist/src/connectionManager.ts +0 -67
- package/dist/src/constants.ts +0 -125
- package/dist/src/content-hash.ts +0 -30
- package/dist/src/create.ts +0 -39
- package/dist/src/createMetadata.ts +0 -77
- package/dist/src/createNewItem.ts +0 -61
- package/dist/src/createPublishAttempt.ts +0 -16
- package/dist/src/createSeed.ts +0 -31
- package/dist/src/createSeeds.ts +0 -24
- package/dist/src/createVersion.ts +0 -33
- package/dist/src/dbMachine.ts +0 -182
- package/dist/src/deleteItem.ts +0 -19
- package/dist/src/download.ts +0 -208
- package/dist/src/drizzle.ts +0 -78
- package/dist/src/eas.ts +0 -40
- package/dist/src/environment.ts +0 -35
- package/dist/src/eventBus.ts +0 -5
- package/dist/src/events.ts +0 -14
- package/dist/src/fetchDataFromEas.ts +0 -94
- package/dist/src/fetchDbData.ts +0 -19
- package/dist/src/fetchRelatedItems.ts +0 -184
- package/dist/src/fetchSeeds.ts +0 -45
- package/dist/src/fetchVersions.ts +0 -49
- package/dist/src/files.ts +0 -81
- package/dist/src/filesDownload.ts +0 -326
- package/dist/src/fragment-masking.ts +0 -87
- package/dist/src/getExistingItem.ts +0 -60
- package/dist/src/getItem.ts +0 -32
- package/dist/src/getItemData.ts +0 -99
- package/dist/src/getItemProperties.ts +0 -56
- package/dist/src/getItemProperty.ts +0 -34
- package/dist/src/getItems.ts +0 -70
- package/dist/src/getMetadata.ts +0 -40
- package/dist/src/getModelSchemas.ts +0 -89
- package/dist/src/getPropertyData.ts +0 -50
- package/dist/src/getPublishPayload.ts +0 -355
- package/dist/src/getPublishUploads.ts +0 -207
- package/dist/src/getRelationValueData.ts +0 -27
- package/dist/src/getSchemaForItemProperty.ts +0 -68
- package/dist/src/getSchemaForModel.ts +0 -42
- package/dist/src/getSchemaUidForModel.ts +0 -32
- package/dist/src/getSeedData.ts +0 -34
- package/dist/src/getSegmentedItemProperties.ts +0 -65
- package/dist/src/getStorageTransactionIdForSeedUid.ts +0 -38
- package/dist/src/getVersionData.ts +0 -46
- package/dist/src/getVersionsForVersionUids.ts +0 -39
- package/dist/src/globalMachine.ts +0 -280
- package/dist/src/gql.ts +0 -118
- package/dist/src/graphql.ts +0 -3209
- package/dist/src/helpers.ts +0 -273
- package/dist/src/hydrateExistingItem.ts +0 -137
- package/dist/src/hydrateFromDb.ts +0 -270
- package/dist/src/hydrateNewItem.ts +0 -34
- package/dist/src/imageResize.ts +0 -507
- package/dist/src/index.ts +0 -4
- package/dist/src/initialize.ts +0 -124
- package/dist/src/internalMachine.ts +0 -241
- package/dist/src/itemMachineAll.ts +0 -157
- package/dist/src/itemMachineSingle.ts +0 -158
- package/dist/src/loadAppDb.ts +0 -44
- package/dist/src/machines.ts +0 -66
- package/dist/src/metadataLatest.ts +0 -34
- package/dist/src/migrate.ts +0 -57
- package/dist/src/model.ts +0 -72
- package/dist/src/modelClass.ts +0 -19
- package/dist/src/node.app.db.config.ts +0 -41
- package/dist/src/prepareDb.ts +0 -29
- package/dist/src/preparePublishRequestData.ts +0 -81
- package/dist/src/processItems.ts +0 -74
- package/dist/src/property.ts +0 -156
- package/dist/src/propertyMachine.ts +0 -202
- package/dist/src/publish.ts +0 -28
- package/dist/src/publishMachine.ts +0 -77
- package/dist/src/queries.ts +0 -13
- package/dist/src/recoverDeletedItem.ts +0 -14
- package/dist/src/reload.ts +0 -33
- package/dist/src/request.ts +0 -45
- package/dist/src/requestAll.ts +0 -157
- package/dist/src/resolveRelatedValue.ts +0 -367
- package/dist/src/resolveRemoteStorage.ts +0 -88
- package/dist/src/saveAppState.ts +0 -50
- package/dist/src/saveConfig.ts +0 -106
- package/dist/src/saveDataToDb.ts +0 -145
- package/dist/src/saveImageSrc.ts +0 -242
- package/dist/src/saveItemStorage.ts +0 -156
- package/dist/src/saveMetadata.ts +0 -18
- package/dist/src/savePublishService.ts +0 -30
- package/dist/src/saveRelation.ts +0 -112
- package/dist/src/seed.schema.config.ts +0 -25
- package/dist/src/seed.ts +0 -10
- package/dist/src/seedProtocol.ts +0 -17
- package/dist/src/services.ts +0 -365
- package/dist/src/setAddresses.ts +0 -16
- package/dist/src/sqlWasmClient.ts +0 -88
- package/dist/src/syncDbWithEas.ts +0 -628
- package/dist/src/trash.ts +0 -29
- package/dist/src/ts-to-proto.ts +0 -101
- package/dist/src/types.ts +0 -12
- package/dist/src/updateItemPropertyValue.ts +0 -243
- package/dist/src/updateMachineContext.ts +0 -21
- package/dist/src/updateMetadata.ts +0 -59
- package/dist/src/upload.ts +0 -86
- package/dist/src/validate.ts +0 -45
- package/dist/src/validateInput.ts +0 -43
- package/dist/src/validateItemData.ts +0 -20
- package/dist/src/versionData.ts +0 -24
- package/dist/src/waitForDb.ts +0 -25
- package/dist/src/waitForFiles.ts +0 -41
- package/dist/src/wasm.d.ts +0 -8300
- package/dist/types/scripts/bin.d.ts.map +0 -1
- package/dist/types/src/Item/BaseItem.d.ts.map +0 -1
- package/dist/types/src/Item/index.d.ts.map +0 -1
- package/dist/types/src/Item/queries.d.ts.map +0 -1
- package/dist/types/src/Item/service/actors/fetchDataFromEas.d.ts.map +0 -1
- package/dist/types/src/Item/service/actors/hydrateExistingItem.d.ts.map +0 -1
- package/dist/types/src/Item/service/actors/hydrateNewItem.d.ts.map +0 -1
- package/dist/types/src/Item/service/actors/initialize.d.ts.map +0 -1
- package/dist/types/src/Item/service/actors/reload.d.ts.map +0 -1
- package/dist/types/src/Item/service/actors/saveDataToDb.d.ts.map +0 -1
- package/dist/types/src/Item/service/actors/waitForDb.d.ts.map +0 -1
- package/dist/types/src/Item/service/itemMachineSingle.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/BaseItemProperty.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/index.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/hydrateFromDb.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/index.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/initialize.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/resolveRelatedValue.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/resolveRemoteStorage.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/saveValueToDb/index.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/actors/waitForDb.d.ts.map +0 -1
- package/dist/types/src/ItemProperty/service/propertyMachine.d.ts.map +0 -1
- package/dist/types/src/browser/Item/Item.d.ts.map +0 -1
- package/dist/types/src/browser/Item/index.d.ts.map +0 -1
- package/dist/types/src/browser/ItemProperty/ItemProperty.d.ts.map +0 -1
- package/dist/types/src/browser/ItemProperty/index.d.ts.map +0 -1
- package/dist/types/src/browser/db/Db.d.ts.map +0 -1
- package/dist/types/src/browser/db/index.d.ts.map +0 -1
- package/dist/types/src/browser/db/sqlWasmClient.d.ts.map +0 -1
- package/dist/types/src/browser/helpers/ArweaveClient.d.ts.map +0 -1
- package/dist/types/src/browser/helpers/EasClient.d.ts.map +0 -1
- package/dist/types/src/browser/helpers/FileManager.d.ts +0 -23
- package/dist/types/src/browser/helpers/FileManager.d.ts.map +0 -1
- package/dist/types/src/browser/helpers/QueryClient.d.ts.map +0 -1
- package/dist/types/src/browser/helpers/index.d.ts.map +0 -1
- package/dist/types/src/browser/index.d.ts.map +0 -1
- package/dist/types/src/browser/react/db.d.ts.map +0 -1
- package/dist/types/src/browser/react/index.d.ts.map +0 -1
- package/dist/types/src/browser/react/item.d.ts.map +0 -1
- package/dist/types/src/browser/react/property.d.ts.map +0 -1
- package/dist/types/src/browser/react/services.d.ts.map +0 -1
- package/dist/types/src/browser/react/trash.d.ts.map +0 -1
- package/dist/types/src/browser/seed.d.ts.map +0 -1
- package/dist/types/src/browser/workers/FileDownloader.d.ts.map +0 -1
- package/dist/types/src/browser/workers/ImageResizer.d.ts.map +0 -1
- package/dist/types/src/browser/workers/content-hash.d.ts.map +0 -1
- package/dist/types/src/browser/workers/filesDownload.d.ts.map +0 -1
- package/dist/types/src/browser/workers/imageResize.d.ts.map +0 -1
- package/dist/types/src/client/BaseClientManager.d.ts.map +0 -1
- package/dist/types/src/client/ClientManager.d.ts +0 -44
- package/dist/types/src/client/ClientManager.d.ts.map +0 -1
- package/dist/types/src/client/actions/setAddresses.d.ts.map +0 -1
- package/dist/types/src/client/actors/initialize.d.ts.map +0 -1
- package/dist/types/src/client/actors/saveAppState.d.ts.map +0 -1
- package/dist/types/src/client/clientManagerMachine.d.ts.map +0 -1
- package/dist/types/src/client/index.d.ts.map +0 -1
- package/dist/types/src/db/Db/BaseDb.d.ts.map +0 -1
- package/dist/types/src/db/Db/index.d.ts.map +0 -1
- package/dist/types/src/db/configs/browser.app.db.config.d.ts.map +0 -1
- package/dist/types/src/db/configs/node.app.db.config.d.ts.map +0 -1
- package/dist/types/src/db/configs/seed.schema.config.d.ts.map +0 -1
- package/dist/types/src/db/read/getExistingItem.d.ts.map +0 -1
- package/dist/types/src/db/read/getItem.d.ts.map +0 -1
- package/dist/types/src/db/read/getItemData.d.ts.map +0 -1
- package/dist/types/src/db/read/getItemProperties.d.ts.map +0 -1
- package/dist/types/src/db/read/getItemProperty.d.ts.map +0 -1
- package/dist/types/src/db/read/getItems.d.ts.map +0 -1
- package/dist/types/src/db/read/getMetadata.d.ts.map +0 -1
- package/dist/types/src/db/read/getModelSchemas.d.ts.map +0 -1
- package/dist/types/src/db/read/getPropertyData.d.ts.map +0 -1
- package/dist/types/src/db/read/getPublishPayload.d.ts.map +0 -1
- package/dist/types/src/db/read/getPublishUploads.d.ts.map +0 -1
- package/dist/types/src/db/read/getRelationValueData.d.ts.map +0 -1
- package/dist/types/src/db/read/getSchemaUidForModel.d.ts.map +0 -1
- package/dist/types/src/db/read/getSeedData.d.ts.map +0 -1
- package/dist/types/src/db/read/getStorageTransactionIdForSeedUid.d.ts.map +0 -1
- package/dist/types/src/db/read/getVersionData.d.ts.map +0 -1
- package/dist/types/src/db/read/getVersionsForVersionUids.d.ts.map +0 -1
- package/dist/types/src/db/read/subqueries/metadataLatest.d.ts.map +0 -1
- package/dist/types/src/db/read/subqueries/versionData.d.ts.map +0 -1
- package/dist/types/src/db/write/createMetadata.d.ts.map +0 -1
- package/dist/types/src/db/write/createNewItem.d.ts.map +0 -1
- package/dist/types/src/db/write/createSeed.d.ts.map +0 -1
- package/dist/types/src/db/write/createSeeds.d.ts.map +0 -1
- package/dist/types/src/db/write/createVersion.d.ts.map +0 -1
- package/dist/types/src/db/write/deleteItem.d.ts.map +0 -1
- package/dist/types/src/db/write/recoverDeletedItem.d.ts.map +0 -1
- package/dist/types/src/db/write/saveAppState.d.ts.map +0 -1
- package/dist/types/src/db/write/saveMetadata.d.ts.map +0 -1
- package/dist/types/src/db/write/updateItemPropertyValue.d.ts.map +0 -1
- package/dist/types/src/db/write/updateMetadata.d.ts.map +0 -1
- package/dist/types/src/eventBus.d.ts.map +0 -1
- package/dist/types/src/events/files/download.d.ts.map +0 -1
- package/dist/types/src/events/files/index.d.ts.map +0 -1
- package/dist/types/src/events/index.d.ts.map +0 -1
- package/dist/types/src/events/item/create.d.ts.map +0 -1
- package/dist/types/src/events/item/index.d.ts.map +0 -1
- package/dist/types/src/events/item/publish.d.ts.map +0 -1
- package/dist/types/src/events/item/request.d.ts.map +0 -1
- package/dist/types/src/events/item/requestAll.d.ts.map +0 -1
- package/dist/types/src/events/item/syncDbWithEas.d.ts.map +0 -1
- package/dist/types/src/events/services/allItems.d.ts.map +0 -1
- package/dist/types/src/events/services/index.d.ts.map +0 -1
- package/dist/types/src/graphql/fragments/Attestation.d.ts.map +0 -1
- package/dist/types/src/graphql/fragments/Schema.d.ts.map +0 -1
- package/dist/types/src/graphql/fragments/index.d.ts.map +0 -1
- package/dist/types/src/graphql/gql/fragment-masking.d.ts.map +0 -1
- package/dist/types/src/graphql/gql/gql.d.ts.map +0 -1
- package/dist/types/src/graphql/gql/graphql.d.ts.map +0 -1
- package/dist/types/src/graphql/gql/index.d.ts.map +0 -1
- package/dist/types/src/helpers/ArweaveClient/BaseArweaveClient.d.ts.map +0 -1
- package/dist/types/src/helpers/ArweaveClient/index.d.ts.map +0 -1
- package/dist/types/src/helpers/ArweaveClient/queries.d.ts.map +0 -1
- package/dist/types/src/helpers/EasClient/BaseEasClient.d.ts.map +0 -1
- package/dist/types/src/helpers/EasClient/index.d.ts.map +0 -1
- package/dist/types/src/helpers/FileManager/BaseFileManager.d.ts +0 -17
- package/dist/types/src/helpers/FileManager/BaseFileManager.d.ts.map +0 -1
- package/dist/types/src/helpers/FileManager/index.d.ts.map +0 -1
- package/dist/types/src/helpers/QueryClient/BaseQueryClient.d.ts.map +0 -1
- package/dist/types/src/helpers/QueryClient/index.d.ts.map +0 -1
- package/dist/types/src/helpers/constants.d.ts.map +0 -1
- package/dist/types/src/helpers/db.d.ts.map +0 -1
- package/dist/types/src/helpers/environment.d.ts.map +0 -1
- package/dist/types/src/helpers/files.d.ts.map +0 -1
- package/dist/types/src/helpers/getSchemaForItemProperty.d.ts.map +0 -1
- package/dist/types/src/helpers/getSegmentedItemProperties.d.ts.map +0 -1
- package/dist/types/src/helpers/index.d.ts.map +0 -1
- package/dist/types/src/helpers/updateMachineContext.d.ts.map +0 -1
- package/dist/types/src/index.d.ts +0 -12
- package/dist/types/src/index.d.ts.map +0 -1
- package/dist/types/src/interfaces/IDb.d.ts.map +0 -1
- package/dist/types/src/interfaces/IEasClient.d.ts.map +0 -1
- package/dist/types/src/interfaces/IItem.d.ts.map +0 -1
- package/dist/types/src/interfaces/IItemProperty.d.ts.map +0 -1
- package/dist/types/src/interfaces/IQueryClient.d.ts.map +0 -1
- package/dist/types/src/interfaces/index.d.ts.map +0 -1
- package/dist/types/src/node/Item/Item.d.ts.map +0 -1
- package/dist/types/src/node/ItemProperty/ItemProperty.d.ts.map +0 -1
- package/dist/types/src/node/codegen/drizzle.d.ts.map +0 -1
- package/dist/types/src/node/codegen/index.d.ts.map +0 -1
- package/dist/types/src/node/codegen/ts-to-proto.d.ts.map +0 -1
- package/dist/types/src/node/constants.d.ts.map +0 -1
- package/dist/types/src/node/db/Db.d.ts.map +0 -1
- package/dist/types/src/node/db/index.d.ts.map +0 -1
- package/dist/types/src/node/db/node.app.db.config.d.ts.map +0 -1
- package/dist/types/src/node/helpers/ArweaveClient.d.ts.map +0 -1
- package/dist/types/src/node/helpers/EasClient.d.ts.map +0 -1
- package/dist/types/src/node/helpers/FileManager.d.ts.map +0 -1
- package/dist/types/src/node/helpers/QueryClient.d.ts.map +0 -1
- package/dist/types/src/node/helpers/index.d.ts.map +0 -1
- package/dist/types/src/node/index.d.ts.map +0 -1
- package/dist/types/src/node/seed.d.ts.map +0 -1
- package/dist/types/src/node/webpack/index.d.ts.map +0 -1
- package/dist/types/src/schema/file/download/actors.d.ts.map +0 -1
- package/dist/types/src/schema/file/download/index.d.ts.map +0 -1
- package/dist/types/src/schema/file/fetchAll/actors.d.ts.map +0 -1
- package/dist/types/src/schema/file/fetchAll/index.d.ts.map +0 -1
- package/dist/types/src/schema/file/queries.d.ts.map +0 -1
- package/dist/types/src/schema/image/queries.d.ts.map +0 -1
- package/dist/types/src/schema/index.d.ts.map +0 -1
- package/dist/types/src/schema/model/index.d.ts.map +0 -1
- package/dist/types/src/schema/property/index.d.ts.map +0 -1
- package/dist/types/src/seedSchema/AppStateSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/ConfigSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/MetadataSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/ModelSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/ModelUidSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/PropertyUidSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/SeedSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/VersionSchema.d.ts.map +0 -1
- package/dist/types/src/seedSchema/index.d.ts.map +0 -1
- package/dist/types/src/services/allItems/actors/fetchDbData.d.ts.map +0 -1
- package/dist/types/src/services/allItems/actors/fetchRelatedItems.d.ts.map +0 -1
- package/dist/types/src/services/allItems/actors/fetchSeeds.d.ts.map +0 -1
- package/dist/types/src/services/allItems/actors/fetchVersions.d.ts.map +0 -1
- package/dist/types/src/services/allItems/actors/initialize.d.ts.map +0 -1
- package/dist/types/src/services/allItems/actors/processItems.d.ts.map +0 -1
- package/dist/types/src/services/allItems/itemMachineAll.d.ts.map +0 -1
- package/dist/types/src/services/db/actors/checkStatus.d.ts.map +0 -1
- package/dist/types/src/services/db/actors/connectToDb.d.ts.map +0 -1
- package/dist/types/src/services/db/actors/migrate.d.ts.map +0 -1
- package/dist/types/src/services/db/actors/validate.d.ts.map +0 -1
- package/dist/types/src/services/db/actors/waitForFiles.d.ts.map +0 -1
- package/dist/types/src/services/db/connectionManager.d.ts.map +0 -1
- package/dist/types/src/services/db/dbMachine.d.ts.map +0 -1
- package/dist/types/src/services/db/index.d.ts.map +0 -1
- package/dist/types/src/services/events.d.ts.map +0 -1
- package/dist/types/src/services/global/actors/addModelsToDb.d.ts.map +0 -1
- package/dist/types/src/services/global/actors/getSchemaForModel.d.ts.map +0 -1
- package/dist/types/src/services/global/actors/initialize.d.ts.map +0 -1
- package/dist/types/src/services/global/actors/savePublishService.d.ts.map +0 -1
- package/dist/types/src/services/global/globalMachine.d.ts.map +0 -1
- package/dist/types/src/services/global/index.d.ts.map +0 -1
- package/dist/types/src/services/index.d.ts +0 -2
- package/dist/types/src/services/index.d.ts.map +0 -1
- package/dist/types/src/services/internal/actors/configureFs.d.ts.map +0 -1
- package/dist/types/src/services/internal/actors/loadAppDb.d.ts.map +0 -1
- package/dist/types/src/services/internal/actors/prepareDb.d.ts.map +0 -1
- package/dist/types/src/services/internal/actors/saveConfig.d.ts.map +0 -1
- package/dist/types/src/services/internal/actors/validateInput.d.ts.map +0 -1
- package/dist/types/src/services/internal/actors/waitForFiles.d.ts.map +0 -1
- package/dist/types/src/services/internal/constants.d.ts.map +0 -1
- package/dist/types/src/services/internal/helpers.d.ts.map +0 -1
- package/dist/types/src/services/internal/internalMachine.d.ts.map +0 -1
- package/dist/types/src/services/internal/queries.d.ts.map +0 -1
- package/dist/types/src/services/internal/types.d.ts.map +0 -1
- package/dist/types/src/services/publish/actors/createPublishAttempt.d.ts.map +0 -1
- package/dist/types/src/services/publish/actors/preparePublishRequestData.d.ts.map +0 -1
- package/dist/types/src/services/publish/actors/upload.d.ts.map +0 -1
- package/dist/types/src/services/publish/actors/validateItemData.d.ts.map +0 -1
- package/dist/types/src/services/publish/publishMachine.d.ts.map +0 -1
- package/dist/types/src/stores/eas.d.ts.map +0 -1
- package/dist/types/src/stores/modelClass.d.ts.map +0 -1
- package/dist/types/src/types/browser.d.ts.map +0 -1
- package/dist/types/src/types/db.d.ts.map +0 -1
- package/dist/types/src/types/fileManager.d.ts.map +0 -1
- package/dist/types/src/types/helpers.d.ts.map +0 -1
- package/dist/types/src/types/index.d.ts.map +0 -1
- package/dist/types/src/types/item.d.ts.map +0 -1
- package/dist/types/src/types/machines.d.ts.map +0 -1
- package/dist/types/src/types/model.d.ts.map +0 -1
- package/dist/types/src/types/property.d.ts.map +0 -1
- package/dist/types/src/types/seedProtocol.d.ts.map +0 -1
- package/dist/types/src/types/services.d.ts.map +0 -1
- /package/dist/{types/scripts → scripts}/bin.d.ts +0 -0
- /package/dist/{types/src → src}/Item/BaseItem.d.ts +0 -0
- /package/dist/{types/src → src}/Item/index.d.ts +0 -0
- /package/dist/{types/src → src}/Item/queries.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/actors/fetchDataFromEas.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/actors/hydrateExistingItem.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/actors/hydrateNewItem.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/actors/initialize.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/actors/reload.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/actors/saveDataToDb.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/actors/waitForDb.d.ts +0 -0
- /package/dist/{types/src → src}/Item/service/itemMachineSingle.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/BaseItemProperty.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/index.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/hydrateFromDb.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/index.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/initialize.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/resolveRelatedValue.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/resolveRemoteStorage.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/saveValueToDb/analyzeInput.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/saveValueToDb/index.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/saveValueToDb/saveImageSrc.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/saveValueToDb/saveItemStorage.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/saveValueToDb/saveRelation.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/actors/waitForDb.d.ts +0 -0
- /package/dist/{types/src → src}/ItemProperty/service/propertyMachine.d.ts +0 -0
- /package/dist/{types/src → src}/browser/Item/Item.d.ts +0 -0
- /package/dist/{types/src → src}/browser/Item/index.d.ts +0 -0
- /package/dist/{types/src → src}/browser/ItemProperty/ItemProperty.d.ts +0 -0
- /package/dist/{types/src → src}/browser/ItemProperty/index.d.ts +0 -0
- /package/dist/{types/src → src}/browser/db/Db.d.ts +0 -0
- /package/dist/{types/src → src}/browser/db/index.d.ts +0 -0
- /package/dist/{types/src → src}/browser/db/sqlWasmClient.d.ts +0 -0
- /package/dist/{types/src → src}/browser/helpers/ArweaveClient.d.ts +0 -0
- /package/dist/{types/src → src}/browser/helpers/EasClient.d.ts +0 -0
- /package/dist/{types/src → src}/browser/helpers/QueryClient.d.ts +0 -0
- /package/dist/{types/src → src}/browser/helpers/index.d.ts +0 -0
- /package/dist/{types/src → src}/browser/index.d.ts +0 -0
- /package/dist/{types/src → src}/browser/react/db.d.ts +0 -0
- /package/dist/{types/src → src}/browser/react/index.d.ts +0 -0
- /package/dist/{types/src → src}/browser/react/item.d.ts +0 -0
- /package/dist/{types/src → src}/browser/react/property.d.ts +0 -0
- /package/dist/{types/src → src}/browser/react/services.d.ts +0 -0
- /package/dist/{types/src → src}/browser/react/trash.d.ts +0 -0
- /package/dist/{types/src → src}/browser/seed.d.ts +0 -0
- /package/dist/{types/src → src}/browser/workers/FileDownloader.d.ts +0 -0
- /package/dist/{types/src → src}/browser/workers/ImageResizer.d.ts +0 -0
- /package/dist/{types/src → src}/browser/workers/content-hash.d.ts +0 -0
- /package/dist/{types/src → src}/browser/workers/filesDownload.d.ts +0 -0
- /package/dist/{types/src → src}/browser/workers/imageResize.d.ts +0 -0
- /package/dist/{types/src → src}/client/BaseClientManager.d.ts +0 -0
- /package/dist/{types/src → src}/client/actions/setAddresses.d.ts +0 -0
- /package/dist/{types/src → src}/client/actors/initialize.d.ts +0 -0
- /package/dist/{types/src → src}/client/actors/saveAppState.d.ts +0 -0
- /package/dist/{types/src → src}/client/clientManagerMachine.d.ts +0 -0
- /package/dist/{types/src → src}/client/index.d.ts +0 -0
- /package/dist/{types/src → src}/db/Db/BaseDb.d.ts +0 -0
- /package/dist/{types/src → src}/db/Db/index.d.ts +0 -0
- /package/dist/{types/src → src}/db/configs/browser.app.db.config.d.ts +0 -0
- /package/dist/{types/src → src}/db/configs/node.app.db.config.d.ts +0 -0
- /package/dist/{types/src → src}/db/configs/seed.schema.config.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getExistingItem.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getItem.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getItemData.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getItemProperties.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getItemProperty.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getItems.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getMetadata.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getModelSchemas.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getPropertyData.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getPublishPayload.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getPublishUploads.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getRelationValueData.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getSchemaUidForModel.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getSeedData.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getStorageTransactionIdForSeedUid.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getVersionData.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/getVersionsForVersionUids.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/subqueries/metadataLatest.d.ts +0 -0
- /package/dist/{types/src → src}/db/read/subqueries/versionData.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/createMetadata.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/createNewItem.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/createSeed.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/createSeeds.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/createVersion.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/deleteItem.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/recoverDeletedItem.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/saveAppState.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/saveMetadata.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/updateItemPropertyValue.d.ts +0 -0
- /package/dist/{types/src → src}/db/write/updateMetadata.d.ts +0 -0
- /package/dist/{types/src → src}/eventBus.d.ts +0 -0
- /package/dist/{types/src → src}/events/files/download.d.ts +0 -0
- /package/dist/{types/src → src}/events/files/index.d.ts +0 -0
- /package/dist/{types/src → src}/events/index.d.ts +0 -0
- /package/dist/{types/src → src}/events/item/create.d.ts +0 -0
- /package/dist/{types/src → src}/events/item/index.d.ts +0 -0
- /package/dist/{types/src → src}/events/item/publish.d.ts +0 -0
- /package/dist/{types/src → src}/events/item/request.d.ts +0 -0
- /package/dist/{types/src → src}/events/item/requestAll.d.ts +0 -0
- /package/dist/{types/src → src}/events/item/syncDbWithEas.d.ts +0 -0
- /package/dist/{types/src → src}/events/services/allItems.d.ts +0 -0
- /package/dist/{types/src → src}/events/services/index.d.ts +0 -0
- /package/dist/{types/src → src}/graphql/fragments/Attestation.d.ts +0 -0
- /package/dist/{types/src → src}/graphql/fragments/Schema.d.ts +0 -0
- /package/dist/{types/src → src}/graphql/fragments/index.d.ts +0 -0
- /package/dist/{types/src → src}/graphql/gql/fragment-masking.d.ts +0 -0
- /package/dist/{types/src → src}/graphql/gql/gql.d.ts +0 -0
- /package/dist/{types/src → src}/graphql/gql/graphql.d.ts +0 -0
- /package/dist/{types/src → src}/graphql/gql/index.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/ArweaveClient/BaseArweaveClient.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/ArweaveClient/index.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/ArweaveClient/queries.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/EasClient/BaseEasClient.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/EasClient/index.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/FileManager/index.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/QueryClient/BaseQueryClient.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/QueryClient/index.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/constants.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/db.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/environment.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/files.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/getSchemaForItemProperty.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/getSegmentedItemProperties.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/index.d.ts +0 -0
- /package/dist/{types/src → src}/helpers/updateMachineContext.d.ts +0 -0
- /package/dist/{types/src → src}/interfaces/IDb.d.ts +0 -0
- /package/dist/{types/src → src}/interfaces/IEasClient.d.ts +0 -0
- /package/dist/{types/src → src}/interfaces/IItem.d.ts +0 -0
- /package/dist/{types/src → src}/interfaces/IItemProperty.d.ts +0 -0
- /package/dist/{types/src → src}/interfaces/IQueryClient.d.ts +0 -0
- /package/dist/{types/src → src}/interfaces/index.d.ts +0 -0
- /package/dist/{types/src → src}/node/Item/Item.d.ts +0 -0
- /package/dist/{types/src → src}/node/ItemProperty/ItemProperty.d.ts +0 -0
- /package/dist/{types/src → src}/node/codegen/drizzle.d.ts +0 -0
- /package/dist/{types/src → src}/node/codegen/index.d.ts +0 -0
- /package/dist/{types/src → src}/node/codegen/ts-to-proto.d.ts +0 -0
- /package/dist/{types/src → src}/node/constants.d.ts +0 -0
- /package/dist/{types/src → src}/node/db/Db.d.ts +0 -0
- /package/dist/{types/src → src}/node/db/index.d.ts +0 -0
- /package/dist/{types/src → src}/node/db/node.app.db.config.d.ts +0 -0
- /package/dist/{types/src → src}/node/helpers/ArweaveClient.d.ts +0 -0
- /package/dist/{types/src → src}/node/helpers/EasClient.d.ts +0 -0
- /package/dist/{types/src → src}/node/helpers/FileManager.d.ts +0 -0
- /package/dist/{types/src → src}/node/helpers/QueryClient.d.ts +0 -0
- /package/dist/{types/src → src}/node/helpers/index.d.ts +0 -0
- /package/dist/{types/src → src}/node/index.d.ts +0 -0
- /package/dist/{types/src → src}/node/seed.d.ts +0 -0
- /package/dist/{types/src → src}/node/webpack/index.d.ts +0 -0
- /package/dist/{types/src → src}/schema/file/download/actors.d.ts +0 -0
- /package/dist/{types/src → src}/schema/file/download/index.d.ts +0 -0
- /package/dist/{types/src → src}/schema/file/fetchAll/actors.d.ts +0 -0
- /package/dist/{types/src → src}/schema/file/fetchAll/index.d.ts +0 -0
- /package/dist/{types/src → src}/schema/file/queries.d.ts +0 -0
- /package/dist/{types/src → src}/schema/image/queries.d.ts +0 -0
- /package/dist/{types/src → src}/schema/index.d.ts +0 -0
- /package/dist/{types/src → src}/schema/model/index.d.ts +0 -0
- /package/dist/{types/src → src}/schema/property/index.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/AppStateSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/ConfigSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/MetadataSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/ModelSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/ModelUidSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/PropertyUidSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/SeedSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/VersionSchema.d.ts +0 -0
- /package/dist/{types/src → src}/seedSchema/index.d.ts +0 -0
- /package/dist/{types/src → src}/services/allItems/actors/fetchDbData.d.ts +0 -0
- /package/dist/{types/src → src}/services/allItems/actors/fetchRelatedItems.d.ts +0 -0
- /package/dist/{types/src → src}/services/allItems/actors/fetchSeeds.d.ts +0 -0
- /package/dist/{types/src → src}/services/allItems/actors/fetchVersions.d.ts +0 -0
- /package/dist/{types/src → src}/services/allItems/actors/initialize.d.ts +0 -0
- /package/dist/{types/src → src}/services/allItems/actors/processItems.d.ts +0 -0
- /package/dist/{types/src → src}/services/allItems/itemMachineAll.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/actors/checkStatus.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/actors/connectToDb.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/actors/migrate.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/actors/validate.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/actors/waitForFiles.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/connectionManager.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/dbMachine.d.ts +0 -0
- /package/dist/{types/src → src}/services/db/index.d.ts +0 -0
- /package/dist/{types/src → src}/services/events.d.ts +0 -0
- /package/dist/{types/src → src}/services/global/actors/addModelsToDb.d.ts +0 -0
- /package/dist/{types/src → src}/services/global/actors/getSchemaForModel.d.ts +0 -0
- /package/dist/{types/src → src}/services/global/actors/initialize.d.ts +0 -0
- /package/dist/{types/src → src}/services/global/actors/savePublishService.d.ts +0 -0
- /package/dist/{types/src → src}/services/global/globalMachine.d.ts +0 -0
- /package/dist/{types/src → src}/services/global/index.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/actors/configureFs.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/actors/loadAppDb.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/actors/prepareDb.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/actors/saveConfig.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/actors/validateInput.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/actors/waitForFiles.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/constants.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/helpers.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/internalMachine.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/queries.d.ts +0 -0
- /package/dist/{types/src → src}/services/internal/types.d.ts +0 -0
- /package/dist/{types/src → src}/services/publish/actors/createPublishAttempt.d.ts +0 -0
- /package/dist/{types/src → src}/services/publish/actors/preparePublishRequestData.d.ts +0 -0
- /package/dist/{types/src → src}/services/publish/actors/upload.d.ts +0 -0
- /package/dist/{types/src → src}/services/publish/actors/validateItemData.d.ts +0 -0
- /package/dist/{types/src → src}/services/publish/publishMachine.d.ts +0 -0
- /package/dist/{types/src → src}/stores/eas.d.ts +0 -0
- /package/dist/{types/src → src}/stores/modelClass.d.ts +0 -0
- /package/dist/{types/src → src}/types/browser.d.ts +0 -0
- /package/dist/{types/src → src}/types/db.d.ts +0 -0
- /package/dist/{types/src → src}/types/fileManager.d.ts +0 -0
- /package/dist/{types/src → src}/types/helpers.d.ts +0 -0
- /package/dist/{types/src → src}/types/index.d.ts +0 -0
- /package/dist/{types/src → src}/types/item.d.ts +0 -0
- /package/dist/{types/src → src}/types/machines.d.ts +0 -0
- /package/dist/{types/src → src}/types/model.d.ts +0 -0
- /package/dist/{types/src → src}/types/property.d.ts +0 -0
- /package/dist/{types/src → src}/types/seedProtocol.d.ts +0 -0
- /package/dist/{types/src → src}/types/services.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-D-O-gmXo.js","sources":["../../src/schema/property/index.ts","../../src/db/Db/BaseDb.ts","../../src/Item/service/actors/waitForDb.ts","../../src/seedSchema/SeedSchema.ts","../../src/seedSchema/VersionSchema.ts","../../src/seedSchema/MetadataSchema.ts","../../src/seedSchema/AppStateSchema.ts","../../src/seedSchema/ModelSchema.ts","../../src/seedSchema/ModelUidSchema.ts","../../src/db/read/getExistingItem.ts","../../src/Item/service/actors/initialize.ts","../../src/eventBus.ts","../../src/helpers/index.ts","../../src/graphql/gql/graphql.ts","../../src/graphql/gql/gql.ts","../../src/Item/queries.ts","../../src/helpers/db.ts","../../src/stores/modelClass.ts","../../src/db/read/getModelSchemas.ts","../../src/db/write/createSeeds.ts","../../src/helpers/getSchemaForItemProperty.ts","../../src/stores/eas.ts","../../src/events/item/syncDbWithEas.ts","../../src/helpers/environment.ts","../../src/services/global/actors/initialize.ts","../../src/services/global/actors/getSchemaForModel.ts","../../src/services/global/actors/addModelsToDb.ts","../../src/services/db/actors/checkStatus.ts","../../src/services/db/actors/connectToDb.ts","../../src/services/db/actors/validate.ts","../../src/services/db/actors/migrate.ts","../../src/services/db/actors/waitForFiles.ts","../../src/services/db/dbMachine.ts","../../src/services/internal/actors/validateInput.ts","../../src/services/internal/actors/prepareDb.ts","../../src/services/internal/helpers.ts","../../src/schema/file/queries.ts","../../src/db/read/getMetadata.ts","../../src/db/write/saveMetadata.ts","../../src/helpers/ArweaveClient/queries.ts","../../src/db/write/saveAppState.ts","../../src/helpers/ArweaveClient/index.ts","../../src/events/files/download.ts","../../src/events/files/index.ts","../../src/services/internal/actors/configureFs.ts","../../src/services/internal/actors/saveConfig.ts","../../src/services/internal/actors/loadAppDb.ts","../../src/services/internal/actors/waitForFiles.ts","../../src/services/internal/internalMachine.ts","../../src/services/allItems/actors/initialize.ts","../../src/services/allItems/actors/fetchDbData.ts","../../src/services/allItems/actors/fetchSeeds.ts","../../src/services/allItems/actors/fetchVersions.ts","../../src/services/allItems/actors/fetchRelatedItems.ts","../../src/services/allItems/actors/processItems.ts","../../src/services/allItems/itemMachineAll.ts","../../src/services/publish/actors/validateItemData.ts","../../src/services/publish/actors/createPublishAttempt.ts","../../src/helpers/updateMachineContext.ts","../../src/services/publish/actors/preparePublishRequestData.ts","../../src/services/publish/actors/upload.ts","../../src/services/publish/publishMachine.ts","../../src/services/global/actors/savePublishService.ts","../../src/services/global/globalMachine.ts","../../src/events/item/publish.ts","../../src/events/item/index.ts","../../src/events/index.ts","../../src/Item/service/actors/hydrateExistingItem.ts","../../src/db/read/getSchemaUidForModel.ts","../../src/db/write/createSeed.ts","../../src/db/write/createVersion.ts","../../src/Item/service/actors/hydrateNewItem.ts","../../src/Item/service/actors/fetchDataFromEas.ts","../../src/Item/service/actors/reload.ts","../../src/Item/service/itemMachineSingle.ts","../../src/db/read/subqueries/metadataLatest.ts","../../src/db/read/getItemProperties.ts","../../src/db/read/subqueries/versionData.ts","../../src/db/read/getSeedData.ts","../../src/db/read/getItemData.ts","../../src/db/read/getItems.ts","../../src/ItemProperty/service/actors/resolveRemoteStorage.ts","../../src/ItemProperty/service/actors/waitForDb.ts","../../src/ItemProperty/service/actors/initialize.ts","../../src/db/read/getStorageTransactionIdForSeedUid.ts","../../src/db/read/getRelationValueData.ts","../../src/ItemProperty/service/actors/resolveRelatedValue.ts","../../src/db/write/updateMetadata.ts","../../src/ItemProperty/service/actors/hydrateFromDb.ts","../../src/db/read/getVersionData.ts","../../src/db/write/updateItemPropertyValue.ts","../../src/ItemProperty/service/actors/saveValueToDb/analyzeInput.ts","../../src/db/write/createMetadata.ts","../../src/ItemProperty/service/actors/saveValueToDb/saveImageSrc.ts","../../src/ItemProperty/service/actors/saveValueToDb/saveRelation.ts","../../src/db/read/getItemProperty.ts","../../src/ItemProperty/service/actors/saveValueToDb/saveItemStorage.ts","../../src/ItemProperty/service/propertyMachine.ts","../../src/db/read/getPropertyData.ts","../../src/ItemProperty/BaseItemProperty.ts","../../src/helpers/getSegmentedItemProperties.ts","../../src/db/read/getPublishUploads.ts","../../src/db/read/getItem.ts","../../src/db/read/getPublishPayload.ts","../../src/db/write/createNewItem.ts","../../src/Item/BaseItem.ts","../../src/schema/model/index.ts","../../src/Item/index.ts","../../src/browser/Item/Item.ts","../../src/browser/react/services.ts","../../src/browser/react/item.ts","../../src/browser/ItemProperty/ItemProperty.ts","../../src/browser/react/property.ts","../../src/browser/react/db.ts","../../src/db/write/deleteItem.ts","../../src/browser/react/trash.ts","../../src/node/webpack/index.ts","../../src/helpers/EasClient/index.ts","../../src/helpers/QueryClient/index.ts","../../src/ItemProperty/index.ts","../../src/services/events.ts","../../src/events/services/allItems.ts","../../src/events/services/index.ts","../../src/client/actors/initialize.ts","../../src/client/actors/saveAppState.ts","../../src/client/actions/setAddresses.ts","../../src/client/clientManagerMachine.ts","../../src/client/ClientManager.ts","../../src/index.ts"],"sourcesContent":["import { Static, Type } from '@sinclair/typebox'\nimport { PropertyDataType, PropertyDefs, StorageType } from '@/types'\n\nexport const TPropertyDataType = Type.Union([\n Type.Literal('Text'),\n Type.Literal('Number'),\n Type.Literal('List'),\n Type.Literal('Relation'),\n Type.Literal('ImageSrc'),\n Type.Literal('FileSrc'),\n Type.Literal('Json'),\n Type.Literal('Blob'),\n])\n\nexport const TStorageType = Type.Union([\n Type.Literal('ItemStorage'), // Looks for a storageTransactionId property on the item\n Type.Literal('PropertyStorage'), // Looks for a storageTransactionId value on the property\n])\n\nexport const TProperty = Type.Object({\n id: Type.Optional(Type.Number()),\n name: Type.Optional(Type.String()),\n dataType: TPropertyDataType,\n ref: Type.Optional(Type.String()),\n modelId: Type.Optional(Type.Number()),\n refModelId: Type.Optional(Type.Number()),\n refValueType: Type.Optional(TPropertyDataType),\n storageType: Type.Optional(TStorageType),\n localStorageDir: Type.Optional(Type.String()),\n filenameSuffix: Type.Optional(Type.String()),\n})\n\nexport const TPropertyConstructor = Type.Function(\n [\n Type.Optional(Type.Union([Type.String(), TStorageType, Type.Undefined()])),\n Type.Optional(Type.Union([Type.String(), TPropertyDataType])),\n Type.Optional(Type.String()),\n ],\n TProperty,\n)\n\nexport const TPropertyDefs = Type.Record(\n TPropertyDataType,\n TPropertyConstructor,\n)\n\nexport const Property: PropertyDefs = {\n Text: (\n storageType?: StorageType,\n localStorageDir?: string,\n filenameSuffix?: string,\n ) => ({\n dataType: 'Text',\n storageType,\n localStorageDir,\n filenameSuffix,\n TObject: Type.String(),\n }),\n Json: () => ({ dataType: 'Json' }),\n Blob: () => ({ dataType: 'Blob' }),\n Number: () => ({ dataType: 'Number' }),\n List: (ref: string, refValueType?: PropertyDataType) => ({\n dataType: 'List',\n ref,\n refValueType,\n }),\n Relation: (ref, refValueType?: PropertyDataType) => ({\n dataType: 'Relation',\n ref,\n refValueType,\n }),\n ImageSrc: () => ({ dataType: 'ImageSrc' }),\n}\n\nexport const PropertyMetadataKey = Symbol('property')\n\nexport const PropertyConstructor = (propertyType: Static<typeof TProperty>) => {\n return function (parentClassPrototype: any, propertyKey: string) {\n const existingProperties =\n Reflect.getMetadata(PropertyMetadataKey, parentClassPrototype) || []\n\n existingProperties.push({ propertyKey, propertyType })\n // console.log('existingProperties', existingProperties)\n // console.log('propertyKey', propertyKey)\n // console.log('propertyType', propertyType)\n // console.log('PropertyMetadataKey', PropertyMetadataKey)\n // console.log('typeof target', typeof target)\n Reflect.defineMetadata(\n PropertyMetadataKey,\n existingProperties,\n parentClassPrototype,\n )\n // console.log(\n // `After adding ${propertyKey}:`,\n // Reflect.getMetadata(PropertyMetadataKey, parentClassPrototype),\n // )\n }\n}\n\nexport const Text = (\n storageType?: StorageType,\n srcDir?: string,\n filenameSuffix?: string,\n) => PropertyConstructor(Property.Text(storageType, srcDir, filenameSuffix))\nexport const Number = () => PropertyConstructor(Property.Number())\nexport const Json = () => PropertyConstructor(Property.Json())\nexport const Blob = () => PropertyConstructor(Property.Blob())\nexport const ImageSrc = () => PropertyConstructor(Property.ImageSrc())\nexport const Relation = (ref: string, refValueType?: PropertyDataType) =>\n PropertyConstructor(Property.Relation(ref, refValueType)) // Adjust for actual relation type\nexport const List = (ref: string, reValueType?: PropertyDataType) =>\n PropertyConstructor(Property.List(ref, reValueType)) // Adjust for actual list type","import { IDb } from '@/interfaces/IDb'\nimport { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core'\n\nexport abstract class BaseDb implements IDb {\n\n constructor() {\n }\n\n static PlatformClass: typeof BaseDb\n\n static setPlatformClass(platformClass: typeof BaseDb) {\n this.PlatformClass = platformClass\n }\n\n static getAppDb(): BaseSQLiteDatabase {\n return this.PlatformClass.getAppDb()\n }\n\n static isAppDbReady(): boolean {\n return this.PlatformClass.isAppDbReady()\n }\n\n static prepareDb(filesDir: string): Promise<BaseSQLiteDatabase> {\n return this.PlatformClass.prepareDb(filesDir)\n }\n\n static connectToDb(pathToDir: string, dbName: string): Promise<unknown> {\n return this.PlatformClass.connectToDb(pathToDir, dbName)\n }\n\n static async migrate(pathToDbDir: string, dbName: string, dbId: string): Promise<void> {\n return this.PlatformClass.migrate(pathToDbDir, dbName, dbId)\n }\n\n}","import { EventObject, fromCallback } from 'xstate'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { FromCallbackInput, ItemMachineContext } from '@/types'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:item:service:actors:waitForDb')\n\nexport const waitForDb = fromCallback<\n EventObject,\n FromCallbackInput<ItemMachineContext<any>>\n>(({ sendBack }) => {\n const _waitForDb = new Promise<void>((resolve) => {\n const interval = setInterval(() => {\n const appDb = BaseDb.getAppDb()\n if (appDb) {\n clearInterval(interval)\n resolve()\n }\n }, 100)\n })\n\n _waitForDb.then(() => {\n sendBack({ type: 'waitForDbSuccess' })\n })\n },\n)\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\n\nexport const seeds = sqliteTable(\n 'seeds',\n {\n localId: text('local_id').unique(),\n uid: text('uid'),\n schemaUid: text('schema_uid'),\n type: text('type'),\n attestationRaw: text('attestation_raw'),\n attestationCreatedAt: int('attestation_created_at'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n _markedForDeletion: int('_marked_for_deletion'),\n },\n // {\n // triggers: [\n // sql<string>`CREATE TRIGGER IF NOT EXISTS seeds_created_at_trigger\n // BEFORE INSERT\n // ON seeds\n // FOR EACH ROW\n // BEGIN\n // SELECT strftime('%s', 'now') * 1000 INTO NEW.created_at;\n // END;`,\n // ],\n // },\n)\n\nexport type SeedType = seeds.$inferSelect\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\n\nexport const versions = sqliteTable('versions', {\n localId: text('local_id').unique(),\n uid: text('uid'),\n seedLocalId: text('seed_local_id'),\n seedUid: text('seed_uid'),\n seedType: text('seed_type'),\n note: text('note'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n attestationCreatedAt: int('attestation_created_at'),\n attestationRaw: text('attestation_raw'),\n})\n\nexport type VersionsType = versions.$inferSelect\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\n\nexport const metadata = sqliteTable('metadata', {\n localId: text('local_id').unique(),\n uid: text('uid'),\n propertyName: text('property_name'),\n propertyValue: text('property_value'),\n schemaUid: text('schema_uid'),\n modelType: text('model_type'),\n seedLocalId: text('seed_local_id'),\n seedUid: text('seed_uid'),\n versionLocalId: text('version_local_id'),\n versionUid: text('version_uid'),\n easDataType: text('eas_data_type'),\n refValueType: text('ref_value_type'),\n refModelUid: text('ref_schema_uid'),\n refSeedType: text('ref_seed_type'),\n refResolvedValue: text('ref_resolved_value'),\n refResolvedDisplayValue: text('ref_resolved_display_value'),\n localStorageDir: text('local_storage_dir'),\n attestationRaw: text('attestation_raw'),\n attestationCreatedAt: int('attestation_created_at'),\n contentHash: text('content_hash'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n})\n\nexport type MetadataType = metadata.$inferSelect\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\n\nexport const appState = sqliteTable('appState', {\n key: text('key').unique(),\n value: text('value'),\n createdAt: int('created_at'),\n updatedAt: int('updated_at'),\n})\n\nexport type appStateType = appState.$inferSelect\n","import { int, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core'\nimport { relations } from 'drizzle-orm'\n\nexport const models = sqliteTable('models', {\n id: int('id').primaryKey({ autoIncrement: true }),\n name: text('name').notNull(),\n})\n\nexport const modelsRelations = relations(models, ({ many }) => ({\n properties: many(properties),\n}))\n\nexport type NewModelRecord = typeof models.$inferInsert\nexport type ModelRecordType = typeof models.$inferSelect\n\nexport const properties = sqliteTable(\n 'properties',\n {\n id: int('id').primaryKey({ autoIncrement: true }),\n name: text('name').notNull(),\n dataType: text('data_type').notNull(),\n readEndpoint: text('read_endpoint'),\n updateEndpoint: text('update_endpoint'),\n modelId: int('model_id')\n .notNull()\n .references(() => models.id),\n refModelId: int('ref_model_id').references(() => models.id),\n refValueType: text('ref_value_type'),\n },\n (table) => {\n return {\n uniqueNameModelId: unique('unique_name_model_id').on(\n table.name,\n table.modelId,\n ),\n }\n },\n)\n\nexport const propertiesRelations = relations(properties, ({ one }) => ({\n model: one(models),\n refModel: one(models),\n}))\n\nexport type NewPropertyRecord = typeof properties.$inferInsert\nexport type PropertyType = typeof properties.$inferSelect\n","import { int, sqliteTable, text } from 'drizzle-orm/sqlite-core'\nimport { relations } from 'drizzle-orm'\nimport { models } from './ModelSchema'\n\nexport const modelUids = sqliteTable('model_uids', {\n id: int('id').primaryKey({ autoIncrement: true }),\n uid: text('uid').notNull(),\n modelId: int('model_id')\n .notNull()\n .unique()\n .references(() => models.id),\n})\n\nexport const modelRelations = relations(modelUids, ({ many, one }) => ({\n model: one(models),\n}))\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds } from '@/seedSchema'\nimport { and, eq, isNotNull, not, or } from 'drizzle-orm'\n\ntype GetExistingItemProps = {\n seedLocalId: string\n seedUid: string\n}\n\ntype GetExistingItemReturn = {\n seedLocalId: string\n seedUid: string\n createdAt: string\n}\n\nexport const getExistingItem = async ({\n seedLocalId,\n seedUid,\n}: GetExistingItemProps): Promise<GetExistingItemReturn | undefined> => {\n const appDb = BaseDb.getAppDb()\n\n const rows = await appDb\n .select({\n seedLocalId: seeds.localId,\n seedUid: seeds.uid,\n createdAt: seeds.createdAt,\n })\n .from(seeds)\n .where(\n or(\n and(\n isNotNull(seeds.uid),\n not(eq(seeds.uid, '')),\n not(eq(seeds.uid, 'undefined')),\n not(eq(seeds.uid, 'null')),\n not(eq(seeds.uid, 'false')),\n not(eq(seeds.uid, '0')),\n eq(seeds.uid, seedUid)\n ),\n and(\n isNotNull(seeds.localId),\n not(eq(seeds.localId, '')),\n not(eq(seeds.localId, 'undefined')),\n not(eq(seeds.localId, 'null')),\n not(eq(seeds.localId, 'false')),\n not(eq(seeds.localId, '0')),\n eq(seeds.localId, seedLocalId)\n )\n )\n )\n\n if (!rows || rows.length === 0) {\n return undefined\n }\n\n const matchingRow = rows.find(row => row.seedUid === seedUid) ||\n rows.find(row => row.seedLocalId === seedLocalId)\n\n return matchingRow\n} ","import { EventObject, fromCallback } from 'xstate'\nimport pluralize from 'pluralize'\nimport { getExistingItem } from '@/db/read/getExistingItem'\nimport { FromCallbackInput, ItemMachineContext } from '@/types'\n\nexport const initialize = fromCallback<\n EventObject,\n FromCallbackInput<ItemMachineContext<any>>\n>(\n ({ sendBack, input: { context } }) => {\n const { seedLocalId, seedUid, ModelClass } = context\n\n if (!ModelClass) {\n throw new Error('ModelClass is required')\n }\n\n const modelName = ModelClass.originalConstructor.name\n const modelNamePlural = pluralize(modelName)\n const modelTableName = modelNamePlural.toLowerCase()\n\n const _intialize = async (): Promise<void> => {\n const existingItem = await getExistingItem({ seedUid, seedLocalId })\n\n if (existingItem) {\n sendBack({\n type: 'hasExistingItem',\n modelName,\n modelTableName,\n modelNamePlural,\n existingItem,\n })\n return\n }\n\n sendBack({\n type: 'isNewItem',\n modelName,\n modelTableName,\n modelNamePlural,\n })\n }\n\n _intialize().then(() => {\n sendBack({ type: 'initializeSuccess' })\n return\n })\n },\n)\n","import EventEmitter from 'eventemitter3'\n\nconst eventEmitter = new EventEmitter()\n\nexport { eventEmitter }\n","import { customAlphabet } from 'nanoid'\nimport * as nanoIdDictionary from 'nanoid-dictionary'\nimport debug from 'debug'\nimport { GetCorrectId } from '@/types/helpers'\nimport { GetCorrectIdReturn } from '@/types/helpers'\nimport { BaseFileManager } from './FileManager/BaseFileManager'\nexport * from './ArweaveClient/BaseArweaveClient'\nexport * from './EasClient/BaseEasClient'\nexport * from './QueryClient/BaseQueryClient'\nexport * from './FileManager/BaseFileManager'\nconst logger = debug('seedSdk:shared:helpers')\n\n\nconst { alphanumeric } = nanoIdDictionary\n\nexport const generateId = (): string => {\n return customAlphabet(alphanumeric, 10)()\n}\n\nexport const toSnakeCase = (str: string) => {\n return str.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase()\n}\n\nexport const identifyString = (str: string) => {\n try {\n JSON.parse(str)\n return 'json'\n } catch (e) {\n // Not JSON\n }\n\n if (!str) {\n return\n }\n\n if (str.trim().startsWith('<') && str.trim().endsWith('>')) {\n return 'html'\n }\n\n // Simple markdown checks (very naive)\n if (/^#{1,6}\\s|^-{3,}|\\*{3,}|^-{1,2}\\s|\\*\\s/.test(str)) {\n return 'markdown'\n }\n\n if (/^data:image\\/[a-zA-Z]+;base64,[A-Za-z0-9+/]+={0,2}$/.test(str)) {\n return 'base64'\n }\n\n // Default to plain text if unsure\n return 'text'\n}\n\nexport const getMimeType = (base64: string) => {\n if (!base64) {\n return null\n }\n const result = base64.match(/^data:([a-zA-Z0-9]+\\/[a-zA-Z0-9-.+]+).*,/)\n\n if (result && result.length > 1) {\n return result[1]\n } else {\n return null // MIME type could not be determined\n }\n}\n\nexport const getCorrectId: GetCorrectId = (localIdOrUid: string) => {\n const id: GetCorrectIdReturn = {\n localId: undefined,\n uid: undefined,\n }\n if (!localIdOrUid) {\n return id\n }\n if (localIdOrUid.length === 10) {\n id.localId = localIdOrUid\n }\n if (localIdOrUid.startsWith('0x') && localIdOrUid.length === 66) {\n id.uid = localIdOrUid\n }\n return id\n}\n\nexport const getDataTypeFromString = (\n data: string,\n): 'imageBase64' | 'base64' | 'url' | null => {\n const nonImageBase64Regex =\n /^(?!data:image\\/(?:jpeg|png|gif|bmp|webp);base64,)[A-Za-z0-9+/=]+$/\n\n if (nonImageBase64Regex.test(data)) {\n return 'base64'\n }\n\n // Regular expression for base64 (simple version, checking for base64 format)\n const imageBase64Regex = /^data:image\\/[a-zA-Z]+;base64,[A-Za-z0-9+/]+={0,2}$/\n\n if (imageBase64Regex.test(data)) {\n return 'imageBase64'\n }\n\n // Regular expression for URL (simple version, checking for common URL format)\n const urlRegex =\n /^(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/)?[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,5}(:[0-9]{1,5})?(\\/.*)?$/\n\n if (urlRegex.test(data)) {\n return 'url'\n }\n\n return null\n}\n\nexport const convertTxIdToImageSrc = async (\n txId: string,\n): Promise<string | undefined> => {\n const imageFilePath = `/files/images/${txId}`\n const fileExists = await BaseFileManager.pathExists(imageFilePath)\n if (!fileExists) {\n logger(`[ItemView] [updateImageSrc] ${imageFilePath} does not exist`)\n return\n }\n const buffer = await BaseFileManager.readFileAsBuffer(imageFilePath)\n\n const uint = new Uint8Array(buffer)\n\n const imageBlob = new Blob([uint])\n\n return URL.createObjectURL(imageBlob)\n}\n\nexport const getExecutionTime = async (task, args) => {\n const start = Date.now()\n await task(...args)\n return Date.now() - start\n}\n\nexport const capitalizeFirstLetter = (string: string) =>\n string.charAt(0).toUpperCase() + string.slice(1)\n\nexport const parseEasRelationPropertyName = (easPropertyName: string) => {\n // Split the input string on the first underscore\n const [singularProperty, modelName, idSegment] = easPropertyName.split('_')\n\n // If there are any other parts, assume it is a list (e.g., has 'ids' or other suffix)\n const isList = idSegment === 'ids'\n\n // Create the final property name by pluralizing the singular part\n const propertyName = singularProperty.endsWith('s')\n ? singularProperty\n : singularProperty + 's'\n\n return {\n propertyName, // Plural form of the property name\n modelName, // Model name extracted from the second part\n isList, // True if the property is a list (e.g., 'ids' is present)\n }\n}\n\nexport const getContentHash = async (\n base64: string | null | undefined,\n uint: Uint8Array | undefined,\n): Promise<string> => {\n let data\n\n if (base64 && !uint) {\n const encoder = new TextEncoder()\n data = encoder.encode(base64)\n }\n\n if (uint) {\n data = uint\n }\n\n // Hash the data with SHA-256\n const hashBuffer = await crypto.subtle.digest('SHA-256', data as Uint8Array)\n\n // Convert the ArrayBuffer to a hex string\n const hashArray = Array.from(new Uint8Array(hashBuffer))\n return hashArray.map((b) => b.toString(16).padStart(2, '0')).join('')\n}\n\nexport const isBinary = (arrayBuffer: ArrayBuffer): boolean => {\n const view = new Uint8Array(arrayBuffer);\n\n let nonTextCount = 0;\n const threshold = 0.2; // Adjust as needed (e.g., 20% non-text implies binary)\n\n for (let i = 0; i < view.length; i++) {\n const byte = view[i];\n\n // ASCII printable characters (32-126) and common whitespace (9, 10, 13)\n if (\n (byte >= 32 && byte <= 126) || // Printable ASCII\n byte === 9 || byte === 10 || byte === 13 // Tab, LF, CR\n ) {\n continue;\n }\n\n nonTextCount++;\n if (nonTextCount / view.length > threshold) {\n return true; // More than threshold are non-text bytes\n }\n }\n\n return false; // Fewer than threshold are non-text bytes\n}\n","/* eslint-disable */\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\nexport type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n};\n\nexport type AffectedRowsOutput = {\n __typename?: 'AffectedRowsOutput';\n count: Scalars['Int']['output'];\n};\n\nexport type AggregateAttestation = {\n __typename?: 'AggregateAttestation';\n _avg?: Maybe<AttestationAvgAggregate>;\n _count?: Maybe<AttestationCountAggregate>;\n _max?: Maybe<AttestationMaxAggregate>;\n _min?: Maybe<AttestationMinAggregate>;\n _sum?: Maybe<AttestationSumAggregate>;\n};\n\nexport type AggregateEnsName = {\n __typename?: 'AggregateEnsName';\n _avg?: Maybe<EnsNameAvgAggregate>;\n _count?: Maybe<EnsNameCountAggregate>;\n _max?: Maybe<EnsNameMaxAggregate>;\n _min?: Maybe<EnsNameMinAggregate>;\n _sum?: Maybe<EnsNameSumAggregate>;\n};\n\nexport type AggregateOffchainRevocation = {\n __typename?: 'AggregateOffchainRevocation';\n _avg?: Maybe<OffchainRevocationAvgAggregate>;\n _count?: Maybe<OffchainRevocationCountAggregate>;\n _max?: Maybe<OffchainRevocationMaxAggregate>;\n _min?: Maybe<OffchainRevocationMinAggregate>;\n _sum?: Maybe<OffchainRevocationSumAggregate>;\n};\n\nexport type AggregateSchema = {\n __typename?: 'AggregateSchema';\n _avg?: Maybe<SchemaAvgAggregate>;\n _count?: Maybe<SchemaCountAggregate>;\n _max?: Maybe<SchemaMaxAggregate>;\n _min?: Maybe<SchemaMinAggregate>;\n _sum?: Maybe<SchemaSumAggregate>;\n};\n\nexport type AggregateSchemaName = {\n __typename?: 'AggregateSchemaName';\n _avg?: Maybe<SchemaNameAvgAggregate>;\n _count?: Maybe<SchemaNameCountAggregate>;\n _max?: Maybe<SchemaNameMaxAggregate>;\n _min?: Maybe<SchemaNameMinAggregate>;\n _sum?: Maybe<SchemaNameSumAggregate>;\n};\n\nexport type AggregateServiceStat = {\n __typename?: 'AggregateServiceStat';\n _count?: Maybe<ServiceStatCountAggregate>;\n _max?: Maybe<ServiceStatMaxAggregate>;\n _min?: Maybe<ServiceStatMinAggregate>;\n};\n\nexport type AggregateTimestamp = {\n __typename?: 'AggregateTimestamp';\n _avg?: Maybe<TimestampAvgAggregate>;\n _count?: Maybe<TimestampCountAggregate>;\n _max?: Maybe<TimestampMaxAggregate>;\n _min?: Maybe<TimestampMinAggregate>;\n _sum?: Maybe<TimestampSumAggregate>;\n};\n\n/** Representation of a value transfer between wallets, in both winson and ar. */\nexport type Amount = {\n __typename?: 'Amount';\n /** Amount as an AR string e.g. \\`\"0.000000000001\"\\`. */\n ar: Scalars['String']['output'];\n /** Amount as a winston string e.g. \\`\"1000000000000\"\\`. */\n winston: Scalars['String']['output'];\n};\n\nexport type Attestation = {\n __typename?: 'Attestation';\n attester: Scalars['String']['output'];\n data: Scalars['String']['output'];\n decodedDataJson: Scalars['String']['output'];\n expirationTime: Scalars['Int']['output'];\n id: Scalars['String']['output'];\n ipfsHash: Scalars['String']['output'];\n isOffchain: Scalars['Boolean']['output'];\n recipient: Scalars['String']['output'];\n refUID: Scalars['String']['output'];\n revocable: Scalars['Boolean']['output'];\n revocationTime: Scalars['Int']['output'];\n revoked: Scalars['Boolean']['output'];\n schema: Schema;\n schemaId: Scalars['String']['output'];\n time: Scalars['Int']['output'];\n timeCreated: Scalars['Int']['output'];\n txid: Scalars['String']['output'];\n};\n\nexport type AttestationAvgAggregate = {\n __typename?: 'AttestationAvgAggregate';\n expirationTime?: Maybe<Scalars['Float']['output']>;\n revocationTime?: Maybe<Scalars['Float']['output']>;\n time?: Maybe<Scalars['Float']['output']>;\n timeCreated?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type AttestationAvgOrderByAggregateInput = {\n expirationTime?: InputMaybe<SortOrder>;\n revocationTime?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n timeCreated?: InputMaybe<SortOrder>;\n};\n\nexport type AttestationCountAggregate = {\n __typename?: 'AttestationCountAggregate';\n _all: Scalars['Int']['output'];\n attester: Scalars['Int']['output'];\n data: Scalars['Int']['output'];\n decodedDataJson: Scalars['Int']['output'];\n expirationTime: Scalars['Int']['output'];\n id: Scalars['Int']['output'];\n ipfsHash: Scalars['Int']['output'];\n isOffchain: Scalars['Int']['output'];\n recipient: Scalars['Int']['output'];\n refUID: Scalars['Int']['output'];\n revocable: Scalars['Int']['output'];\n revocationTime: Scalars['Int']['output'];\n revoked: Scalars['Int']['output'];\n schemaId: Scalars['Int']['output'];\n time: Scalars['Int']['output'];\n timeCreated: Scalars['Int']['output'];\n txid: Scalars['Int']['output'];\n};\n\nexport type AttestationCountOrderByAggregateInput = {\n attester?: InputMaybe<SortOrder>;\n data?: InputMaybe<SortOrder>;\n decodedDataJson?: InputMaybe<SortOrder>;\n expirationTime?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n ipfsHash?: InputMaybe<SortOrder>;\n isOffchain?: InputMaybe<SortOrder>;\n recipient?: InputMaybe<SortOrder>;\n refUID?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n revocationTime?: InputMaybe<SortOrder>;\n revoked?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n timeCreated?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type AttestationCreateInput = {\n attester: Scalars['String']['input'];\n data: Scalars['String']['input'];\n decodedDataJson?: InputMaybe<Scalars['String']['input']>;\n expirationTime: Scalars['Int']['input'];\n id: Scalars['String']['input'];\n ipfsHash: Scalars['String']['input'];\n isOffchain: Scalars['Boolean']['input'];\n recipient: Scalars['String']['input'];\n refUID: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n revocationTime: Scalars['Int']['input'];\n revoked: Scalars['Boolean']['input'];\n schema: SchemaCreateNestedOneWithoutAttestationsInput;\n time: Scalars['Int']['input'];\n timeCreated: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type AttestationCreateManyInput = {\n attester: Scalars['String']['input'];\n data: Scalars['String']['input'];\n decodedDataJson?: InputMaybe<Scalars['String']['input']>;\n expirationTime: Scalars['Int']['input'];\n id: Scalars['String']['input'];\n ipfsHash: Scalars['String']['input'];\n isOffchain: Scalars['Boolean']['input'];\n recipient: Scalars['String']['input'];\n refUID: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n revocationTime: Scalars['Int']['input'];\n revoked: Scalars['Boolean']['input'];\n schemaId: Scalars['String']['input'];\n time: Scalars['Int']['input'];\n timeCreated: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type AttestationCreateManySchemaInput = {\n attester: Scalars['String']['input'];\n data: Scalars['String']['input'];\n decodedDataJson?: InputMaybe<Scalars['String']['input']>;\n expirationTime: Scalars['Int']['input'];\n id: Scalars['String']['input'];\n ipfsHash: Scalars['String']['input'];\n isOffchain: Scalars['Boolean']['input'];\n recipient: Scalars['String']['input'];\n refUID: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n revocationTime: Scalars['Int']['input'];\n revoked: Scalars['Boolean']['input'];\n time: Scalars['Int']['input'];\n timeCreated: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type AttestationCreateManySchemaInputEnvelope = {\n data: Array<AttestationCreateManySchemaInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type AttestationCreateNestedManyWithoutSchemaInput = {\n connect?: InputMaybe<Array<AttestationWhereUniqueInput>>;\n connectOrCreate?: InputMaybe<Array<AttestationCreateOrConnectWithoutSchemaInput>>;\n create?: InputMaybe<Array<AttestationCreateWithoutSchemaInput>>;\n createMany?: InputMaybe<AttestationCreateManySchemaInputEnvelope>;\n};\n\nexport type AttestationCreateOrConnectWithoutSchemaInput = {\n create: AttestationCreateWithoutSchemaInput;\n where: AttestationWhereUniqueInput;\n};\n\nexport type AttestationCreateWithoutSchemaInput = {\n attester: Scalars['String']['input'];\n data: Scalars['String']['input'];\n decodedDataJson?: InputMaybe<Scalars['String']['input']>;\n expirationTime: Scalars['Int']['input'];\n id: Scalars['String']['input'];\n ipfsHash: Scalars['String']['input'];\n isOffchain: Scalars['Boolean']['input'];\n recipient: Scalars['String']['input'];\n refUID: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n revocationTime: Scalars['Int']['input'];\n revoked: Scalars['Boolean']['input'];\n time: Scalars['Int']['input'];\n timeCreated: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type AttestationGroupBy = {\n __typename?: 'AttestationGroupBy';\n _avg?: Maybe<AttestationAvgAggregate>;\n _count?: Maybe<AttestationCountAggregate>;\n _max?: Maybe<AttestationMaxAggregate>;\n _min?: Maybe<AttestationMinAggregate>;\n _sum?: Maybe<AttestationSumAggregate>;\n attester: Scalars['String']['output'];\n data: Scalars['String']['output'];\n decodedDataJson: Scalars['String']['output'];\n expirationTime: Scalars['Int']['output'];\n id: Scalars['String']['output'];\n ipfsHash: Scalars['String']['output'];\n isOffchain: Scalars['Boolean']['output'];\n recipient: Scalars['String']['output'];\n refUID: Scalars['String']['output'];\n revocable: Scalars['Boolean']['output'];\n revocationTime: Scalars['Int']['output'];\n revoked: Scalars['Boolean']['output'];\n schemaId: Scalars['String']['output'];\n time: Scalars['Int']['output'];\n timeCreated: Scalars['Int']['output'];\n txid: Scalars['String']['output'];\n};\n\nexport type AttestationListRelationFilter = {\n every?: InputMaybe<AttestationWhereInput>;\n none?: InputMaybe<AttestationWhereInput>;\n some?: InputMaybe<AttestationWhereInput>;\n};\n\nexport type AttestationMaxAggregate = {\n __typename?: 'AttestationMaxAggregate';\n attester?: Maybe<Scalars['String']['output']>;\n data?: Maybe<Scalars['String']['output']>;\n decodedDataJson?: Maybe<Scalars['String']['output']>;\n expirationTime?: Maybe<Scalars['Int']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n ipfsHash?: Maybe<Scalars['String']['output']>;\n isOffchain?: Maybe<Scalars['Boolean']['output']>;\n recipient?: Maybe<Scalars['String']['output']>;\n refUID?: Maybe<Scalars['String']['output']>;\n revocable?: Maybe<Scalars['Boolean']['output']>;\n revocationTime?: Maybe<Scalars['Int']['output']>;\n revoked?: Maybe<Scalars['Boolean']['output']>;\n schemaId?: Maybe<Scalars['String']['output']>;\n time?: Maybe<Scalars['Int']['output']>;\n timeCreated?: Maybe<Scalars['Int']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AttestationMaxOrderByAggregateInput = {\n attester?: InputMaybe<SortOrder>;\n data?: InputMaybe<SortOrder>;\n decodedDataJson?: InputMaybe<SortOrder>;\n expirationTime?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n ipfsHash?: InputMaybe<SortOrder>;\n isOffchain?: InputMaybe<SortOrder>;\n recipient?: InputMaybe<SortOrder>;\n refUID?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n revocationTime?: InputMaybe<SortOrder>;\n revoked?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n timeCreated?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type AttestationMinAggregate = {\n __typename?: 'AttestationMinAggregate';\n attester?: Maybe<Scalars['String']['output']>;\n data?: Maybe<Scalars['String']['output']>;\n decodedDataJson?: Maybe<Scalars['String']['output']>;\n expirationTime?: Maybe<Scalars['Int']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n ipfsHash?: Maybe<Scalars['String']['output']>;\n isOffchain?: Maybe<Scalars['Boolean']['output']>;\n recipient?: Maybe<Scalars['String']['output']>;\n refUID?: Maybe<Scalars['String']['output']>;\n revocable?: Maybe<Scalars['Boolean']['output']>;\n revocationTime?: Maybe<Scalars['Int']['output']>;\n revoked?: Maybe<Scalars['Boolean']['output']>;\n schemaId?: Maybe<Scalars['String']['output']>;\n time?: Maybe<Scalars['Int']['output']>;\n timeCreated?: Maybe<Scalars['Int']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AttestationMinOrderByAggregateInput = {\n attester?: InputMaybe<SortOrder>;\n data?: InputMaybe<SortOrder>;\n decodedDataJson?: InputMaybe<SortOrder>;\n expirationTime?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n ipfsHash?: InputMaybe<SortOrder>;\n isOffchain?: InputMaybe<SortOrder>;\n recipient?: InputMaybe<SortOrder>;\n refUID?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n revocationTime?: InputMaybe<SortOrder>;\n revoked?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n timeCreated?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type AttestationOrderByRelationAggregateInput = {\n _count?: InputMaybe<SortOrder>;\n};\n\nexport type AttestationOrderByWithAggregationInput = {\n _avg?: InputMaybe<AttestationAvgOrderByAggregateInput>;\n _count?: InputMaybe<AttestationCountOrderByAggregateInput>;\n _max?: InputMaybe<AttestationMaxOrderByAggregateInput>;\n _min?: InputMaybe<AttestationMinOrderByAggregateInput>;\n _sum?: InputMaybe<AttestationSumOrderByAggregateInput>;\n attester?: InputMaybe<SortOrder>;\n data?: InputMaybe<SortOrder>;\n decodedDataJson?: InputMaybe<SortOrder>;\n expirationTime?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n ipfsHash?: InputMaybe<SortOrder>;\n isOffchain?: InputMaybe<SortOrder>;\n recipient?: InputMaybe<SortOrder>;\n refUID?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n revocationTime?: InputMaybe<SortOrder>;\n revoked?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n timeCreated?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type AttestationOrderByWithRelationInput = {\n attester?: InputMaybe<SortOrder>;\n data?: InputMaybe<SortOrder>;\n decodedDataJson?: InputMaybe<SortOrder>;\n expirationTime?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n ipfsHash?: InputMaybe<SortOrder>;\n isOffchain?: InputMaybe<SortOrder>;\n recipient?: InputMaybe<SortOrder>;\n refUID?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n revocationTime?: InputMaybe<SortOrder>;\n revoked?: InputMaybe<SortOrder>;\n schema?: InputMaybe<SchemaOrderByWithRelationInput>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n timeCreated?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport enum AttestationScalarFieldEnum {\n Attester = 'attester',\n Data = 'data',\n DecodedDataJson = 'decodedDataJson',\n ExpirationTime = 'expirationTime',\n Id = 'id',\n IpfsHash = 'ipfsHash',\n IsOffchain = 'isOffchain',\n Recipient = 'recipient',\n RefUid = 'refUID',\n Revocable = 'revocable',\n RevocationTime = 'revocationTime',\n Revoked = 'revoked',\n SchemaId = 'schemaId',\n Time = 'time',\n TimeCreated = 'timeCreated',\n Txid = 'txid'\n}\n\nexport type AttestationScalarWhereInput = {\n AND?: InputMaybe<Array<AttestationScalarWhereInput>>;\n NOT?: InputMaybe<Array<AttestationScalarWhereInput>>;\n OR?: InputMaybe<Array<AttestationScalarWhereInput>>;\n attester?: InputMaybe<StringFilter>;\n data?: InputMaybe<StringFilter>;\n decodedDataJson?: InputMaybe<StringFilter>;\n expirationTime?: InputMaybe<IntFilter>;\n id?: InputMaybe<StringFilter>;\n ipfsHash?: InputMaybe<StringFilter>;\n isOffchain?: InputMaybe<BoolFilter>;\n recipient?: InputMaybe<StringFilter>;\n refUID?: InputMaybe<StringFilter>;\n revocable?: InputMaybe<BoolFilter>;\n revocationTime?: InputMaybe<IntFilter>;\n revoked?: InputMaybe<BoolFilter>;\n schemaId?: InputMaybe<StringFilter>;\n time?: InputMaybe<IntFilter>;\n timeCreated?: InputMaybe<IntFilter>;\n txid?: InputMaybe<StringFilter>;\n};\n\nexport type AttestationScalarWhereWithAggregatesInput = {\n AND?: InputMaybe<Array<AttestationScalarWhereWithAggregatesInput>>;\n NOT?: InputMaybe<Array<AttestationScalarWhereWithAggregatesInput>>;\n OR?: InputMaybe<Array<AttestationScalarWhereWithAggregatesInput>>;\n attester?: InputMaybe<StringWithAggregatesFilter>;\n data?: InputMaybe<StringWithAggregatesFilter>;\n decodedDataJson?: InputMaybe<StringWithAggregatesFilter>;\n expirationTime?: InputMaybe<IntWithAggregatesFilter>;\n id?: InputMaybe<StringWithAggregatesFilter>;\n ipfsHash?: InputMaybe<StringWithAggregatesFilter>;\n isOffchain?: InputMaybe<BoolWithAggregatesFilter>;\n recipient?: InputMaybe<StringWithAggregatesFilter>;\n refUID?: InputMaybe<StringWithAggregatesFilter>;\n revocable?: InputMaybe<BoolWithAggregatesFilter>;\n revocationTime?: InputMaybe<IntWithAggregatesFilter>;\n revoked?: InputMaybe<BoolWithAggregatesFilter>;\n schemaId?: InputMaybe<StringWithAggregatesFilter>;\n time?: InputMaybe<IntWithAggregatesFilter>;\n timeCreated?: InputMaybe<IntWithAggregatesFilter>;\n txid?: InputMaybe<StringWithAggregatesFilter>;\n};\n\nexport type AttestationSumAggregate = {\n __typename?: 'AttestationSumAggregate';\n expirationTime?: Maybe<Scalars['Int']['output']>;\n revocationTime?: Maybe<Scalars['Int']['output']>;\n time?: Maybe<Scalars['Int']['output']>;\n timeCreated?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type AttestationSumOrderByAggregateInput = {\n expirationTime?: InputMaybe<SortOrder>;\n revocationTime?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n timeCreated?: InputMaybe<SortOrder>;\n};\n\nexport type AttestationUpdateInput = {\n attester?: InputMaybe<StringFieldUpdateOperationsInput>;\n data?: InputMaybe<StringFieldUpdateOperationsInput>;\n decodedDataJson?: InputMaybe<StringFieldUpdateOperationsInput>;\n expirationTime?: InputMaybe<IntFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n ipfsHash?: InputMaybe<StringFieldUpdateOperationsInput>;\n isOffchain?: InputMaybe<BoolFieldUpdateOperationsInput>;\n recipient?: InputMaybe<StringFieldUpdateOperationsInput>;\n refUID?: InputMaybe<StringFieldUpdateOperationsInput>;\n revocable?: InputMaybe<BoolFieldUpdateOperationsInput>;\n revocationTime?: InputMaybe<IntFieldUpdateOperationsInput>;\n revoked?: InputMaybe<BoolFieldUpdateOperationsInput>;\n schema?: InputMaybe<SchemaUpdateOneRequiredWithoutAttestationsNestedInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n timeCreated?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type AttestationUpdateManyMutationInput = {\n attester?: InputMaybe<StringFieldUpdateOperationsInput>;\n data?: InputMaybe<StringFieldUpdateOperationsInput>;\n decodedDataJson?: InputMaybe<StringFieldUpdateOperationsInput>;\n expirationTime?: InputMaybe<IntFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n ipfsHash?: InputMaybe<StringFieldUpdateOperationsInput>;\n isOffchain?: InputMaybe<BoolFieldUpdateOperationsInput>;\n recipient?: InputMaybe<StringFieldUpdateOperationsInput>;\n refUID?: InputMaybe<StringFieldUpdateOperationsInput>;\n revocable?: InputMaybe<BoolFieldUpdateOperationsInput>;\n revocationTime?: InputMaybe<IntFieldUpdateOperationsInput>;\n revoked?: InputMaybe<BoolFieldUpdateOperationsInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n timeCreated?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type AttestationUpdateManyWithWhereWithoutSchemaInput = {\n data: AttestationUpdateManyMutationInput;\n where: AttestationScalarWhereInput;\n};\n\nexport type AttestationUpdateManyWithoutSchemaNestedInput = {\n connect?: InputMaybe<Array<AttestationWhereUniqueInput>>;\n connectOrCreate?: InputMaybe<Array<AttestationCreateOrConnectWithoutSchemaInput>>;\n create?: InputMaybe<Array<AttestationCreateWithoutSchemaInput>>;\n createMany?: InputMaybe<AttestationCreateManySchemaInputEnvelope>;\n delete?: InputMaybe<Array<AttestationWhereUniqueInput>>;\n deleteMany?: InputMaybe<Array<AttestationScalarWhereInput>>;\n disconnect?: InputMaybe<Array<AttestationWhereUniqueInput>>;\n set?: InputMaybe<Array<AttestationWhereUniqueInput>>;\n update?: InputMaybe<Array<AttestationUpdateWithWhereUniqueWithoutSchemaInput>>;\n updateMany?: InputMaybe<Array<AttestationUpdateManyWithWhereWithoutSchemaInput>>;\n upsert?: InputMaybe<Array<AttestationUpsertWithWhereUniqueWithoutSchemaInput>>;\n};\n\nexport type AttestationUpdateWithWhereUniqueWithoutSchemaInput = {\n data: AttestationUpdateWithoutSchemaInput;\n where: AttestationWhereUniqueInput;\n};\n\nexport type AttestationUpdateWithoutSchemaInput = {\n attester?: InputMaybe<StringFieldUpdateOperationsInput>;\n data?: InputMaybe<StringFieldUpdateOperationsInput>;\n decodedDataJson?: InputMaybe<StringFieldUpdateOperationsInput>;\n expirationTime?: InputMaybe<IntFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n ipfsHash?: InputMaybe<StringFieldUpdateOperationsInput>;\n isOffchain?: InputMaybe<BoolFieldUpdateOperationsInput>;\n recipient?: InputMaybe<StringFieldUpdateOperationsInput>;\n refUID?: InputMaybe<StringFieldUpdateOperationsInput>;\n revocable?: InputMaybe<BoolFieldUpdateOperationsInput>;\n revocationTime?: InputMaybe<IntFieldUpdateOperationsInput>;\n revoked?: InputMaybe<BoolFieldUpdateOperationsInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n timeCreated?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type AttestationUpsertWithWhereUniqueWithoutSchemaInput = {\n create: AttestationCreateWithoutSchemaInput;\n update: AttestationUpdateWithoutSchemaInput;\n where: AttestationWhereUniqueInput;\n};\n\nexport type AttestationWhereInput = {\n AND?: InputMaybe<Array<AttestationWhereInput>>;\n NOT?: InputMaybe<Array<AttestationWhereInput>>;\n OR?: InputMaybe<Array<AttestationWhereInput>>;\n attester?: InputMaybe<StringFilter>;\n data?: InputMaybe<StringFilter>;\n decodedDataJson?: InputMaybe<StringFilter>;\n expirationTime?: InputMaybe<IntFilter>;\n id?: InputMaybe<StringFilter>;\n ipfsHash?: InputMaybe<StringFilter>;\n isOffchain?: InputMaybe<BoolFilter>;\n recipient?: InputMaybe<StringFilter>;\n refUID?: InputMaybe<StringFilter>;\n revocable?: InputMaybe<BoolFilter>;\n revocationTime?: InputMaybe<IntFilter>;\n revoked?: InputMaybe<BoolFilter>;\n schema?: InputMaybe<SchemaRelationFilter>;\n schemaId?: InputMaybe<StringFilter>;\n time?: InputMaybe<IntFilter>;\n timeCreated?: InputMaybe<IntFilter>;\n txid?: InputMaybe<StringFilter>;\n};\n\nexport type AttestationWhereUniqueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Block = {\n __typename?: 'Block';\n /** The block height. */\n height: Scalars['Int']['output'];\n /** The block ID. */\n id: Scalars['ID']['output'];\n /** The previous block ID. */\n previous: Scalars['ID']['output'];\n /** The block timestamp (UTC). */\n timestamp: Scalars['Int']['output'];\n};\n\n/**\n * Paginated result set using the GraphQL cursor spec,\n * see: https://relay.dev/graphql/connections.htm.\n */\nexport type BlockConnection = {\n __typename?: 'BlockConnection';\n edges: Array<BlockEdge>;\n pageInfo: PageInfo;\n};\n\n/** Paginated result set using the GraphQL cursor spec. */\nexport type BlockEdge = {\n __typename?: 'BlockEdge';\n /**\n * The cursor value for fetching the next page.\n *\n * Pass this to the \\`after\\` parameter in \\`blocks(after: $cursor)\\`, the next page will start from the next item after this.\n */\n cursor: Scalars['String']['output'];\n /** A block object. */\n node: Block;\n};\n\n/** Find blocks within a given range */\nexport type BlockFilter = {\n /** Maximum block height to filter to */\n max?: InputMaybe<Scalars['Int']['input']>;\n /** Minimum block height to filter from */\n min?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type BoolFieldUpdateOperationsInput = {\n set?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type BoolFilter = {\n equals?: InputMaybe<Scalars['Boolean']['input']>;\n not?: InputMaybe<NestedBoolFilter>;\n};\n\nexport type BoolWithAggregatesFilter = {\n _count?: InputMaybe<NestedIntFilter>;\n _max?: InputMaybe<NestedBoolFilter>;\n _min?: InputMaybe<NestedBoolFilter>;\n equals?: InputMaybe<Scalars['Boolean']['input']>;\n not?: InputMaybe<NestedBoolWithAggregatesFilter>;\n};\n\n/**\n * The data bundle containing the current data item.\n * See: https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-104.md.\n */\nexport type Bundle = {\n __typename?: 'Bundle';\n /** ID of the containing data bundle. */\n id: Scalars['ID']['output'];\n};\n\nexport type EnsName = {\n __typename?: 'EnsName';\n id: Scalars['String']['output'];\n name: Scalars['String']['output'];\n timestamp: Scalars['Int']['output'];\n};\n\nexport type EnsNameAvgAggregate = {\n __typename?: 'EnsNameAvgAggregate';\n timestamp?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type EnsNameAvgOrderByAggregateInput = {\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type EnsNameCountAggregate = {\n __typename?: 'EnsNameCountAggregate';\n _all: Scalars['Int']['output'];\n id: Scalars['Int']['output'];\n name: Scalars['Int']['output'];\n timestamp: Scalars['Int']['output'];\n};\n\nexport type EnsNameCountOrderByAggregateInput = {\n id?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type EnsNameCreateInput = {\n id: Scalars['String']['input'];\n name: Scalars['String']['input'];\n timestamp: Scalars['Int']['input'];\n};\n\nexport type EnsNameCreateManyInput = {\n id: Scalars['String']['input'];\n name: Scalars['String']['input'];\n timestamp: Scalars['Int']['input'];\n};\n\nexport type EnsNameGroupBy = {\n __typename?: 'EnsNameGroupBy';\n _avg?: Maybe<EnsNameAvgAggregate>;\n _count?: Maybe<EnsNameCountAggregate>;\n _max?: Maybe<EnsNameMaxAggregate>;\n _min?: Maybe<EnsNameMinAggregate>;\n _sum?: Maybe<EnsNameSumAggregate>;\n id: Scalars['String']['output'];\n name: Scalars['String']['output'];\n timestamp: Scalars['Int']['output'];\n};\n\nexport type EnsNameMaxAggregate = {\n __typename?: 'EnsNameMaxAggregate';\n id?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EnsNameMaxOrderByAggregateInput = {\n id?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type EnsNameMinAggregate = {\n __typename?: 'EnsNameMinAggregate';\n id?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EnsNameMinOrderByAggregateInput = {\n id?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type EnsNameOrderByWithAggregationInput = {\n _avg?: InputMaybe<EnsNameAvgOrderByAggregateInput>;\n _count?: InputMaybe<EnsNameCountOrderByAggregateInput>;\n _max?: InputMaybe<EnsNameMaxOrderByAggregateInput>;\n _min?: InputMaybe<EnsNameMinOrderByAggregateInput>;\n _sum?: InputMaybe<EnsNameSumOrderByAggregateInput>;\n id?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type EnsNameOrderByWithRelationInput = {\n id?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport enum EnsNameScalarFieldEnum {\n Id = 'id',\n Name = 'name',\n Timestamp = 'timestamp'\n}\n\nexport type EnsNameScalarWhereWithAggregatesInput = {\n AND?: InputMaybe<Array<EnsNameScalarWhereWithAggregatesInput>>;\n NOT?: InputMaybe<Array<EnsNameScalarWhereWithAggregatesInput>>;\n OR?: InputMaybe<Array<EnsNameScalarWhereWithAggregatesInput>>;\n id?: InputMaybe<StringWithAggregatesFilter>;\n name?: InputMaybe<StringWithAggregatesFilter>;\n timestamp?: InputMaybe<IntWithAggregatesFilter>;\n};\n\nexport type EnsNameSumAggregate = {\n __typename?: 'EnsNameSumAggregate';\n timestamp?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EnsNameSumOrderByAggregateInput = {\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type EnsNameUpdateInput = {\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n name?: InputMaybe<StringFieldUpdateOperationsInput>;\n timestamp?: InputMaybe<IntFieldUpdateOperationsInput>;\n};\n\nexport type EnsNameUpdateManyMutationInput = {\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n name?: InputMaybe<StringFieldUpdateOperationsInput>;\n timestamp?: InputMaybe<IntFieldUpdateOperationsInput>;\n};\n\nexport type EnsNameWhereInput = {\n AND?: InputMaybe<Array<EnsNameWhereInput>>;\n NOT?: InputMaybe<Array<EnsNameWhereInput>>;\n OR?: InputMaybe<Array<EnsNameWhereInput>>;\n id?: InputMaybe<StringFilter>;\n name?: InputMaybe<StringFilter>;\n timestamp?: InputMaybe<IntFilter>;\n};\n\nexport type EnsNameWhereUniqueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type IntFieldUpdateOperationsInput = {\n decrement?: InputMaybe<Scalars['Int']['input']>;\n divide?: InputMaybe<Scalars['Int']['input']>;\n increment?: InputMaybe<Scalars['Int']['input']>;\n multiply?: InputMaybe<Scalars['Int']['input']>;\n set?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type IntFilter = {\n equals?: InputMaybe<Scalars['Int']['input']>;\n gt?: InputMaybe<Scalars['Int']['input']>;\n gte?: InputMaybe<Scalars['Int']['input']>;\n in?: InputMaybe<Array<Scalars['Int']['input']>>;\n lt?: InputMaybe<Scalars['Int']['input']>;\n lte?: InputMaybe<Scalars['Int']['input']>;\n not?: InputMaybe<NestedIntFilter>;\n notIn?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\nexport type IntWithAggregatesFilter = {\n _avg?: InputMaybe<NestedFloatFilter>;\n _count?: InputMaybe<NestedIntFilter>;\n _max?: InputMaybe<NestedIntFilter>;\n _min?: InputMaybe<NestedIntFilter>;\n _sum?: InputMaybe<NestedIntFilter>;\n equals?: InputMaybe<Scalars['Int']['input']>;\n gt?: InputMaybe<Scalars['Int']['input']>;\n gte?: InputMaybe<Scalars['Int']['input']>;\n in?: InputMaybe<Array<Scalars['Int']['input']>>;\n lt?: InputMaybe<Scalars['Int']['input']>;\n lte?: InputMaybe<Scalars['Int']['input']>;\n not?: InputMaybe<NestedIntWithAggregatesFilter>;\n notIn?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\n/** Basic metadata about the transaction data payload. */\nexport type MetaData = {\n __typename?: 'MetaData';\n /** Size of the associated data in bytes. */\n size: Scalars['String']['output'];\n /** Type is derrived from the \\`content-type\\` tag on a transaction. */\n type?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n createManyAttestation: AffectedRowsOutput;\n createManyEnsName: AffectedRowsOutput;\n createManyOffchainRevocation: AffectedRowsOutput;\n createManySchema: AffectedRowsOutput;\n createManySchemaName: AffectedRowsOutput;\n createManyServiceStat: AffectedRowsOutput;\n createManyTimestamp: AffectedRowsOutput;\n createOneAttestation: Attestation;\n createOneEnsName: EnsName;\n createOneOffchainRevocation: OffchainRevocation;\n createOneSchema: Schema;\n createOneSchemaName: SchemaName;\n createOneServiceStat: ServiceStat;\n createOneTimestamp: Timestamp;\n deleteManyAttestation: AffectedRowsOutput;\n deleteManyEnsName: AffectedRowsOutput;\n deleteManyOffchainRevocation: AffectedRowsOutput;\n deleteManySchema: AffectedRowsOutput;\n deleteManySchemaName: AffectedRowsOutput;\n deleteManyServiceStat: AffectedRowsOutput;\n deleteManyTimestamp: AffectedRowsOutput;\n deleteOneAttestation?: Maybe<Attestation>;\n deleteOneEnsName?: Maybe<EnsName>;\n deleteOneOffchainRevocation?: Maybe<OffchainRevocation>;\n deleteOneSchema?: Maybe<Schema>;\n deleteOneSchemaName?: Maybe<SchemaName>;\n deleteOneServiceStat?: Maybe<ServiceStat>;\n deleteOneTimestamp?: Maybe<Timestamp>;\n updateManyAttestation: AffectedRowsOutput;\n updateManyEnsName: AffectedRowsOutput;\n updateManyOffchainRevocation: AffectedRowsOutput;\n updateManySchema: AffectedRowsOutput;\n updateManySchemaName: AffectedRowsOutput;\n updateManyServiceStat: AffectedRowsOutput;\n updateManyTimestamp: AffectedRowsOutput;\n updateOneAttestation?: Maybe<Attestation>;\n updateOneEnsName?: Maybe<EnsName>;\n updateOneOffchainRevocation?: Maybe<OffchainRevocation>;\n updateOneSchema?: Maybe<Schema>;\n updateOneSchemaName?: Maybe<SchemaName>;\n updateOneServiceStat?: Maybe<ServiceStat>;\n updateOneTimestamp?: Maybe<Timestamp>;\n upsertOneAttestation: Attestation;\n upsertOneEnsName: EnsName;\n upsertOneOffchainRevocation: OffchainRevocation;\n upsertOneSchema: Schema;\n upsertOneSchemaName: SchemaName;\n upsertOneServiceStat: ServiceStat;\n upsertOneTimestamp: Timestamp;\n};\n\n\nexport type MutationCreateManyAttestationArgs = {\n data: Array<AttestationCreateManyInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationCreateManyEnsNameArgs = {\n data: Array<EnsNameCreateManyInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationCreateManyOffchainRevocationArgs = {\n data: Array<OffchainRevocationCreateManyInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationCreateManySchemaArgs = {\n data: Array<SchemaCreateManyInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationCreateManySchemaNameArgs = {\n data: Array<SchemaNameCreateManyInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationCreateManyServiceStatArgs = {\n data: Array<ServiceStatCreateManyInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationCreateManyTimestampArgs = {\n data: Array<TimestampCreateManyInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationCreateOneAttestationArgs = {\n data: AttestationCreateInput;\n};\n\n\nexport type MutationCreateOneEnsNameArgs = {\n data: EnsNameCreateInput;\n};\n\n\nexport type MutationCreateOneOffchainRevocationArgs = {\n data: OffchainRevocationCreateInput;\n};\n\n\nexport type MutationCreateOneSchemaArgs = {\n data: SchemaCreateInput;\n};\n\n\nexport type MutationCreateOneSchemaNameArgs = {\n data: SchemaNameCreateInput;\n};\n\n\nexport type MutationCreateOneServiceStatArgs = {\n data: ServiceStatCreateInput;\n};\n\n\nexport type MutationCreateOneTimestampArgs = {\n data: TimestampCreateInput;\n};\n\n\nexport type MutationDeleteManyAttestationArgs = {\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type MutationDeleteManyEnsNameArgs = {\n where?: InputMaybe<EnsNameWhereInput>;\n};\n\n\nexport type MutationDeleteManyOffchainRevocationArgs = {\n where?: InputMaybe<OffchainRevocationWhereInput>;\n};\n\n\nexport type MutationDeleteManySchemaArgs = {\n where?: InputMaybe<SchemaWhereInput>;\n};\n\n\nexport type MutationDeleteManySchemaNameArgs = {\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\n\nexport type MutationDeleteManyServiceStatArgs = {\n where?: InputMaybe<ServiceStatWhereInput>;\n};\n\n\nexport type MutationDeleteManyTimestampArgs = {\n where?: InputMaybe<TimestampWhereInput>;\n};\n\n\nexport type MutationDeleteOneAttestationArgs = {\n where: AttestationWhereUniqueInput;\n};\n\n\nexport type MutationDeleteOneEnsNameArgs = {\n where: EnsNameWhereUniqueInput;\n};\n\n\nexport type MutationDeleteOneOffchainRevocationArgs = {\n where: OffchainRevocationWhereUniqueInput;\n};\n\n\nexport type MutationDeleteOneSchemaArgs = {\n where: SchemaWhereUniqueInput;\n};\n\n\nexport type MutationDeleteOneSchemaNameArgs = {\n where: SchemaNameWhereUniqueInput;\n};\n\n\nexport type MutationDeleteOneServiceStatArgs = {\n where: ServiceStatWhereUniqueInput;\n};\n\n\nexport type MutationDeleteOneTimestampArgs = {\n where: TimestampWhereUniqueInput;\n};\n\n\nexport type MutationUpdateManyAttestationArgs = {\n data: AttestationUpdateManyMutationInput;\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type MutationUpdateManyEnsNameArgs = {\n data: EnsNameUpdateManyMutationInput;\n where?: InputMaybe<EnsNameWhereInput>;\n};\n\n\nexport type MutationUpdateManyOffchainRevocationArgs = {\n data: OffchainRevocationUpdateManyMutationInput;\n where?: InputMaybe<OffchainRevocationWhereInput>;\n};\n\n\nexport type MutationUpdateManySchemaArgs = {\n data: SchemaUpdateManyMutationInput;\n where?: InputMaybe<SchemaWhereInput>;\n};\n\n\nexport type MutationUpdateManySchemaNameArgs = {\n data: SchemaNameUpdateManyMutationInput;\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\n\nexport type MutationUpdateManyServiceStatArgs = {\n data: ServiceStatUpdateManyMutationInput;\n where?: InputMaybe<ServiceStatWhereInput>;\n};\n\n\nexport type MutationUpdateManyTimestampArgs = {\n data: TimestampUpdateManyMutationInput;\n where?: InputMaybe<TimestampWhereInput>;\n};\n\n\nexport type MutationUpdateOneAttestationArgs = {\n data: AttestationUpdateInput;\n where: AttestationWhereUniqueInput;\n};\n\n\nexport type MutationUpdateOneEnsNameArgs = {\n data: EnsNameUpdateInput;\n where: EnsNameWhereUniqueInput;\n};\n\n\nexport type MutationUpdateOneOffchainRevocationArgs = {\n data: OffchainRevocationUpdateInput;\n where: OffchainRevocationWhereUniqueInput;\n};\n\n\nexport type MutationUpdateOneSchemaArgs = {\n data: SchemaUpdateInput;\n where: SchemaWhereUniqueInput;\n};\n\n\nexport type MutationUpdateOneSchemaNameArgs = {\n data: SchemaNameUpdateInput;\n where: SchemaNameWhereUniqueInput;\n};\n\n\nexport type MutationUpdateOneServiceStatArgs = {\n data: ServiceStatUpdateInput;\n where: ServiceStatWhereUniqueInput;\n};\n\n\nexport type MutationUpdateOneTimestampArgs = {\n data: TimestampUpdateInput;\n where: TimestampWhereUniqueInput;\n};\n\n\nexport type MutationUpsertOneAttestationArgs = {\n create: AttestationCreateInput;\n update: AttestationUpdateInput;\n where: AttestationWhereUniqueInput;\n};\n\n\nexport type MutationUpsertOneEnsNameArgs = {\n create: EnsNameCreateInput;\n update: EnsNameUpdateInput;\n where: EnsNameWhereUniqueInput;\n};\n\n\nexport type MutationUpsertOneOffchainRevocationArgs = {\n create: OffchainRevocationCreateInput;\n update: OffchainRevocationUpdateInput;\n where: OffchainRevocationWhereUniqueInput;\n};\n\n\nexport type MutationUpsertOneSchemaArgs = {\n create: SchemaCreateInput;\n update: SchemaUpdateInput;\n where: SchemaWhereUniqueInput;\n};\n\n\nexport type MutationUpsertOneSchemaNameArgs = {\n create: SchemaNameCreateInput;\n update: SchemaNameUpdateInput;\n where: SchemaNameWhereUniqueInput;\n};\n\n\nexport type MutationUpsertOneServiceStatArgs = {\n create: ServiceStatCreateInput;\n update: ServiceStatUpdateInput;\n where: ServiceStatWhereUniqueInput;\n};\n\n\nexport type MutationUpsertOneTimestampArgs = {\n create: TimestampCreateInput;\n update: TimestampUpdateInput;\n where: TimestampWhereUniqueInput;\n};\n\nexport type NestedBoolFilter = {\n equals?: InputMaybe<Scalars['Boolean']['input']>;\n not?: InputMaybe<NestedBoolFilter>;\n};\n\nexport type NestedBoolWithAggregatesFilter = {\n _count?: InputMaybe<NestedIntFilter>;\n _max?: InputMaybe<NestedBoolFilter>;\n _min?: InputMaybe<NestedBoolFilter>;\n equals?: InputMaybe<Scalars['Boolean']['input']>;\n not?: InputMaybe<NestedBoolWithAggregatesFilter>;\n};\n\nexport type NestedFloatFilter = {\n equals?: InputMaybe<Scalars['Float']['input']>;\n gt?: InputMaybe<Scalars['Float']['input']>;\n gte?: InputMaybe<Scalars['Float']['input']>;\n in?: InputMaybe<Array<Scalars['Float']['input']>>;\n lt?: InputMaybe<Scalars['Float']['input']>;\n lte?: InputMaybe<Scalars['Float']['input']>;\n not?: InputMaybe<NestedFloatFilter>;\n notIn?: InputMaybe<Array<Scalars['Float']['input']>>;\n};\n\nexport type NestedIntFilter = {\n equals?: InputMaybe<Scalars['Int']['input']>;\n gt?: InputMaybe<Scalars['Int']['input']>;\n gte?: InputMaybe<Scalars['Int']['input']>;\n in?: InputMaybe<Array<Scalars['Int']['input']>>;\n lt?: InputMaybe<Scalars['Int']['input']>;\n lte?: InputMaybe<Scalars['Int']['input']>;\n not?: InputMaybe<NestedIntFilter>;\n notIn?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\nexport type NestedIntWithAggregatesFilter = {\n _avg?: InputMaybe<NestedFloatFilter>;\n _count?: InputMaybe<NestedIntFilter>;\n _max?: InputMaybe<NestedIntFilter>;\n _min?: InputMaybe<NestedIntFilter>;\n _sum?: InputMaybe<NestedIntFilter>;\n equals?: InputMaybe<Scalars['Int']['input']>;\n gt?: InputMaybe<Scalars['Int']['input']>;\n gte?: InputMaybe<Scalars['Int']['input']>;\n in?: InputMaybe<Array<Scalars['Int']['input']>>;\n lt?: InputMaybe<Scalars['Int']['input']>;\n lte?: InputMaybe<Scalars['Int']['input']>;\n not?: InputMaybe<NestedIntWithAggregatesFilter>;\n notIn?: InputMaybe<Array<Scalars['Int']['input']>>;\n};\n\nexport type NestedStringFilter = {\n contains?: InputMaybe<Scalars['String']['input']>;\n endsWith?: InputMaybe<Scalars['String']['input']>;\n equals?: InputMaybe<Scalars['String']['input']>;\n gt?: InputMaybe<Scalars['String']['input']>;\n gte?: InputMaybe<Scalars['String']['input']>;\n in?: InputMaybe<Array<Scalars['String']['input']>>;\n lt?: InputMaybe<Scalars['String']['input']>;\n lte?: InputMaybe<Scalars['String']['input']>;\n not?: InputMaybe<NestedStringFilter>;\n notIn?: InputMaybe<Array<Scalars['String']['input']>>;\n startsWith?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type NestedStringWithAggregatesFilter = {\n _count?: InputMaybe<NestedIntFilter>;\n _max?: InputMaybe<NestedStringFilter>;\n _min?: InputMaybe<NestedStringFilter>;\n contains?: InputMaybe<Scalars['String']['input']>;\n endsWith?: InputMaybe<Scalars['String']['input']>;\n equals?: InputMaybe<Scalars['String']['input']>;\n gt?: InputMaybe<Scalars['String']['input']>;\n gte?: InputMaybe<Scalars['String']['input']>;\n in?: InputMaybe<Array<Scalars['String']['input']>>;\n lt?: InputMaybe<Scalars['String']['input']>;\n lte?: InputMaybe<Scalars['String']['input']>;\n not?: InputMaybe<NestedStringWithAggregatesFilter>;\n notIn?: InputMaybe<Array<Scalars['String']['input']>>;\n startsWith?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type OffchainRevocation = {\n __typename?: 'OffchainRevocation';\n from: Scalars['String']['output'];\n id: Scalars['String']['output'];\n timestamp: Scalars['Int']['output'];\n txid: Scalars['String']['output'];\n uid: Scalars['String']['output'];\n};\n\nexport type OffchainRevocationAvgAggregate = {\n __typename?: 'OffchainRevocationAvgAggregate';\n timestamp?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type OffchainRevocationAvgOrderByAggregateInput = {\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type OffchainRevocationCountAggregate = {\n __typename?: 'OffchainRevocationCountAggregate';\n _all: Scalars['Int']['output'];\n from: Scalars['Int']['output'];\n id: Scalars['Int']['output'];\n timestamp: Scalars['Int']['output'];\n txid: Scalars['Int']['output'];\n uid: Scalars['Int']['output'];\n};\n\nexport type OffchainRevocationCountOrderByAggregateInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n uid?: InputMaybe<SortOrder>;\n};\n\nexport type OffchainRevocationCreateInput = {\n from: Scalars['String']['input'];\n id?: InputMaybe<Scalars['String']['input']>;\n timestamp: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n uid: Scalars['String']['input'];\n};\n\nexport type OffchainRevocationCreateManyInput = {\n from: Scalars['String']['input'];\n id?: InputMaybe<Scalars['String']['input']>;\n timestamp: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n uid: Scalars['String']['input'];\n};\n\nexport type OffchainRevocationGroupBy = {\n __typename?: 'OffchainRevocationGroupBy';\n _avg?: Maybe<OffchainRevocationAvgAggregate>;\n _count?: Maybe<OffchainRevocationCountAggregate>;\n _max?: Maybe<OffchainRevocationMaxAggregate>;\n _min?: Maybe<OffchainRevocationMinAggregate>;\n _sum?: Maybe<OffchainRevocationSumAggregate>;\n from: Scalars['String']['output'];\n id: Scalars['String']['output'];\n timestamp: Scalars['Int']['output'];\n txid: Scalars['String']['output'];\n uid: Scalars['String']['output'];\n};\n\nexport type OffchainRevocationMaxAggregate = {\n __typename?: 'OffchainRevocationMaxAggregate';\n from?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Int']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n uid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type OffchainRevocationMaxOrderByAggregateInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n uid?: InputMaybe<SortOrder>;\n};\n\nexport type OffchainRevocationMinAggregate = {\n __typename?: 'OffchainRevocationMinAggregate';\n from?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Int']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n uid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type OffchainRevocationMinOrderByAggregateInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n uid?: InputMaybe<SortOrder>;\n};\n\nexport type OffchainRevocationOrderByWithAggregationInput = {\n _avg?: InputMaybe<OffchainRevocationAvgOrderByAggregateInput>;\n _count?: InputMaybe<OffchainRevocationCountOrderByAggregateInput>;\n _max?: InputMaybe<OffchainRevocationMaxOrderByAggregateInput>;\n _min?: InputMaybe<OffchainRevocationMinOrderByAggregateInput>;\n _sum?: InputMaybe<OffchainRevocationSumOrderByAggregateInput>;\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n uid?: InputMaybe<SortOrder>;\n};\n\nexport type OffchainRevocationOrderByWithRelationInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n uid?: InputMaybe<SortOrder>;\n};\n\nexport enum OffchainRevocationScalarFieldEnum {\n From = 'from',\n Id = 'id',\n Timestamp = 'timestamp',\n Txid = 'txid',\n Uid = 'uid'\n}\n\nexport type OffchainRevocationScalarWhereWithAggregatesInput = {\n AND?: InputMaybe<Array<OffchainRevocationScalarWhereWithAggregatesInput>>;\n NOT?: InputMaybe<Array<OffchainRevocationScalarWhereWithAggregatesInput>>;\n OR?: InputMaybe<Array<OffchainRevocationScalarWhereWithAggregatesInput>>;\n from?: InputMaybe<StringWithAggregatesFilter>;\n id?: InputMaybe<StringWithAggregatesFilter>;\n timestamp?: InputMaybe<IntWithAggregatesFilter>;\n txid?: InputMaybe<StringWithAggregatesFilter>;\n uid?: InputMaybe<StringWithAggregatesFilter>;\n};\n\nexport type OffchainRevocationSumAggregate = {\n __typename?: 'OffchainRevocationSumAggregate';\n timestamp?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type OffchainRevocationSumOrderByAggregateInput = {\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type OffchainRevocationUpdateInput = {\n from?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n timestamp?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n uid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type OffchainRevocationUpdateManyMutationInput = {\n from?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n timestamp?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n uid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type OffchainRevocationWhereInput = {\n AND?: InputMaybe<Array<OffchainRevocationWhereInput>>;\n NOT?: InputMaybe<Array<OffchainRevocationWhereInput>>;\n OR?: InputMaybe<Array<OffchainRevocationWhereInput>>;\n from?: InputMaybe<StringFilter>;\n id?: InputMaybe<StringFilter>;\n timestamp?: InputMaybe<IntFilter>;\n txid?: InputMaybe<StringFilter>;\n uid?: InputMaybe<StringFilter>;\n};\n\nexport type OffchainRevocationWhereUniqueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Representation of a transaction owner. */\nexport type Owner = {\n __typename?: 'Owner';\n /** The owner's wallet address. */\n address: Scalars['String']['output'];\n /** The owner's public key as a base64url encoded string. */\n key: Scalars['String']['output'];\n};\n\n/** Paginated page info using the GraphQL cursor spec. */\nexport type PageInfo = {\n __typename?: 'PageInfo';\n hasNextPage: Scalars['Boolean']['output'];\n};\n\n/**\n * The parent transaction for bundled transactions,\n * see: https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-102.md.\n */\nexport type Parent = {\n __typename?: 'Parent';\n id: Scalars['ID']['output'];\n};\n\nexport type Query = {\n __typename?: 'Query';\n aggregateAttestation: AggregateAttestation;\n aggregateEnsName: AggregateEnsName;\n aggregateOffchainRevocation: AggregateOffchainRevocation;\n aggregateSchema: AggregateSchema;\n aggregateSchemaName: AggregateSchemaName;\n aggregateServiceStat: AggregateServiceStat;\n aggregateTimestamp: AggregateTimestamp;\n attestation?: Maybe<Attestation>;\n attestations: Array<Attestation>;\n block?: Maybe<Block>;\n blocks: BlockConnection;\n ensName?: Maybe<EnsName>;\n ensNames: Array<EnsName>;\n findFirstAttestation?: Maybe<Attestation>;\n findFirstAttestationOrThrow?: Maybe<Attestation>;\n findFirstEnsName?: Maybe<EnsName>;\n findFirstEnsNameOrThrow?: Maybe<EnsName>;\n findFirstOffchainRevocation?: Maybe<OffchainRevocation>;\n findFirstOffchainRevocationOrThrow?: Maybe<OffchainRevocation>;\n findFirstSchema?: Maybe<Schema>;\n findFirstSchemaName?: Maybe<SchemaName>;\n findFirstSchemaNameOrThrow?: Maybe<SchemaName>;\n findFirstSchemaOrThrow?: Maybe<Schema>;\n findFirstServiceStat?: Maybe<ServiceStat>;\n findFirstServiceStatOrThrow?: Maybe<ServiceStat>;\n findFirstTimestamp?: Maybe<Timestamp>;\n findFirstTimestampOrThrow?: Maybe<Timestamp>;\n getAttestation?: Maybe<Attestation>;\n getEnsName?: Maybe<EnsName>;\n getOffchainRevocation?: Maybe<OffchainRevocation>;\n getSchema?: Maybe<Schema>;\n getSchemaName?: Maybe<SchemaName>;\n getServiceStat?: Maybe<ServiceStat>;\n getTimestamp?: Maybe<Timestamp>;\n groupByAttestation: Array<AttestationGroupBy>;\n groupByEnsName: Array<EnsNameGroupBy>;\n groupByOffchainRevocation: Array<OffchainRevocationGroupBy>;\n groupBySchema: Array<SchemaGroupBy>;\n groupBySchemaName: Array<SchemaNameGroupBy>;\n groupByServiceStat: Array<ServiceStatGroupBy>;\n groupByTimestamp: Array<TimestampGroupBy>;\n offchainRevocation?: Maybe<OffchainRevocation>;\n offchainRevocations: Array<OffchainRevocation>;\n schema?: Maybe<Schema>;\n schemaName?: Maybe<SchemaName>;\n schemaNames: Array<SchemaName>;\n schemata: Array<Schema>;\n serviceStat?: Maybe<ServiceStat>;\n serviceStats: Array<ServiceStat>;\n timestamp?: Maybe<Timestamp>;\n timestamps: Array<Timestamp>;\n /** Get a transaction by its id */\n transaction?: Maybe<Transaction>;\n /** Get a paginated set of matching transactions using filters. */\n transactions: TransactionConnection;\n};\n\n\nexport type QueryAggregateAttestationArgs = {\n cursor?: InputMaybe<AttestationWhereUniqueInput>;\n orderBy?: InputMaybe<Array<AttestationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type QueryAggregateEnsNameArgs = {\n cursor?: InputMaybe<EnsNameWhereUniqueInput>;\n orderBy?: InputMaybe<Array<EnsNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<EnsNameWhereInput>;\n};\n\n\nexport type QueryAggregateOffchainRevocationArgs = {\n cursor?: InputMaybe<OffchainRevocationWhereUniqueInput>;\n orderBy?: InputMaybe<Array<OffchainRevocationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<OffchainRevocationWhereInput>;\n};\n\n\nexport type QueryAggregateSchemaArgs = {\n cursor?: InputMaybe<SchemaWhereUniqueInput>;\n orderBy?: InputMaybe<Array<SchemaOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaWhereInput>;\n};\n\n\nexport type QueryAggregateSchemaNameArgs = {\n cursor?: InputMaybe<SchemaNameWhereUniqueInput>;\n orderBy?: InputMaybe<Array<SchemaNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\n\nexport type QueryAggregateServiceStatArgs = {\n cursor?: InputMaybe<ServiceStatWhereUniqueInput>;\n orderBy?: InputMaybe<Array<ServiceStatOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<ServiceStatWhereInput>;\n};\n\n\nexport type QueryAggregateTimestampArgs = {\n cursor?: InputMaybe<TimestampWhereUniqueInput>;\n orderBy?: InputMaybe<Array<TimestampOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<TimestampWhereInput>;\n};\n\n\nexport type QueryAttestationArgs = {\n where: AttestationWhereUniqueInput;\n};\n\n\nexport type QueryAttestationsArgs = {\n cursor?: InputMaybe<AttestationWhereUniqueInput>;\n distinct?: InputMaybe<Array<AttestationScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<AttestationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type QueryBlockArgs = {\n id: Scalars['String']['input'];\n};\n\n\nexport type QueryBlocksArgs = {\n after?: InputMaybe<Scalars['String']['input']>;\n first?: InputMaybe<Scalars['Int']['input']>;\n height?: InputMaybe<BlockFilter>;\n ids?: InputMaybe<Array<Scalars['ID']['input']>>;\n sort?: InputMaybe<SortOrder>;\n};\n\n\nexport type QueryEnsNameArgs = {\n where: EnsNameWhereUniqueInput;\n};\n\n\nexport type QueryEnsNamesArgs = {\n cursor?: InputMaybe<EnsNameWhereUniqueInput>;\n distinct?: InputMaybe<Array<EnsNameScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<EnsNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<EnsNameWhereInput>;\n};\n\n\nexport type QueryFindFirstAttestationArgs = {\n cursor?: InputMaybe<AttestationWhereUniqueInput>;\n distinct?: InputMaybe<Array<AttestationScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<AttestationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type QueryFindFirstAttestationOrThrowArgs = {\n cursor?: InputMaybe<AttestationWhereUniqueInput>;\n distinct?: InputMaybe<Array<AttestationScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<AttestationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type QueryFindFirstEnsNameArgs = {\n cursor?: InputMaybe<EnsNameWhereUniqueInput>;\n distinct?: InputMaybe<Array<EnsNameScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<EnsNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<EnsNameWhereInput>;\n};\n\n\nexport type QueryFindFirstEnsNameOrThrowArgs = {\n cursor?: InputMaybe<EnsNameWhereUniqueInput>;\n distinct?: InputMaybe<Array<EnsNameScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<EnsNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<EnsNameWhereInput>;\n};\n\n\nexport type QueryFindFirstOffchainRevocationArgs = {\n cursor?: InputMaybe<OffchainRevocationWhereUniqueInput>;\n distinct?: InputMaybe<Array<OffchainRevocationScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<OffchainRevocationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<OffchainRevocationWhereInput>;\n};\n\n\nexport type QueryFindFirstOffchainRevocationOrThrowArgs = {\n cursor?: InputMaybe<OffchainRevocationWhereUniqueInput>;\n distinct?: InputMaybe<Array<OffchainRevocationScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<OffchainRevocationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<OffchainRevocationWhereInput>;\n};\n\n\nexport type QueryFindFirstSchemaArgs = {\n cursor?: InputMaybe<SchemaWhereUniqueInput>;\n distinct?: InputMaybe<Array<SchemaScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<SchemaOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaWhereInput>;\n};\n\n\nexport type QueryFindFirstSchemaNameArgs = {\n cursor?: InputMaybe<SchemaNameWhereUniqueInput>;\n distinct?: InputMaybe<Array<SchemaNameScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<SchemaNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\n\nexport type QueryFindFirstSchemaNameOrThrowArgs = {\n cursor?: InputMaybe<SchemaNameWhereUniqueInput>;\n distinct?: InputMaybe<Array<SchemaNameScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<SchemaNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\n\nexport type QueryFindFirstSchemaOrThrowArgs = {\n cursor?: InputMaybe<SchemaWhereUniqueInput>;\n distinct?: InputMaybe<Array<SchemaScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<SchemaOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaWhereInput>;\n};\n\n\nexport type QueryFindFirstServiceStatArgs = {\n cursor?: InputMaybe<ServiceStatWhereUniqueInput>;\n distinct?: InputMaybe<Array<ServiceStatScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<ServiceStatOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<ServiceStatWhereInput>;\n};\n\n\nexport type QueryFindFirstServiceStatOrThrowArgs = {\n cursor?: InputMaybe<ServiceStatWhereUniqueInput>;\n distinct?: InputMaybe<Array<ServiceStatScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<ServiceStatOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<ServiceStatWhereInput>;\n};\n\n\nexport type QueryFindFirstTimestampArgs = {\n cursor?: InputMaybe<TimestampWhereUniqueInput>;\n distinct?: InputMaybe<Array<TimestampScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<TimestampOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<TimestampWhereInput>;\n};\n\n\nexport type QueryFindFirstTimestampOrThrowArgs = {\n cursor?: InputMaybe<TimestampWhereUniqueInput>;\n distinct?: InputMaybe<Array<TimestampScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<TimestampOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<TimestampWhereInput>;\n};\n\n\nexport type QueryGetAttestationArgs = {\n where: AttestationWhereUniqueInput;\n};\n\n\nexport type QueryGetEnsNameArgs = {\n where: EnsNameWhereUniqueInput;\n};\n\n\nexport type QueryGetOffchainRevocationArgs = {\n where: OffchainRevocationWhereUniqueInput;\n};\n\n\nexport type QueryGetSchemaArgs = {\n where: SchemaWhereUniqueInput;\n};\n\n\nexport type QueryGetSchemaNameArgs = {\n where: SchemaNameWhereUniqueInput;\n};\n\n\nexport type QueryGetServiceStatArgs = {\n where: ServiceStatWhereUniqueInput;\n};\n\n\nexport type QueryGetTimestampArgs = {\n where: TimestampWhereUniqueInput;\n};\n\n\nexport type QueryGroupByAttestationArgs = {\n by: Array<AttestationScalarFieldEnum>;\n having?: InputMaybe<AttestationScalarWhereWithAggregatesInput>;\n orderBy?: InputMaybe<Array<AttestationOrderByWithAggregationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type QueryGroupByEnsNameArgs = {\n by: Array<EnsNameScalarFieldEnum>;\n having?: InputMaybe<EnsNameScalarWhereWithAggregatesInput>;\n orderBy?: InputMaybe<Array<EnsNameOrderByWithAggregationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<EnsNameWhereInput>;\n};\n\n\nexport type QueryGroupByOffchainRevocationArgs = {\n by: Array<OffchainRevocationScalarFieldEnum>;\n having?: InputMaybe<OffchainRevocationScalarWhereWithAggregatesInput>;\n orderBy?: InputMaybe<Array<OffchainRevocationOrderByWithAggregationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<OffchainRevocationWhereInput>;\n};\n\n\nexport type QueryGroupBySchemaArgs = {\n by: Array<SchemaScalarFieldEnum>;\n having?: InputMaybe<SchemaScalarWhereWithAggregatesInput>;\n orderBy?: InputMaybe<Array<SchemaOrderByWithAggregationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaWhereInput>;\n};\n\n\nexport type QueryGroupBySchemaNameArgs = {\n by: Array<SchemaNameScalarFieldEnum>;\n having?: InputMaybe<SchemaNameScalarWhereWithAggregatesInput>;\n orderBy?: InputMaybe<Array<SchemaNameOrderByWithAggregationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\n\nexport type QueryGroupByServiceStatArgs = {\n by: Array<ServiceStatScalarFieldEnum>;\n having?: InputMaybe<ServiceStatScalarWhereWithAggregatesInput>;\n orderBy?: InputMaybe<Array<ServiceStatOrderByWithAggregationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<ServiceStatWhereInput>;\n};\n\n\nexport type QueryGroupByTimestampArgs = {\n by: Array<TimestampScalarFieldEnum>;\n having?: InputMaybe<TimestampScalarWhereWithAggregatesInput>;\n orderBy?: InputMaybe<Array<TimestampOrderByWithAggregationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<TimestampWhereInput>;\n};\n\n\nexport type QueryOffchainRevocationArgs = {\n where: OffchainRevocationWhereUniqueInput;\n};\n\n\nexport type QueryOffchainRevocationsArgs = {\n cursor?: InputMaybe<OffchainRevocationWhereUniqueInput>;\n distinct?: InputMaybe<Array<OffchainRevocationScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<OffchainRevocationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<OffchainRevocationWhereInput>;\n};\n\n\nexport type QuerySchemaArgs = {\n where: SchemaWhereUniqueInput;\n};\n\n\nexport type QuerySchemaNameArgs = {\n where: SchemaNameWhereUniqueInput;\n};\n\n\nexport type QuerySchemaNamesArgs = {\n cursor?: InputMaybe<SchemaNameWhereUniqueInput>;\n distinct?: InputMaybe<Array<SchemaNameScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<SchemaNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\n\nexport type QuerySchemataArgs = {\n cursor?: InputMaybe<SchemaWhereUniqueInput>;\n distinct?: InputMaybe<Array<SchemaScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<SchemaOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaWhereInput>;\n};\n\n\nexport type QueryServiceStatArgs = {\n where: ServiceStatWhereUniqueInput;\n};\n\n\nexport type QueryServiceStatsArgs = {\n cursor?: InputMaybe<ServiceStatWhereUniqueInput>;\n distinct?: InputMaybe<Array<ServiceStatScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<ServiceStatOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<ServiceStatWhereInput>;\n};\n\n\nexport type QueryTimestampArgs = {\n where: TimestampWhereUniqueInput;\n};\n\n\nexport type QueryTimestampsArgs = {\n cursor?: InputMaybe<TimestampWhereUniqueInput>;\n distinct?: InputMaybe<Array<TimestampScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<TimestampOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<TimestampWhereInput>;\n};\n\n\nexport type QueryTransactionArgs = {\n id: Scalars['ID']['input'];\n};\n\n\nexport type QueryTransactionsArgs = {\n after?: InputMaybe<Scalars['String']['input']>;\n block?: InputMaybe<BlockFilter>;\n bundledIn?: InputMaybe<Array<Scalars['ID']['input']>>;\n first?: InputMaybe<Scalars['Int']['input']>;\n ids?: InputMaybe<Array<Scalars['ID']['input']>>;\n owners?: InputMaybe<Array<Scalars['String']['input']>>;\n recipients?: InputMaybe<Array<Scalars['String']['input']>>;\n sort?: InputMaybe<SortOrder>;\n tags?: InputMaybe<Array<TagFilter>>;\n};\n\nexport enum QueryMode {\n Default = 'default',\n Insensitive = 'insensitive'\n}\n\nexport type Schema = {\n __typename?: 'Schema';\n _count?: Maybe<SchemaCount>;\n attestations: Array<Attestation>;\n creator: Scalars['String']['output'];\n id: Scalars['String']['output'];\n index: Scalars['String']['output'];\n resolver: Scalars['String']['output'];\n revocable: Scalars['Boolean']['output'];\n schema: Scalars['String']['output'];\n schemaNames: Array<SchemaName>;\n time: Scalars['Int']['output'];\n txid: Scalars['String']['output'];\n};\n\n\nexport type SchemaAttestationsArgs = {\n cursor?: InputMaybe<AttestationWhereUniqueInput>;\n distinct?: InputMaybe<Array<AttestationScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<AttestationOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<AttestationWhereInput>;\n};\n\n\nexport type SchemaSchemaNamesArgs = {\n cursor?: InputMaybe<SchemaNameWhereUniqueInput>;\n distinct?: InputMaybe<Array<SchemaNameScalarFieldEnum>>;\n orderBy?: InputMaybe<Array<SchemaNameOrderByWithRelationInput>>;\n skip?: InputMaybe<Scalars['Int']['input']>;\n take?: InputMaybe<Scalars['Int']['input']>;\n where?: InputMaybe<SchemaNameWhereInput>;\n};\n\nexport type SchemaAvgAggregate = {\n __typename?: 'SchemaAvgAggregate';\n time?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type SchemaAvgOrderByAggregateInput = {\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaCount = {\n __typename?: 'SchemaCount';\n attestations: Scalars['Int']['output'];\n schemaNames: Scalars['Int']['output'];\n};\n\nexport type SchemaCountAggregate = {\n __typename?: 'SchemaCountAggregate';\n _all: Scalars['Int']['output'];\n creator: Scalars['Int']['output'];\n id: Scalars['Int']['output'];\n index: Scalars['Int']['output'];\n resolver: Scalars['Int']['output'];\n revocable: Scalars['Int']['output'];\n schema: Scalars['Int']['output'];\n time: Scalars['Int']['output'];\n txid: Scalars['Int']['output'];\n};\n\nexport type SchemaCountOrderByAggregateInput = {\n creator?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n index?: InputMaybe<SortOrder>;\n resolver?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n schema?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaCreateInput = {\n attestations?: InputMaybe<AttestationCreateNestedManyWithoutSchemaInput>;\n creator: Scalars['String']['input'];\n id: Scalars['String']['input'];\n index: Scalars['String']['input'];\n resolver: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n schema: Scalars['String']['input'];\n schemaNames?: InputMaybe<SchemaNameCreateNestedManyWithoutSchemaInput>;\n time: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type SchemaCreateManyInput = {\n creator: Scalars['String']['input'];\n id: Scalars['String']['input'];\n index: Scalars['String']['input'];\n resolver: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n schema: Scalars['String']['input'];\n time: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type SchemaCreateNestedOneWithoutAttestationsInput = {\n connect?: InputMaybe<SchemaWhereUniqueInput>;\n connectOrCreate?: InputMaybe<SchemaCreateOrConnectWithoutAttestationsInput>;\n create?: InputMaybe<SchemaCreateWithoutAttestationsInput>;\n};\n\nexport type SchemaCreateNestedOneWithoutSchemaNamesInput = {\n connect?: InputMaybe<SchemaWhereUniqueInput>;\n connectOrCreate?: InputMaybe<SchemaCreateOrConnectWithoutSchemaNamesInput>;\n create?: InputMaybe<SchemaCreateWithoutSchemaNamesInput>;\n};\n\nexport type SchemaCreateOrConnectWithoutAttestationsInput = {\n create: SchemaCreateWithoutAttestationsInput;\n where: SchemaWhereUniqueInput;\n};\n\nexport type SchemaCreateOrConnectWithoutSchemaNamesInput = {\n create: SchemaCreateWithoutSchemaNamesInput;\n where: SchemaWhereUniqueInput;\n};\n\nexport type SchemaCreateWithoutAttestationsInput = {\n creator: Scalars['String']['input'];\n id: Scalars['String']['input'];\n index: Scalars['String']['input'];\n resolver: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n schema: Scalars['String']['input'];\n schemaNames?: InputMaybe<SchemaNameCreateNestedManyWithoutSchemaInput>;\n time: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type SchemaCreateWithoutSchemaNamesInput = {\n attestations?: InputMaybe<AttestationCreateNestedManyWithoutSchemaInput>;\n creator: Scalars['String']['input'];\n id: Scalars['String']['input'];\n index: Scalars['String']['input'];\n resolver: Scalars['String']['input'];\n revocable: Scalars['Boolean']['input'];\n schema: Scalars['String']['input'];\n time: Scalars['Int']['input'];\n txid: Scalars['String']['input'];\n};\n\nexport type SchemaGroupBy = {\n __typename?: 'SchemaGroupBy';\n _avg?: Maybe<SchemaAvgAggregate>;\n _count?: Maybe<SchemaCountAggregate>;\n _max?: Maybe<SchemaMaxAggregate>;\n _min?: Maybe<SchemaMinAggregate>;\n _sum?: Maybe<SchemaSumAggregate>;\n creator: Scalars['String']['output'];\n id: Scalars['String']['output'];\n index: Scalars['String']['output'];\n resolver: Scalars['String']['output'];\n revocable: Scalars['Boolean']['output'];\n schema: Scalars['String']['output'];\n time: Scalars['Int']['output'];\n txid: Scalars['String']['output'];\n};\n\nexport type SchemaMaxAggregate = {\n __typename?: 'SchemaMaxAggregate';\n creator?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n index?: Maybe<Scalars['String']['output']>;\n resolver?: Maybe<Scalars['String']['output']>;\n revocable?: Maybe<Scalars['Boolean']['output']>;\n schema?: Maybe<Scalars['String']['output']>;\n time?: Maybe<Scalars['Int']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SchemaMaxOrderByAggregateInput = {\n creator?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n index?: InputMaybe<SortOrder>;\n resolver?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n schema?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaMinAggregate = {\n __typename?: 'SchemaMinAggregate';\n creator?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n index?: Maybe<Scalars['String']['output']>;\n resolver?: Maybe<Scalars['String']['output']>;\n revocable?: Maybe<Scalars['Boolean']['output']>;\n schema?: Maybe<Scalars['String']['output']>;\n time?: Maybe<Scalars['Int']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SchemaMinOrderByAggregateInput = {\n creator?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n index?: InputMaybe<SortOrder>;\n resolver?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n schema?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaName = {\n __typename?: 'SchemaName';\n attesterAddress: Scalars['String']['output'];\n id: Scalars['String']['output'];\n isCreator: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n schema: Schema;\n schemaId: Scalars['String']['output'];\n time: Scalars['Int']['output'];\n};\n\nexport type SchemaNameAvgAggregate = {\n __typename?: 'SchemaNameAvgAggregate';\n time?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type SchemaNameAvgOrderByAggregateInput = {\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaNameCountAggregate = {\n __typename?: 'SchemaNameCountAggregate';\n _all: Scalars['Int']['output'];\n attesterAddress: Scalars['Int']['output'];\n id: Scalars['Int']['output'];\n isCreator: Scalars['Int']['output'];\n name: Scalars['Int']['output'];\n schemaId: Scalars['Int']['output'];\n time: Scalars['Int']['output'];\n};\n\nexport type SchemaNameCountOrderByAggregateInput = {\n attesterAddress?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n isCreator?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaNameCreateInput = {\n attesterAddress: Scalars['String']['input'];\n id?: InputMaybe<Scalars['String']['input']>;\n isCreator: Scalars['Boolean']['input'];\n name: Scalars['String']['input'];\n schema: SchemaCreateNestedOneWithoutSchemaNamesInput;\n time: Scalars['Int']['input'];\n};\n\nexport type SchemaNameCreateManyInput = {\n attesterAddress: Scalars['String']['input'];\n id?: InputMaybe<Scalars['String']['input']>;\n isCreator: Scalars['Boolean']['input'];\n name: Scalars['String']['input'];\n schemaId: Scalars['String']['input'];\n time: Scalars['Int']['input'];\n};\n\nexport type SchemaNameCreateManySchemaInput = {\n attesterAddress: Scalars['String']['input'];\n id?: InputMaybe<Scalars['String']['input']>;\n isCreator: Scalars['Boolean']['input'];\n name: Scalars['String']['input'];\n time: Scalars['Int']['input'];\n};\n\nexport type SchemaNameCreateManySchemaInputEnvelope = {\n data: Array<SchemaNameCreateManySchemaInput>;\n skipDuplicates?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type SchemaNameCreateNestedManyWithoutSchemaInput = {\n connect?: InputMaybe<Array<SchemaNameWhereUniqueInput>>;\n connectOrCreate?: InputMaybe<Array<SchemaNameCreateOrConnectWithoutSchemaInput>>;\n create?: InputMaybe<Array<SchemaNameCreateWithoutSchemaInput>>;\n createMany?: InputMaybe<SchemaNameCreateManySchemaInputEnvelope>;\n};\n\nexport type SchemaNameCreateOrConnectWithoutSchemaInput = {\n create: SchemaNameCreateWithoutSchemaInput;\n where: SchemaNameWhereUniqueInput;\n};\n\nexport type SchemaNameCreateWithoutSchemaInput = {\n attesterAddress: Scalars['String']['input'];\n id?: InputMaybe<Scalars['String']['input']>;\n isCreator: Scalars['Boolean']['input'];\n name: Scalars['String']['input'];\n time: Scalars['Int']['input'];\n};\n\nexport type SchemaNameGroupBy = {\n __typename?: 'SchemaNameGroupBy';\n _avg?: Maybe<SchemaNameAvgAggregate>;\n _count?: Maybe<SchemaNameCountAggregate>;\n _max?: Maybe<SchemaNameMaxAggregate>;\n _min?: Maybe<SchemaNameMinAggregate>;\n _sum?: Maybe<SchemaNameSumAggregate>;\n attesterAddress: Scalars['String']['output'];\n id: Scalars['String']['output'];\n isCreator: Scalars['Boolean']['output'];\n name: Scalars['String']['output'];\n schemaId: Scalars['String']['output'];\n time: Scalars['Int']['output'];\n};\n\nexport type SchemaNameListRelationFilter = {\n every?: InputMaybe<SchemaNameWhereInput>;\n none?: InputMaybe<SchemaNameWhereInput>;\n some?: InputMaybe<SchemaNameWhereInput>;\n};\n\nexport type SchemaNameMaxAggregate = {\n __typename?: 'SchemaNameMaxAggregate';\n attesterAddress?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n isCreator?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n schemaId?: Maybe<Scalars['String']['output']>;\n time?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type SchemaNameMaxOrderByAggregateInput = {\n attesterAddress?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n isCreator?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaNameMinAggregate = {\n __typename?: 'SchemaNameMinAggregate';\n attesterAddress?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n isCreator?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n schemaId?: Maybe<Scalars['String']['output']>;\n time?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type SchemaNameMinOrderByAggregateInput = {\n attesterAddress?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n isCreator?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaNameOrderByRelationAggregateInput = {\n _count?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaNameOrderByWithAggregationInput = {\n _avg?: InputMaybe<SchemaNameAvgOrderByAggregateInput>;\n _count?: InputMaybe<SchemaNameCountOrderByAggregateInput>;\n _max?: InputMaybe<SchemaNameMaxOrderByAggregateInput>;\n _min?: InputMaybe<SchemaNameMinOrderByAggregateInput>;\n _sum?: InputMaybe<SchemaNameSumOrderByAggregateInput>;\n attesterAddress?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n isCreator?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaNameOrderByWithRelationInput = {\n attesterAddress?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n isCreator?: InputMaybe<SortOrder>;\n name?: InputMaybe<SortOrder>;\n schema?: InputMaybe<SchemaOrderByWithRelationInput>;\n schemaId?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n};\n\nexport enum SchemaNameScalarFieldEnum {\n AttesterAddress = 'attesterAddress',\n Id = 'id',\n IsCreator = 'isCreator',\n Name = 'name',\n SchemaId = 'schemaId',\n Time = 'time'\n}\n\nexport type SchemaNameScalarWhereInput = {\n AND?: InputMaybe<Array<SchemaNameScalarWhereInput>>;\n NOT?: InputMaybe<Array<SchemaNameScalarWhereInput>>;\n OR?: InputMaybe<Array<SchemaNameScalarWhereInput>>;\n attesterAddress?: InputMaybe<StringFilter>;\n id?: InputMaybe<StringFilter>;\n isCreator?: InputMaybe<BoolFilter>;\n name?: InputMaybe<StringFilter>;\n schemaId?: InputMaybe<StringFilter>;\n time?: InputMaybe<IntFilter>;\n};\n\nexport type SchemaNameScalarWhereWithAggregatesInput = {\n AND?: InputMaybe<Array<SchemaNameScalarWhereWithAggregatesInput>>;\n NOT?: InputMaybe<Array<SchemaNameScalarWhereWithAggregatesInput>>;\n OR?: InputMaybe<Array<SchemaNameScalarWhereWithAggregatesInput>>;\n attesterAddress?: InputMaybe<StringWithAggregatesFilter>;\n id?: InputMaybe<StringWithAggregatesFilter>;\n isCreator?: InputMaybe<BoolWithAggregatesFilter>;\n name?: InputMaybe<StringWithAggregatesFilter>;\n schemaId?: InputMaybe<StringWithAggregatesFilter>;\n time?: InputMaybe<IntWithAggregatesFilter>;\n};\n\nexport type SchemaNameSumAggregate = {\n __typename?: 'SchemaNameSumAggregate';\n time?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type SchemaNameSumOrderByAggregateInput = {\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaNameUpdateInput = {\n attesterAddress?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n isCreator?: InputMaybe<BoolFieldUpdateOperationsInput>;\n name?: InputMaybe<StringFieldUpdateOperationsInput>;\n schema?: InputMaybe<SchemaUpdateOneRequiredWithoutSchemaNamesNestedInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n};\n\nexport type SchemaNameUpdateManyMutationInput = {\n attesterAddress?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n isCreator?: InputMaybe<BoolFieldUpdateOperationsInput>;\n name?: InputMaybe<StringFieldUpdateOperationsInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n};\n\nexport type SchemaNameUpdateManyWithWhereWithoutSchemaInput = {\n data: SchemaNameUpdateManyMutationInput;\n where: SchemaNameScalarWhereInput;\n};\n\nexport type SchemaNameUpdateManyWithoutSchemaNestedInput = {\n connect?: InputMaybe<Array<SchemaNameWhereUniqueInput>>;\n connectOrCreate?: InputMaybe<Array<SchemaNameCreateOrConnectWithoutSchemaInput>>;\n create?: InputMaybe<Array<SchemaNameCreateWithoutSchemaInput>>;\n createMany?: InputMaybe<SchemaNameCreateManySchemaInputEnvelope>;\n delete?: InputMaybe<Array<SchemaNameWhereUniqueInput>>;\n deleteMany?: InputMaybe<Array<SchemaNameScalarWhereInput>>;\n disconnect?: InputMaybe<Array<SchemaNameWhereUniqueInput>>;\n set?: InputMaybe<Array<SchemaNameWhereUniqueInput>>;\n update?: InputMaybe<Array<SchemaNameUpdateWithWhereUniqueWithoutSchemaInput>>;\n updateMany?: InputMaybe<Array<SchemaNameUpdateManyWithWhereWithoutSchemaInput>>;\n upsert?: InputMaybe<Array<SchemaNameUpsertWithWhereUniqueWithoutSchemaInput>>;\n};\n\nexport type SchemaNameUpdateWithWhereUniqueWithoutSchemaInput = {\n data: SchemaNameUpdateWithoutSchemaInput;\n where: SchemaNameWhereUniqueInput;\n};\n\nexport type SchemaNameUpdateWithoutSchemaInput = {\n attesterAddress?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n isCreator?: InputMaybe<BoolFieldUpdateOperationsInput>;\n name?: InputMaybe<StringFieldUpdateOperationsInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n};\n\nexport type SchemaNameUpsertWithWhereUniqueWithoutSchemaInput = {\n create: SchemaNameCreateWithoutSchemaInput;\n update: SchemaNameUpdateWithoutSchemaInput;\n where: SchemaNameWhereUniqueInput;\n};\n\nexport type SchemaNameWhereInput = {\n AND?: InputMaybe<Array<SchemaNameWhereInput>>;\n NOT?: InputMaybe<Array<SchemaNameWhereInput>>;\n OR?: InputMaybe<Array<SchemaNameWhereInput>>;\n attesterAddress?: InputMaybe<StringFilter>;\n id?: InputMaybe<StringFilter>;\n isCreator?: InputMaybe<BoolFilter>;\n name?: InputMaybe<StringFilter>;\n schema?: InputMaybe<SchemaRelationFilter>;\n schemaId?: InputMaybe<StringFilter>;\n time?: InputMaybe<IntFilter>;\n};\n\nexport type SchemaNameWhereUniqueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SchemaOrderByWithAggregationInput = {\n _avg?: InputMaybe<SchemaAvgOrderByAggregateInput>;\n _count?: InputMaybe<SchemaCountOrderByAggregateInput>;\n _max?: InputMaybe<SchemaMaxOrderByAggregateInput>;\n _min?: InputMaybe<SchemaMinOrderByAggregateInput>;\n _sum?: InputMaybe<SchemaSumOrderByAggregateInput>;\n creator?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n index?: InputMaybe<SortOrder>;\n resolver?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n schema?: InputMaybe<SortOrder>;\n time?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaOrderByWithRelationInput = {\n attestations?: InputMaybe<AttestationOrderByRelationAggregateInput>;\n creator?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n index?: InputMaybe<SortOrder>;\n resolver?: InputMaybe<SortOrder>;\n revocable?: InputMaybe<SortOrder>;\n schema?: InputMaybe<SortOrder>;\n schemaNames?: InputMaybe<SchemaNameOrderByRelationAggregateInput>;\n time?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaRelationFilter = {\n is?: InputMaybe<SchemaWhereInput>;\n isNot?: InputMaybe<SchemaWhereInput>;\n};\n\nexport enum SchemaScalarFieldEnum {\n Creator = 'creator',\n Id = 'id',\n Index = 'index',\n Resolver = 'resolver',\n Revocable = 'revocable',\n Schema = 'schema',\n Time = 'time',\n Txid = 'txid'\n}\n\nexport type SchemaScalarWhereWithAggregatesInput = {\n AND?: InputMaybe<Array<SchemaScalarWhereWithAggregatesInput>>;\n NOT?: InputMaybe<Array<SchemaScalarWhereWithAggregatesInput>>;\n OR?: InputMaybe<Array<SchemaScalarWhereWithAggregatesInput>>;\n creator?: InputMaybe<StringWithAggregatesFilter>;\n id?: InputMaybe<StringWithAggregatesFilter>;\n index?: InputMaybe<StringWithAggregatesFilter>;\n resolver?: InputMaybe<StringWithAggregatesFilter>;\n revocable?: InputMaybe<BoolWithAggregatesFilter>;\n schema?: InputMaybe<StringWithAggregatesFilter>;\n time?: InputMaybe<IntWithAggregatesFilter>;\n txid?: InputMaybe<StringWithAggregatesFilter>;\n};\n\nexport type SchemaSumAggregate = {\n __typename?: 'SchemaSumAggregate';\n time?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type SchemaSumOrderByAggregateInput = {\n time?: InputMaybe<SortOrder>;\n};\n\nexport type SchemaUpdateInput = {\n attestations?: InputMaybe<AttestationUpdateManyWithoutSchemaNestedInput>;\n creator?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n index?: InputMaybe<StringFieldUpdateOperationsInput>;\n resolver?: InputMaybe<StringFieldUpdateOperationsInput>;\n revocable?: InputMaybe<BoolFieldUpdateOperationsInput>;\n schema?: InputMaybe<StringFieldUpdateOperationsInput>;\n schemaNames?: InputMaybe<SchemaNameUpdateManyWithoutSchemaNestedInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type SchemaUpdateManyMutationInput = {\n creator?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n index?: InputMaybe<StringFieldUpdateOperationsInput>;\n resolver?: InputMaybe<StringFieldUpdateOperationsInput>;\n revocable?: InputMaybe<BoolFieldUpdateOperationsInput>;\n schema?: InputMaybe<StringFieldUpdateOperationsInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type SchemaUpdateOneRequiredWithoutAttestationsNestedInput = {\n connect?: InputMaybe<SchemaWhereUniqueInput>;\n connectOrCreate?: InputMaybe<SchemaCreateOrConnectWithoutAttestationsInput>;\n create?: InputMaybe<SchemaCreateWithoutAttestationsInput>;\n update?: InputMaybe<SchemaUpdateWithoutAttestationsInput>;\n upsert?: InputMaybe<SchemaUpsertWithoutAttestationsInput>;\n};\n\nexport type SchemaUpdateOneRequiredWithoutSchemaNamesNestedInput = {\n connect?: InputMaybe<SchemaWhereUniqueInput>;\n connectOrCreate?: InputMaybe<SchemaCreateOrConnectWithoutSchemaNamesInput>;\n create?: InputMaybe<SchemaCreateWithoutSchemaNamesInput>;\n update?: InputMaybe<SchemaUpdateWithoutSchemaNamesInput>;\n upsert?: InputMaybe<SchemaUpsertWithoutSchemaNamesInput>;\n};\n\nexport type SchemaUpdateWithoutAttestationsInput = {\n creator?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n index?: InputMaybe<StringFieldUpdateOperationsInput>;\n resolver?: InputMaybe<StringFieldUpdateOperationsInput>;\n revocable?: InputMaybe<BoolFieldUpdateOperationsInput>;\n schema?: InputMaybe<StringFieldUpdateOperationsInput>;\n schemaNames?: InputMaybe<SchemaNameUpdateManyWithoutSchemaNestedInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type SchemaUpdateWithoutSchemaNamesInput = {\n attestations?: InputMaybe<AttestationUpdateManyWithoutSchemaNestedInput>;\n creator?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n index?: InputMaybe<StringFieldUpdateOperationsInput>;\n resolver?: InputMaybe<StringFieldUpdateOperationsInput>;\n revocable?: InputMaybe<BoolFieldUpdateOperationsInput>;\n schema?: InputMaybe<StringFieldUpdateOperationsInput>;\n time?: InputMaybe<IntFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type SchemaUpsertWithoutAttestationsInput = {\n create: SchemaCreateWithoutAttestationsInput;\n update: SchemaUpdateWithoutAttestationsInput;\n};\n\nexport type SchemaUpsertWithoutSchemaNamesInput = {\n create: SchemaCreateWithoutSchemaNamesInput;\n update: SchemaUpdateWithoutSchemaNamesInput;\n};\n\nexport type SchemaWhereInput = {\n AND?: InputMaybe<Array<SchemaWhereInput>>;\n NOT?: InputMaybe<Array<SchemaWhereInput>>;\n OR?: InputMaybe<Array<SchemaWhereInput>>;\n attestations?: InputMaybe<AttestationListRelationFilter>;\n creator?: InputMaybe<StringFilter>;\n id?: InputMaybe<StringFilter>;\n index?: InputMaybe<StringFilter>;\n resolver?: InputMaybe<StringFilter>;\n revocable?: InputMaybe<BoolFilter>;\n schema?: InputMaybe<StringFilter>;\n schemaNames?: InputMaybe<SchemaNameListRelationFilter>;\n time?: InputMaybe<IntFilter>;\n txid?: InputMaybe<StringFilter>;\n};\n\nexport type SchemaWhereUniqueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ServiceStat = {\n __typename?: 'ServiceStat';\n name: Scalars['String']['output'];\n value: Scalars['String']['output'];\n};\n\nexport type ServiceStatCountAggregate = {\n __typename?: 'ServiceStatCountAggregate';\n _all: Scalars['Int']['output'];\n name: Scalars['Int']['output'];\n value: Scalars['Int']['output'];\n};\n\nexport type ServiceStatCountOrderByAggregateInput = {\n name?: InputMaybe<SortOrder>;\n value?: InputMaybe<SortOrder>;\n};\n\nexport type ServiceStatCreateInput = {\n name: Scalars['String']['input'];\n value: Scalars['String']['input'];\n};\n\nexport type ServiceStatCreateManyInput = {\n name: Scalars['String']['input'];\n value: Scalars['String']['input'];\n};\n\nexport type ServiceStatGroupBy = {\n __typename?: 'ServiceStatGroupBy';\n _count?: Maybe<ServiceStatCountAggregate>;\n _max?: Maybe<ServiceStatMaxAggregate>;\n _min?: Maybe<ServiceStatMinAggregate>;\n name: Scalars['String']['output'];\n value: Scalars['String']['output'];\n};\n\nexport type ServiceStatMaxAggregate = {\n __typename?: 'ServiceStatMaxAggregate';\n name?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ServiceStatMaxOrderByAggregateInput = {\n name?: InputMaybe<SortOrder>;\n value?: InputMaybe<SortOrder>;\n};\n\nexport type ServiceStatMinAggregate = {\n __typename?: 'ServiceStatMinAggregate';\n name?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ServiceStatMinOrderByAggregateInput = {\n name?: InputMaybe<SortOrder>;\n value?: InputMaybe<SortOrder>;\n};\n\nexport type ServiceStatOrderByWithAggregationInput = {\n _count?: InputMaybe<ServiceStatCountOrderByAggregateInput>;\n _max?: InputMaybe<ServiceStatMaxOrderByAggregateInput>;\n _min?: InputMaybe<ServiceStatMinOrderByAggregateInput>;\n name?: InputMaybe<SortOrder>;\n value?: InputMaybe<SortOrder>;\n};\n\nexport type ServiceStatOrderByWithRelationInput = {\n name?: InputMaybe<SortOrder>;\n value?: InputMaybe<SortOrder>;\n};\n\nexport enum ServiceStatScalarFieldEnum {\n Name = 'name',\n Value = 'value'\n}\n\nexport type ServiceStatScalarWhereWithAggregatesInput = {\n AND?: InputMaybe<Array<ServiceStatScalarWhereWithAggregatesInput>>;\n NOT?: InputMaybe<Array<ServiceStatScalarWhereWithAggregatesInput>>;\n OR?: InputMaybe<Array<ServiceStatScalarWhereWithAggregatesInput>>;\n name?: InputMaybe<StringWithAggregatesFilter>;\n value?: InputMaybe<StringWithAggregatesFilter>;\n};\n\nexport type ServiceStatUpdateInput = {\n name?: InputMaybe<StringFieldUpdateOperationsInput>;\n value?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type ServiceStatUpdateManyMutationInput = {\n name?: InputMaybe<StringFieldUpdateOperationsInput>;\n value?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type ServiceStatWhereInput = {\n AND?: InputMaybe<Array<ServiceStatWhereInput>>;\n NOT?: InputMaybe<Array<ServiceStatWhereInput>>;\n OR?: InputMaybe<Array<ServiceStatWhereInput>>;\n name?: InputMaybe<StringFilter>;\n value?: InputMaybe<StringFilter>;\n};\n\nexport type ServiceStatWhereUniqueInput = {\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Optionally reverse the result sort order from `HEIGHT_DESC` (default) to `HEIGHT_ASC`. */\nexport enum SortOrder {\n /** Results are sorted by the transaction block height in ascending order, with the oldest transactions appearing first, and the most recent and pending/unconfirmed appearing last. */\n HeightAsc = 'HEIGHT_ASC',\n /** Results are sorted by the transaction block height in descending order, with the most recent and unconfirmed/pending transactions appearing first. */\n HeightDesc = 'HEIGHT_DESC',\n Asc = 'asc',\n Desc = 'desc'\n}\n\nexport type StringFieldUpdateOperationsInput = {\n set?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type StringFilter = {\n contains?: InputMaybe<Scalars['String']['input']>;\n endsWith?: InputMaybe<Scalars['String']['input']>;\n equals?: InputMaybe<Scalars['String']['input']>;\n gt?: InputMaybe<Scalars['String']['input']>;\n gte?: InputMaybe<Scalars['String']['input']>;\n in?: InputMaybe<Array<Scalars['String']['input']>>;\n lt?: InputMaybe<Scalars['String']['input']>;\n lte?: InputMaybe<Scalars['String']['input']>;\n mode?: InputMaybe<QueryMode>;\n not?: InputMaybe<NestedStringFilter>;\n notIn?: InputMaybe<Array<Scalars['String']['input']>>;\n startsWith?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type StringWithAggregatesFilter = {\n _count?: InputMaybe<NestedIntFilter>;\n _max?: InputMaybe<NestedStringFilter>;\n _min?: InputMaybe<NestedStringFilter>;\n contains?: InputMaybe<Scalars['String']['input']>;\n endsWith?: InputMaybe<Scalars['String']['input']>;\n equals?: InputMaybe<Scalars['String']['input']>;\n gt?: InputMaybe<Scalars['String']['input']>;\n gte?: InputMaybe<Scalars['String']['input']>;\n in?: InputMaybe<Array<Scalars['String']['input']>>;\n lt?: InputMaybe<Scalars['String']['input']>;\n lte?: InputMaybe<Scalars['String']['input']>;\n mode?: InputMaybe<QueryMode>;\n not?: InputMaybe<NestedStringWithAggregatesFilter>;\n notIn?: InputMaybe<Array<Scalars['String']['input']>>;\n startsWith?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Tag = {\n __typename?: 'Tag';\n /** UTF-8 tag name */\n name: Scalars['String']['output'];\n /** UTF-8 tag value */\n value: Scalars['String']['output'];\n};\n\n/** Find transactions with the folowing tag name and value */\nexport type TagFilter = {\n /** The tag name */\n name: Scalars['String']['input'];\n /** The operator to apply to to the tag filter. Defaults to EQ (equal). */\n op?: InputMaybe<TagOperator>;\n /**\n * An array of values to match against. If multiple values are passed then transactions with _any_ matching tag value from the set will be returned.\n *\n * e.g.\n *\n * \\`{name: \"app-name\", values: [\"app-1\"]}\\`\n *\n * Returns all transactions where the \\`app-name\\` tag has a value of \\`app-1\\`.\n *\n * \\`{name: \"app-name\", values: [\"app-1\", \"app-2\", \"app-3\"]}\\`\n *\n * Returns all transactions where the \\`app-name\\` tag has a value of either \\`app-1\\` _or_ \\`app-2\\` _or_ \\`app-3\\`.\n */\n values: Array<Scalars['String']['input']>;\n};\n\n/** The operator to apply to a tag value. */\nexport enum TagOperator {\n /** Equal */\n Eq = 'EQ'\n}\n\nexport type Timestamp = {\n __typename?: 'Timestamp';\n from: Scalars['String']['output'];\n id: Scalars['String']['output'];\n timestamp: Scalars['Int']['output'];\n tree: Scalars['String']['output'];\n txid: Scalars['String']['output'];\n};\n\nexport type TimestampAvgAggregate = {\n __typename?: 'TimestampAvgAggregate';\n timestamp?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type TimestampAvgOrderByAggregateInput = {\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type TimestampCountAggregate = {\n __typename?: 'TimestampCountAggregate';\n _all: Scalars['Int']['output'];\n from: Scalars['Int']['output'];\n id: Scalars['Int']['output'];\n timestamp: Scalars['Int']['output'];\n tree: Scalars['Int']['output'];\n txid: Scalars['Int']['output'];\n};\n\nexport type TimestampCountOrderByAggregateInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n tree?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type TimestampCreateInput = {\n from: Scalars['String']['input'];\n id: Scalars['String']['input'];\n timestamp: Scalars['Int']['input'];\n tree?: InputMaybe<Scalars['String']['input']>;\n txid: Scalars['String']['input'];\n};\n\nexport type TimestampCreateManyInput = {\n from: Scalars['String']['input'];\n id: Scalars['String']['input'];\n timestamp: Scalars['Int']['input'];\n tree?: InputMaybe<Scalars['String']['input']>;\n txid: Scalars['String']['input'];\n};\n\nexport type TimestampGroupBy = {\n __typename?: 'TimestampGroupBy';\n _avg?: Maybe<TimestampAvgAggregate>;\n _count?: Maybe<TimestampCountAggregate>;\n _max?: Maybe<TimestampMaxAggregate>;\n _min?: Maybe<TimestampMinAggregate>;\n _sum?: Maybe<TimestampSumAggregate>;\n from: Scalars['String']['output'];\n id: Scalars['String']['output'];\n timestamp: Scalars['Int']['output'];\n tree: Scalars['String']['output'];\n txid: Scalars['String']['output'];\n};\n\nexport type TimestampMaxAggregate = {\n __typename?: 'TimestampMaxAggregate';\n from?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Int']['output']>;\n tree?: Maybe<Scalars['String']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TimestampMaxOrderByAggregateInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n tree?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type TimestampMinAggregate = {\n __typename?: 'TimestampMinAggregate';\n from?: Maybe<Scalars['String']['output']>;\n id?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Int']['output']>;\n tree?: Maybe<Scalars['String']['output']>;\n txid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TimestampMinOrderByAggregateInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n tree?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type TimestampOrderByWithAggregationInput = {\n _avg?: InputMaybe<TimestampAvgOrderByAggregateInput>;\n _count?: InputMaybe<TimestampCountOrderByAggregateInput>;\n _max?: InputMaybe<TimestampMaxOrderByAggregateInput>;\n _min?: InputMaybe<TimestampMinOrderByAggregateInput>;\n _sum?: InputMaybe<TimestampSumOrderByAggregateInput>;\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n tree?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport type TimestampOrderByWithRelationInput = {\n from?: InputMaybe<SortOrder>;\n id?: InputMaybe<SortOrder>;\n timestamp?: InputMaybe<SortOrder>;\n tree?: InputMaybe<SortOrder>;\n txid?: InputMaybe<SortOrder>;\n};\n\nexport enum TimestampScalarFieldEnum {\n From = 'from',\n Id = 'id',\n Timestamp = 'timestamp',\n Tree = 'tree',\n Txid = 'txid'\n}\n\nexport type TimestampScalarWhereWithAggregatesInput = {\n AND?: InputMaybe<Array<TimestampScalarWhereWithAggregatesInput>>;\n NOT?: InputMaybe<Array<TimestampScalarWhereWithAggregatesInput>>;\n OR?: InputMaybe<Array<TimestampScalarWhereWithAggregatesInput>>;\n from?: InputMaybe<StringWithAggregatesFilter>;\n id?: InputMaybe<StringWithAggregatesFilter>;\n timestamp?: InputMaybe<IntWithAggregatesFilter>;\n tree?: InputMaybe<StringWithAggregatesFilter>;\n txid?: InputMaybe<StringWithAggregatesFilter>;\n};\n\nexport type TimestampSumAggregate = {\n __typename?: 'TimestampSumAggregate';\n timestamp?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type TimestampSumOrderByAggregateInput = {\n timestamp?: InputMaybe<SortOrder>;\n};\n\nexport type TimestampUpdateInput = {\n from?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n timestamp?: InputMaybe<IntFieldUpdateOperationsInput>;\n tree?: InputMaybe<StringFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type TimestampUpdateManyMutationInput = {\n from?: InputMaybe<StringFieldUpdateOperationsInput>;\n id?: InputMaybe<StringFieldUpdateOperationsInput>;\n timestamp?: InputMaybe<IntFieldUpdateOperationsInput>;\n tree?: InputMaybe<StringFieldUpdateOperationsInput>;\n txid?: InputMaybe<StringFieldUpdateOperationsInput>;\n};\n\nexport type TimestampWhereInput = {\n AND?: InputMaybe<Array<TimestampWhereInput>>;\n NOT?: InputMaybe<Array<TimestampWhereInput>>;\n OR?: InputMaybe<Array<TimestampWhereInput>>;\n from?: InputMaybe<StringFilter>;\n id?: InputMaybe<StringFilter>;\n timestamp?: InputMaybe<IntFilter>;\n tree?: InputMaybe<StringFilter>;\n txid?: InputMaybe<StringFilter>;\n};\n\nexport type TimestampWhereUniqueInput = {\n id?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Transaction = {\n __typename?: 'Transaction';\n anchor: Scalars['String']['output'];\n /** Transactions with a null block are recent and unconfirmed, if they aren't mined into a block within 60 minutes they will be removed from results. */\n block?: Maybe<Block>;\n /**\n * For bundled data items this references the containing bundle ID.\n * See: https://github.com/ArweaveTeam/arweave-standards/blob/master/ans/ANS-104.md\n */\n bundledIn?: Maybe<Bundle>;\n data: MetaData;\n fee: Amount;\n id: Scalars['ID']['output'];\n owner: Owner;\n /**\n * @deprecated Don't use, kept for backwards compatability only!\n * @deprecated Use `bundledIn`\n */\n parent?: Maybe<Parent>;\n quantity: Amount;\n recipient: Scalars['String']['output'];\n signature: Scalars['String']['output'];\n tags: Array<Tag>;\n};\n\n/**\n * Paginated result set using the GraphQL cursor spec,\n * see: https://relay.dev/graphql/connections.htm.\n */\nexport type TransactionConnection = {\n __typename?: 'TransactionConnection';\n edges: Array<TransactionEdge>;\n pageInfo: PageInfo;\n};\n\n/** Paginated result set using the GraphQL cursor spec. */\nexport type TransactionEdge = {\n __typename?: 'TransactionEdge';\n /**\n * The cursor value for fetching the next page.\n *\n * Pass this to the \\`after\\` parameter in \\`transactions(after: $cursor)\\`, the next page will start from the next item after this.\n */\n cursor: Scalars['String']['output'];\n /** A transaction object. */\n node: Transaction;\n};\n\nexport type AttestationFieldsFragment = { __typename?: 'Attestation', id: string, decodedDataJson: string, attester: string, refUID: string, revoked: boolean, schemaId: string, txid: string, timeCreated: number, time: number, isOffchain: boolean, schema: { __typename?: 'Schema', schemaNames: Array<{ __typename?: 'SchemaName', name: string }> } } & { ' $fragmentName'?: 'AttestationFieldsFragment' };\n\nexport type SchemaFieldsFragment = { __typename?: 'Schema', id: string, resolver: string, revocable: boolean, schema: string, index: string, time: number, txid: string, creator: string, schemaNames: Array<{ __typename?: 'SchemaName', name: string }> } & { ' $fragmentName'?: 'SchemaFieldsFragment' };\n\nexport type GetTransactionTagsQueryVariables = Exact<{\n transactionId: Scalars['ID']['input'];\n}>;\n\n\nexport type GetTransactionTagsQuery = { __typename?: 'Query', tags?: { __typename?: 'Transaction', id: string, tags: Array<{ __typename?: 'Tag', name: string, value: string }> } | null };\n\nexport type GetSchemasQueryVariables = Exact<{\n where: SchemaWhereInput;\n}>;\n\n\nexport type GetSchemasQuery = { __typename?: 'Query', schemas: Array<{ __typename?: 'Schema', id: string, schema: string, schemaNames: Array<{ __typename?: 'SchemaName', name: string }> }> };\n\nexport type GetSchemaByNameQueryVariables = Exact<{\n where: SchemaWhereInput;\n}>;\n\n\nexport type GetSchemaByNameQuery = { __typename?: 'Query', schemas: Array<{ __typename?: 'Schema', id: string, schema: string, schemaNames: Array<{ __typename?: 'SchemaName', name: string }> }> };\n\nexport type GetSeedsQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetSeedsQuery = { __typename?: 'Query', itemSeeds: Array<{ __typename?: 'Attestation', id: string, decodedDataJson: string, attester: string, refUID: string, revoked: boolean, schemaId: string, timeCreated: number, isOffchain: boolean, schema: { __typename?: 'Schema', schemaNames: Array<{ __typename?: 'SchemaName', name: string }> } }> };\n\nexport type GetSeedIdsQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetSeedIdsQuery = { __typename?: 'Query', itemSeedIds: Array<{ __typename?: 'Attestation', id: string }> };\n\nexport type GetStorageTransactionIdQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetStorageTransactionIdQuery = { __typename?: 'Query', storageTransactionId: Array<{ __typename?: 'Attestation', id: string, decodedDataJson: string }> };\n\nexport type GetVersionsQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetVersionsQuery = { __typename?: 'Query', itemVersions: Array<(\n { __typename?: 'Attestation' }\n & { ' $fragmentRefs'?: { 'AttestationFieldsFragment': AttestationFieldsFragment } }\n )> };\n\nexport type GetPropertiesQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetPropertiesQuery = { __typename?: 'Query', itemProperties: Array<(\n { __typename?: 'Attestation' }\n & { ' $fragmentRefs'?: { 'AttestationFieldsFragment': AttestationFieldsFragment } }\n )> };\n\nexport type GetAllPropertiesForAllVersionsQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetAllPropertiesForAllVersionsQuery = { __typename?: 'Query', allProperties: Array<(\n { __typename?: 'Attestation' }\n & { ' $fragmentRefs'?: { 'AttestationFieldsFragment': AttestationFieldsFragment } }\n )> };\n\nexport type GetFilesMetadataQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetFilesMetadataQuery = { __typename?: 'Query', filesMetadata: Array<(\n { __typename?: 'Attestation' }\n & { ' $fragmentRefs'?: { 'AttestationFieldsFragment': AttestationFieldsFragment } }\n )> };\n\nexport type GetArweaveTransactionsQueryVariables = Exact<{\n owners?: InputMaybe<Array<Scalars['String']['input']> | Scalars['String']['input']>;\n first?: InputMaybe<Scalars['Int']['input']>;\n after?: InputMaybe<Scalars['String']['input']>;\n}>;\n\n\nexport type GetArweaveTransactionsQuery = { __typename?: 'Query', transactions: { __typename?: 'TransactionConnection', edges: Array<{ __typename?: 'TransactionEdge', cursor: string, node: { __typename?: 'Transaction', id: string, anchor: string, signature: string, block?: { __typename?: 'Block', id: string, height: number } | null, data: { __typename?: 'MetaData', size: string, type?: string | null }, tags: Array<{ __typename?: 'Tag', name: string, value: string }> } }>, pageInfo: { __typename?: 'PageInfo', hasNextPage: boolean } } };\n\nexport type GetImageSeedsQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetImageSeedsQuery = { __typename?: 'Query', imageSeeds: Array<{ __typename?: 'Attestation', id: string, decodedDataJson: string, attester: string, refUID: string, revoked: boolean, schemaId: string, txid: string, timeCreated: number, time: number, isOffchain: boolean, schema: { __typename?: 'Schema', schemaNames: Array<{ __typename?: 'SchemaName', name: string }> } }> };\n\nexport type GetImageVersionsQueryVariables = Exact<{\n where: AttestationWhereInput;\n}>;\n\n\nexport type GetImageVersionsQuery = { __typename?: 'Query', imageVersions: Array<(\n { __typename?: 'Attestation' }\n & { ' $fragmentRefs'?: { 'AttestationFieldsFragment': AttestationFieldsFragment } }\n )> };\n\nexport type GetSchemaUidsQueryVariables = Exact<{\n where: SchemaWhereInput;\n}>;\n\n\nexport type GetSchemaUidsQuery = { __typename?: 'Query', schemaUids: Array<{ __typename?: 'Schema', id: string, schema: string, schemaNames: Array<{ __typename?: 'SchemaName', name: string }> }> };\n\nexport const AttestationFieldsFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Attestation\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]} as unknown as DocumentNode<AttestationFieldsFragment, unknown>;\nexport const SchemaFieldsFragmentDoc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Schema\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resolver\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revocable\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"index\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"creator\"}}]}}]} as unknown as DocumentNode<SchemaFieldsFragment, unknown>;\nexport const GetTransactionTagsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetTransactionTags\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"transactionId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"tags\"},\"name\":{\"kind\":\"Name\",\"value\":\"transaction\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"transactionId\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tags\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}}]}}]}}]} as unknown as DocumentNode<GetTransactionTagsQuery, GetTransactionTagsQueryVariables>;\nexport const GetSchemasDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetSchemas\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SchemaWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"schemas\"},\"name\":{\"kind\":\"Name\",\"value\":\"schemata\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}}]}}]} as unknown as DocumentNode<GetSchemasQuery, GetSchemasQueryVariables>;\nexport const GetSchemaByNameDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetSchemaByName\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SchemaWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"schemas\"},\"name\":{\"kind\":\"Name\",\"value\":\"schemata\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}}]}}]} as unknown as DocumentNode<GetSchemaByNameQuery, GetSchemaByNameQueryVariables>;\nexport const GetSeedsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetSeeds\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"itemSeeds\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]}}]} as unknown as DocumentNode<GetSeedsQuery, GetSeedsQueryVariables>;\nexport const GetSeedIdsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetSeedIds\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"itemSeedIds\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}]}}]}}]} as unknown as DocumentNode<GetSeedIdsQuery, GetSeedIdsQueryVariables>;\nexport const GetStorageTransactionIdDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetStorageTransactionId\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"storageTransactionId\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}}]}}]}}]} as unknown as DocumentNode<GetStorageTransactionIdQuery, GetStorageTransactionIdQueryVariables>;\nexport const GetVersionsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetVersions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"itemVersions\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Attestation\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]} as unknown as DocumentNode<GetVersionsQuery, GetVersionsQueryVariables>;\nexport const GetPropertiesDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetProperties\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"itemProperties\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Attestation\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]} as unknown as DocumentNode<GetPropertiesQuery, GetPropertiesQueryVariables>;\nexport const GetAllPropertiesForAllVersionsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetAllPropertiesForAllVersions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"allProperties\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Attestation\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]} as unknown as DocumentNode<GetAllPropertiesForAllVersionsQuery, GetAllPropertiesForAllVersionsQueryVariables>;\nexport const GetFilesMetadataDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetFilesMetadata\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"filesMetadata\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Attestation\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]} as unknown as DocumentNode<GetFilesMetadataQuery, GetFilesMetadataQueryVariables>;\nexport const GetArweaveTransactionsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetArweaveTransactions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"owners\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}}},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}}},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"transactions\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"owners\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"owners\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"after\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"edges\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cursor\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"node\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"anchor\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"signature\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"block\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"height\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"data\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"size\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tags\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"value\"}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pageInfo\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasNextPage\"}}]}}]}}]}}]} as unknown as DocumentNode<GetArweaveTransactionsQuery, GetArweaveTransactionsQueryVariables>;\nexport const GetImageSeedsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetImageSeeds\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"imageSeeds\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]}}]} as unknown as DocumentNode<GetImageSeedsQuery, GetImageSeedsQueryVariables>;\nexport const GetImageVersionsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetImageVersions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AttestationWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"imageVersions\"},\"name\":{\"kind\":\"Name\",\"value\":\"attestations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"orderBy\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"desc\"}}]}]}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"}}]}}]}},{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"attestationFields\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Attestation\"}},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"decodedDataJson\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"attester\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"refUID\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"revoked\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaId\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"txid\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timeCreated\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"time\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"isOffchain\"}}]}}]} as unknown as DocumentNode<GetImageVersionsQuery, GetImageVersionsQueryVariables>;\nexport const GetSchemaUidsDocument = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"GetSchemaUids\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SchemaWhereInput\"}}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"schemaUids\"},\"name\":{\"kind\":\"Name\",\"value\":\"schemata\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"where\"}}}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schema\"}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"schemaNames\"},\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}]}}]}}]}}]} as unknown as DocumentNode<GetSchemaUidsQuery, GetSchemaUidsQueryVariables>;","/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size\n */\nconst documents = {\n \"\\n fragment attestationFields on Attestation {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n txid\\n timeCreated\\n time\\n isOffchain\\n }\\n\": types.AttestationFieldsFragmentDoc,\n \"\\n fragment schemaFields on Schema {\\n id\\n resolver\\n revocable\\n schema\\n index\\n schemaNames {\\n name\\n }\\n time\\n txid\\n creator\\n }\\n\": types.SchemaFieldsFragmentDoc,\n \"\\n query GetTransactionTags($transactionId: ID!) {\\n tags: transaction(id: $transactionId) {\\n id\\n tags {\\n name\\n value\\n }\\n }\\n }\\n\": types.GetTransactionTagsDocument,\n \"\\n query GetSchemas($where: SchemaWhereInput!) {\\n schemas: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\": types.GetSchemasDocument,\n \"\\n query GetSchemaByName($where: SchemaWhereInput!) {\\n schemas: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\": types.GetSchemaByNameDocument,\n \"\\n query GetSeeds($where: AttestationWhereInput!) {\\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n timeCreated\\n isOffchain\\n }\\n }\\n\": types.GetSeedsDocument,\n \"\\n query GetSeedIds($where: AttestationWhereInput!) {\\n itemSeedIds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n }\\n }\\n\": types.GetSeedIdsDocument,\n \"\\n query GetStorageTransactionId($where: AttestationWhereInput!) {\\n storageTransactionId: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n id\\n decodedDataJson\\n }\\n }\\n\": types.GetStorageTransactionIdDocument,\n \"\\n query GetVersions($where: AttestationWhereInput!) {\\n itemVersions: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\": types.GetVersionsDocument,\n \"\\n query GetProperties($where: AttestationWhereInput!) {\\n itemProperties: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\": types.GetPropertiesDocument,\n \"\\n query GetAllPropertiesForAllVersions($where: AttestationWhereInput!) {\\n allProperties: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\": types.GetAllPropertiesForAllVersionsDocument,\n \"\\n query GetFilesMetadata($where: AttestationWhereInput!) {\\n filesMetadata: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\": types.GetFilesMetadataDocument,\n \"\\n query GetArweaveTransactions(\\n $owners: [String!]\\n $first: Int\\n $after: String\\n ) {\\n transactions(owners: $owners, first: $first, after: $after) {\\n edges {\\n cursor\\n node {\\n id\\n anchor\\n signature\\n block {\\n id\\n height\\n }\\n data {\\n size\\n type\\n }\\n tags {\\n name\\n value\\n }\\n }\\n }\\n pageInfo {\\n hasNextPage\\n }\\n }\\n }\\n\": types.GetArweaveTransactionsDocument,\n \"\\n query GetImageSeeds($where: AttestationWhereInput!) {\\n imageSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n txid\\n timeCreated\\n time\\n isOffchain\\n }\\n }\\n\": types.GetImageSeedsDocument,\n \"\\n query GetImageVersions($where: AttestationWhereInput!) {\\n imageVersions: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\": types.GetImageVersionsDocument,\n \"\\n query GetSchemaUids($where: SchemaWhereInput!) {\\n schemaUids: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\": types.GetSchemaUidsDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n fragment attestationFields on Attestation {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n txid\\n timeCreated\\n time\\n isOffchain\\n }\\n\"): (typeof documents)[\"\\n fragment attestationFields on Attestation {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n txid\\n timeCreated\\n time\\n isOffchain\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n fragment schemaFields on Schema {\\n id\\n resolver\\n revocable\\n schema\\n index\\n schemaNames {\\n name\\n }\\n time\\n txid\\n creator\\n }\\n\"): (typeof documents)[\"\\n fragment schemaFields on Schema {\\n id\\n resolver\\n revocable\\n schema\\n index\\n schemaNames {\\n name\\n }\\n time\\n txid\\n creator\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetTransactionTags($transactionId: ID!) {\\n tags: transaction(id: $transactionId) {\\n id\\n tags {\\n name\\n value\\n }\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetTransactionTags($transactionId: ID!) {\\n tags: transaction(id: $transactionId) {\\n id\\n tags {\\n name\\n value\\n }\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetSchemas($where: SchemaWhereInput!) {\\n schemas: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetSchemas($where: SchemaWhereInput!) {\\n schemas: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetSchemaByName($where: SchemaWhereInput!) {\\n schemas: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetSchemaByName($where: SchemaWhereInput!) {\\n schemas: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetSeeds($where: AttestationWhereInput!) {\\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n timeCreated\\n isOffchain\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetSeeds($where: AttestationWhereInput!) {\\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n timeCreated\\n isOffchain\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetSeedIds($where: AttestationWhereInput!) {\\n itemSeedIds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetSeedIds($where: AttestationWhereInput!) {\\n itemSeedIds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetStorageTransactionId($where: AttestationWhereInput!) {\\n storageTransactionId: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n id\\n decodedDataJson\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetStorageTransactionId($where: AttestationWhereInput!) {\\n storageTransactionId: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n id\\n decodedDataJson\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetVersions($where: AttestationWhereInput!) {\\n itemVersions: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetVersions($where: AttestationWhereInput!) {\\n itemVersions: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetProperties($where: AttestationWhereInput!) {\\n itemProperties: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetProperties($where: AttestationWhereInput!) {\\n itemProperties: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetAllPropertiesForAllVersions($where: AttestationWhereInput!) {\\n allProperties: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetAllPropertiesForAllVersions($where: AttestationWhereInput!) {\\n allProperties: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetFilesMetadata($where: AttestationWhereInput!) {\\n filesMetadata: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetFilesMetadata($where: AttestationWhereInput!) {\\n filesMetadata: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetArweaveTransactions(\\n $owners: [String!]\\n $first: Int\\n $after: String\\n ) {\\n transactions(owners: $owners, first: $first, after: $after) {\\n edges {\\n cursor\\n node {\\n id\\n anchor\\n signature\\n block {\\n id\\n height\\n }\\n data {\\n size\\n type\\n }\\n tags {\\n name\\n value\\n }\\n }\\n }\\n pageInfo {\\n hasNextPage\\n }\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetArweaveTransactions(\\n $owners: [String!]\\n $first: Int\\n $after: String\\n ) {\\n transactions(owners: $owners, first: $first, after: $after) {\\n edges {\\n cursor\\n node {\\n id\\n anchor\\n signature\\n block {\\n id\\n height\\n }\\n data {\\n size\\n type\\n }\\n tags {\\n name\\n value\\n }\\n }\\n }\\n pageInfo {\\n hasNextPage\\n }\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetImageSeeds($where: AttestationWhereInput!) {\\n imageSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n txid\\n timeCreated\\n time\\n isOffchain\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetImageSeeds($where: AttestationWhereInput!) {\\n imageSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\\n id\\n decodedDataJson\\n attester\\n schema {\\n schemaNames {\\n name\\n }\\n }\\n refUID\\n revoked\\n schemaId\\n txid\\n timeCreated\\n time\\n isOffchain\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetImageVersions($where: AttestationWhereInput!) {\\n imageVersions: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetImageVersions($where: AttestationWhereInput!) {\\n imageVersions: attestations(\\n where: $where\\n orderBy: [{ timeCreated: desc }]\\n ) {\\n ...attestationFields\\n }\\n }\\n\"];\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(source: \"\\n query GetSchemaUids($where: SchemaWhereInput!) {\\n schemaUids: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\"): (typeof documents)[\"\\n query GetSchemaUids($where: SchemaWhereInput!) {\\n schemaUids: schemata(where: $where) {\\n id\\n schema\\n schemaNames {\\n name\\n }\\n }\\n }\\n\"];\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never;","import { graphql } from '@/graphql/gql'\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core'\nimport { Attestation, Schema } from '@/graphql/gql/graphql'\n\nexport const GET_SCHEMAS = graphql(/* GraphQL */ `\n query GetSchemas($where: SchemaWhereInput!) {\n schemas: schemata(where: $where) {\n id\n schema\n schemaNames {\n name\n }\n }\n }\n`)\n\nexport const GET_SCHEMA_BY_NAME = graphql(/* GraphQL */ `\n query GetSchemaByName($where: SchemaWhereInput!) {\n schemas: schemata(where: $where) {\n id\n schema\n schemaNames {\n name\n }\n }\n }\n`) as TypedDocumentNode<{ schemas: Schema[] }>\n\nexport const GET_SEEDS = graphql(/* GraphQL */ `\n query GetSeeds($where: AttestationWhereInput!) {\n itemSeeds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n decodedDataJson\n attester\n schema {\n schemaNames {\n name\n }\n }\n refUID\n revoked\n schemaId\n timeCreated\n isOffchain\n }\n }\n`) as TypedDocumentNode<{ itemSeeds: Attestation[] }>\n\nexport const GET_SEED_IDS = graphql(/* GraphQL */ `\n query GetSeedIds($where: AttestationWhereInput!) {\n itemSeedIds: attestations(where: $where, orderBy: [{ timeCreated: desc }]) {\n id\n }\n }\n`) as TypedDocumentNode<{ itemSeedIds: Attestation[] }>\n\nexport const GET_STORAGE_TRANSACTION_ID = graphql(/* GraphQL */ `\n query GetStorageTransactionId($where: AttestationWhereInput!) {\n storageTransactionId: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n id\n decodedDataJson\n }\n }\n`) as TypedDocumentNode<{ storageTransactionId: Attestation[] }>\n\nexport const GET_VERSIONS = graphql(/* GraphQL */ `\n query GetVersions($where: AttestationWhereInput!) {\n itemVersions: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n`) as TypedDocumentNode<{ itemVersions: Attestation[] }>\n\nexport const GET_PROPERTIES = graphql(/* GraphQL */ `\n query GetProperties($where: AttestationWhereInput!) {\n itemProperties: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n`) as TypedDocumentNode<{ itemProperties: Attestation[] }>\n\nexport const GET_ALL_PROPERTIES_FOR_ALL_VERSIONS = graphql(/* GraphQL */ `\n query GetAllPropertiesForAllVersions($where: AttestationWhereInput!) {\n allProperties: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n`) as TypedDocumentNode<{ allProperties: Attestation[] }>\n","import {\n appState,\n models as modelsTable,\n NewModelRecord,\n NewPropertyRecord,\n properties,\n} from '@/seedSchema'\nimport { SqliteRemoteDatabase } from 'drizzle-orm/sqlite-proxy'\nimport { DbQueryResult, ModelDefinitions, ResultObject } from '@/types'\nimport type { BetterSQLite3Database } from 'drizzle-orm/better-sqlite3'\nimport { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core'\nimport { and, eq, isNull, SQL } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\nexport const escapeSqliteString = (value: string): string => {\n if (typeof value !== 'string') {\n throw new Error(\n `Value must be a string, instead got: ${JSON.stringify(value)}`,\n )\n }\n return value.replace(/'/g, \"''\")\n}\nexport const getObjectForRow = (row: any): ResultObject => {\n const obj: ResultObject = {}\n\n row.columnNames.forEach((colName, index) => {\n const value = row.row[index]\n if (typeof value !== 'string') {\n obj[colName] = row.row[index]\n return\n }\n\n // Try to parse the value as JSON\n try {\n obj[colName] = JSON.parse(value)\n } catch (e) {\n // If it fails, just set the value as a string\n obj[colName] = value\n }\n })\n\n return obj\n}\nexport const getSqlResultObject = (\n queryResult: DbQueryResult,\n): ResultObject | ResultObject[] | undefined => {\n if (!queryResult || !queryResult.rows || queryResult.rows.length === 0) {\n return\n }\n\n let obj: ResultObject | ResultObject[] | undefined\n\n if (queryResult.rows.length === 1) {\n obj = getObjectForRow(queryResult.rows[0])\n }\n\n if (queryResult.rows.length > 1) {\n obj = queryResult.rows.reduce((acc, row) => {\n const rowObj = getObjectForRow(row)\n\n acc.push(rowObj)\n return acc\n }, [] as ResultObject[])\n }\n\n return obj\n}\nexport const createOrUpdate = async <T>(\n db: BetterSQLite3Database | SqliteRemoteDatabase,\n table: SQLiteTableWithColumns<any>,\n values: Partial<Record<keyof T, T[keyof T]>>,\n) => {\n const startTime = Date.now()\n\n const valueFilters: SQL[] = []\n\n const propertiesToExcludeFromDb = ['ref']\n\n const safeValues = Object.keys(values).reduce(\n (acc, key) => {\n if (!propertiesToExcludeFromDb.includes(key)) {\n acc[key] = values[key as string & keyof T]\n }\n return acc\n },\n {} as Record<string, unknown>,\n )\n\n for (const [key, value] of Object.entries(safeValues)) {\n let finalValue = value\n if (key === 'TObject') {\n continue\n }\n if (typeof value === 'object') {\n finalValue = JSON.stringify(value)\n }\n const column = table[key]\n if (!column) {\n throw new Error(`Column not found for ${key}`)\n }\n if (typeof finalValue === 'undefined') {\n finalValue = null\n }\n if (finalValue === null) {\n valueFilters.push(isNull(table[key]))\n continue\n }\n valueFilters.push(eq(table[key], finalValue))\n }\n\n const doneWithFilters = Date.now()\n\n // console.log('valueFilters:', valueFilters)\n\n // for ( const filter of valueFilters ) {\n // console.log('filter:', Object.keys(filter))\n // }\n\n // Build a query to find the record based on properties\n const existingRecords = await db\n .select()\n .from(table)\n .where(and(...valueFilters))\n\n const doneWithExistingRecords = Date.now()\n\n if (existingRecords.length > 1) {\n throw new Error('Multiple records found')\n }\n\n if (existingRecords.length > 0) {\n // If record exists, update it\n await db\n .update(table)\n .set(safeValues)\n .where(and(...valueFilters))\n\n const doneWithUpdate = Date.now()\n\n return existingRecords[0] as T\n } else {\n // If no record exists, create a new one\n const newRecord = await db.insert(table).values(safeValues).returning()\n return newRecord[0] as T\n }\n}\nexport const addModelsToInternalDb = async (\n db: BetterSQLite3Database<any> | SqliteRemoteDatabase<any>,\n models: ModelDefinitions,\n) => {\n for (const [modelName, modelClass] of Object.entries(models)) {\n const modelRecord = await createOrUpdate<NewModelRecord>(db, modelsTable, {\n name: modelName,\n })\n\n for (let [propertyName, propertyValues] of Object.entries(\n modelClass.schema,\n )) {\n if (!propertyValues) {\n throw new Error(`Property values not found for ${propertyName}`)\n }\n propertyValues.name = propertyName\n propertyValues.modelId = modelRecord.id!\n for (let [key, value] of Object.entries(propertyValues)) {\n if (key === 'ref') {\n const refModel = await createOrUpdate<NewModelRecord>(\n db,\n modelsTable,\n {\n name: value,\n },\n )\n // delete propertyValues.ref\n propertyValues.refModelId = refModel.id\n }\n }\n\n const propertyRecord = await createOrUpdate<NewPropertyRecord>(\n db,\n properties,\n propertyValues,\n )\n }\n }\n}\nexport const getAddressesFromDb = async (): Promise<string[]> => {\n const appDb = BaseDb.getAppDb()\n\n if (!appDb) {\n return new Promise((resolve) => {\n setTimeout(async () => {\n const addresses = await getAddressesFromDb()\n resolve(addresses)\n }, 500)\n })\n }\n\n const appStatesRecords = await appDb\n .select()\n .from(appState)\n .where(eq(appState.key, 'addresses'))\n .limit(1)\n\n if (!appStatesRecords || appStatesRecords.length === 0) {\n throw new Error('No appStatesRecords for addresses found')\n }\n\n const addressRecord = appStatesRecords[0]\n\n const addressArrayString = addressRecord.value\n\n if (!addressArrayString) {\n throw new Error('No addresses found')\n }\n\n return JSON.parse(addressArrayString)\n}\n","import { ModelClassType } from '@/types'\n\nconst modelStore = new Map<string, ModelClassType>()\n\nexport const getModels = (): Record<string, ModelClassType> => {\n return Object.fromEntries(modelStore)\n}\n\nexport const getModel = (modelName: string): ModelClassType | undefined => {\n return modelStore.get(modelName)\n}\n\nexport const getModelNames = (): string[] => {\n return Array.from(modelStore.keys())\n}\n\nexport const setModel = (modelName: string, model: ModelClassType) => {\n modelStore.set(modelName, model)\n}\n","import { getModels } from '@/stores/modelClass'\nimport { GetSchemasQuery, Schema } from '@/graphql/gql/graphql'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { models as modelsTable, modelUids } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport pluralize from 'pluralize'\nimport { toSnakeCase } from '@/helpers'\nimport { GET_SCHEMAS } from '@/Item/queries'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\n\n\ntype GetModelSchemasReturn = {\n modelSchemas: GetSchemasQuery\n schemaStringToModelRecord: Map<string, Schema>\n modelRecords: Record<string, unknown>\n}\n\ntype GetModelSchemas = () => Promise<GetModelSchemasReturn>\n\nexport const getModelSchemas: GetModelSchemas = async () => {\n const models = getModels()\n const modelRecords = [] as Record<string, unknown>[]\n\n const schemaStringToModelRecord = new Map<string, Schema>()\n\n const appDb = BaseDb.getAppDb()\n\n const OR: Record<string, unknown>[] = []\n\n for (const [modelName, _] of Object.entries(models)) {\n const foundModelQuery = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n\n const foundModel: Schema = { ...foundModelQuery[0] }\n\n if (!foundModel) {\n console.error(\n `[item/events] [syncDbWithEas] model ${modelName} not found in SDK DB`,\n )\n return\n }\n\n foundModel.tableName = pluralize(foundModel.name).toLowerCase()\n\n modelRecords!.push(foundModel)\n\n if (modelName === 'Seed' || modelName === 'Version') {\n continue\n }\n\n const schemaString = `bytes32 ${toSnakeCase(modelName)}`\n\n OR.push({\n schema: {\n equals: `bytes32 ${toSnakeCase(modelName)}`,\n },\n })\n\n schemaStringToModelRecord.set(schemaString, foundModel)\n }\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const modelSchemas = await queryClient.fetchQuery({\n queryKey: [`getSchemasAllModels`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n OR,\n },\n }),\n })\n\n return {\n modelSchemas,\n schemaStringToModelRecord,\n modelRecords,\n }\n}\n","import { seeds, SeedType } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\ntype CreateSeeds = (newSeeds: Partial<SeedType>[]) => Promise<string[]>\n\nexport const createSeeds: CreateSeeds = async (\n newSeeds: Partial<SeedType>[],\n) => {\n const appDb = BaseDb.getAppDb()\n\n const results = await appDb\n .insert(seeds)\n .values(newSeeds)\n .returning({ uid: seeds.uid })\n\n const newUids = results.reduce((acc, result) => {\n if (result.uid) {\n acc.push(result.uid)\n }\n return acc\n }, [] as string[])\n\n return newUids\n}\n","import { Schema, SchemaWhereInput } from '@/graphql/gql/graphql'\nimport { toSnakeCase, BaseEasClient, BaseQueryClient } from '@/helpers'\nimport { GET_SCHEMAS } from '@/Item/queries'\nimport { TypedData } from '@ethereum-attestation-service/eas-sdk/dist/offchain/typed-data-handler'\n\n\ntype GetSchemaForPropertyProps = {\n schemaUid?: string\n propertyName: string\n easDataType?: TypedData['type']\n}\ntype GetSchemaForProperty = (\n props: GetSchemaForPropertyProps,\n) => Promise<Schema | void>\nexport const getSchemaForItemProperty: GetSchemaForProperty = async ({\n schemaUid,\n propertyName,\n easDataType,\n}): Promise<Schema | void> => {\n const propertyNameSnakeCase = toSnakeCase(propertyName)\n const isMissingSchemaUid =\n !schemaUid || schemaUid === 'null' || schemaUid === 'undefined'\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n let queryParams: { where: SchemaWhereInput } = {\n where: {\n id: {\n equals: schemaUid,\n },\n },\n }\n\n if (easDataType) {\n queryParams = {\n where: {\n schema: {\n equals: `${easDataType} ${propertyNameSnakeCase}`,\n },\n },\n }\n }\n\n if (!easDataType && isMissingSchemaUid) {\n queryParams = {\n where: {\n schemaNames: {\n some: {\n name: {\n equals: propertyNameSnakeCase,\n },\n },\n },\n },\n }\n }\n\n const foundPropertySchema = await queryClient.fetchQuery({\n queryKey: [`getPropertySchema${propertyName}`],\n queryFn: async () => easClient.request(GET_SCHEMAS, queryParams),\n networkMode: 'offlineFirst',\n })\n\n if (foundPropertySchema && foundPropertySchema.schemas.length > 0) {\n return foundPropertySchema.schemas[0] as Schema\n }\n}\n","import { toSnakeCase } from '@/helpers'\nimport { getSchemaForItemProperty } from '@/helpers/getSchemaForItemProperty'\n\nconst schemaUidForSchemaDefinition = new Map<string, string>()\n\nexport const setSchemaUidForSchemaDefinition = ({ text, schemaUid }) => {\n const propertySnakeCase = toSnakeCase(text)\n schemaUidForSchemaDefinition.set(propertySnakeCase, schemaUid)\n}\n\nexport const getSchemaUidForSchemaDefinition = (schemaText: string) => {\n const textSnakeCase = toSnakeCase(schemaText)\n if (!schemaUidForSchemaDefinition.has(textSnakeCase)) {\n return\n }\n return schemaUidForSchemaDefinition.get(textSnakeCase)\n}\n\nexport const fetchSchemaUids = async () => {\n const versionSchemaUid = await getSchemaForItemProperty({\n propertyName: 'version',\n easDataType: 'bytes32',\n })\n if (versionSchemaUid) {\n setSchemaUidForSchemaDefinition({\n text: 'version',\n schemaUid: versionSchemaUid,\n })\n }\n const imageSchemaUid = await getSchemaForItemProperty({\n propertyName: 'image',\n easDataType: 'bytes32',\n })\n if (imageSchemaUid) {\n setSchemaUidForSchemaDefinition({\n text: 'image',\n schemaUid: imageSchemaUid,\n })\n }\n}\n","import { camelCase, DebouncedFunc, startCase, throttle } from 'lodash-es'\nimport { Attestation, SchemaWhereInput } from '@/graphql/gql/graphql'\nimport {\n metadata,\n MetadataType,\n modelUids,\n properties,\n seeds,\n SeedType,\n versions,\n} from '@/seedSchema'\nimport { and, eq, inArray, sql } from 'drizzle-orm'\nimport {\n generateId,\n parseEasRelationPropertyName,\n toSnakeCase,\n} from '@/helpers'\nimport {\n GET_PROPERTIES,\n GET_SCHEMAS,\n GET_SEEDS,\n GET_VERSIONS,\n} from '@/Item/queries'\nimport { INTERNAL_DATA_TYPES } from '@/helpers/constants'\nimport { escapeSqliteString, getAddressesFromDb } from '@/helpers/db'\nimport { eventEmitter } from '@/eventBus'\nimport { getModelNames, getModels } from '@/stores/modelClass'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { getModelSchemas } from '@/db/read/getModelSchemas'\nimport { ModelSchema, PropertyType } from '@/types'\nimport { createSeeds } from '@/db/write/createSeeds'\nimport { setSchemaUidForSchemaDefinition } from '@/stores/eas'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\n\n\n\n\nconst relationValuesToExclude = [\n '0x0000000000000000000000000000000000000000000000000000000000000020',\n]\n\n\nconst getSeedsFromSchemaUids = async ({ schemaUids, addresses }) => {\n const AND = [\n {\n OR: [] as Record<string, unknown>[],\n },\n ]\n\n for (const schemaUid of schemaUids) {\n AND[0].OR.push({\n decodedDataJson: {\n contains: schemaUid,\n },\n })\n }\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { itemSeeds } = await queryClient.fetchQuery({\n queryKey: [`getSeedsForAllModels`],\n queryFn: async () =>\n easClient.request(GET_SEEDS, {\n where: {\n attester: {\n in: addresses,\n },\n schemaId: {\n in: schemaUids,\n },\n AND,\n },\n }),\n })\n\n return itemSeeds\n}\n\nconst seedUidToLocalId = new Map<string, string>()\nconst seedUidToModelType = new Map<string, string>()\nconst relatedSeedUids = new Set<string>()\n\nconst versionUidToLocalId = new Map<string, string>()\nconst versionUidToSeedUid = new Map<string, string>()\n\nconst propertyUidToLocalId = new Map<string, string>()\n\ntype SaveEasSeedsToDbProps = {\n itemSeeds: Attestation[]\n}\n\ntype SaveEasSeedsToDbReturn = {\n seedUids: string[]\n}\n\ntype SaveEasSeedsToDb = (\n props: SaveEasSeedsToDbProps,\n) => Promise<SaveEasSeedsToDbReturn>\n\nconst saveEasSeedsToDb: SaveEasSeedsToDb = async ({ itemSeeds }) => {\n const appDb = BaseDb.getAppDb()\n\n const seedUids = itemSeeds.map((seed) => seed.id)\n\n const existingSeedRecordsRows: SeedType[] = await appDb\n .select()\n .from(seeds)\n .where(inArray(seeds.uid, seedUids))\n\n const existingSeedUids = new Set<string>()\n\n if (existingSeedRecordsRows && existingSeedRecordsRows.length > 0) {\n for (const row of existingSeedRecordsRows) {\n existingSeedUids.add(row.uid)\n seedUidToLocalId.set(row.uid, row.localId)\n seedUidToModelType.set(row.uid, row.type)\n }\n }\n\n const newSeeds = itemSeeds.filter((seed) => !existingSeedUids.has(seed.id))\n\n if (newSeeds.length === 0) {\n return { seedUidToLocalId, seedUids }\n }\n\n const newSeedsData: Partial<SeedType>[] = []\n\n for (let i = 0; i < newSeeds.length; i++) {\n const seed = newSeeds[i]\n seedUidToModelType.set(seed.id, seed.schema.schemaNames[0].name)\n const seedLocalId = generateId()\n seedUidToLocalId.set(seed.id, seedLocalId)\n\n const attestationRaw = escapeSqliteString(JSON.stringify(seed))\n\n newSeedsData.push({\n localId: seedLocalId,\n uid: seed.id,\n schemaUid: seed.schemaId,\n type: seed.schema.schemaNames[0].name,\n createdAt: Date.now(),\n attestationCreatedAt: seed.timeCreated * 1000,\n attestationRaw,\n })\n\n seedUidToLocalId.set(seed.id, seedLocalId)\n }\n\n const newSeedUids = await createSeeds(newSeedsData)\n\n return { seedUids: newSeedUids }\n}\n\ntype SaveEasVersionsToDbParams = {\n itemVersions: Attestation[]\n}\n\ntype SaveEasVersionsToDb = (\n props: SaveEasVersionsToDbParams,\n) => Promise<Record<string, unknown>>\n\nconst saveEasVersionsToDb: SaveEasVersionsToDb = async ({ itemVersions }) => {\n const versionUids = itemVersions.map((version) => version.id)\n\n const appDb = BaseDb.getAppDb()\n\n const existingVersionRecordsRows: MetadataType[] = await appDb\n .select()\n .from(versions)\n .where(inArray(versions.uid, versionUids))\n\n const existingVersionUids = new Set<string>()\n\n if (existingVersionRecordsRows && existingVersionRecordsRows.length > 0) {\n for (const row of existingVersionRecordsRows) {\n existingVersionUids.add(row.uid)\n versionUidToLocalId.set(row.uid, row.localId)\n versionUidToSeedUid.set(row.uid, row.seedUid)\n }\n }\n\n const newVersions = itemVersions.filter(\n (version) => !existingVersionUids.has(version.id),\n )\n\n if (newVersions.length === 0) {\n return { versionUidToLocalId, versionUids }\n }\n\n let insertVersionsQuery = `INSERT INTO versions (local_id, uid, seed_uid, seed_local_id, seed_type, created_at,\n attestation_created_at,\n attestation_raw)\n VALUES `\n\n for (let i = 0; i < newVersions.length; i++) {\n const version = newVersions[i]\n versionUidToSeedUid.set(version.id, version.refUID)\n const versionLocalId = generateId()\n versionUidToLocalId.set(version.id, versionLocalId)\n\n const seedUid = versionUidToSeedUid.get(version.id)\n const seedLocalId = seedUidToLocalId.get(seedUid!)\n const seedType = seedUidToModelType.get(seedUid!)\n const attestationRaw = escapeSqliteString(JSON.stringify(version))\n\n const valuesString = `('${versionLocalId}', '${version.id}', '${seedUid}', '${seedLocalId}', '${seedType}', ${Date.now()}, ${version.timeCreated * 1000}, '${attestationRaw}')`\n\n if (i < newVersions.length - 1) {\n insertVersionsQuery += valuesString + ', '\n }\n\n if (i === newVersions.length - 1) {\n insertVersionsQuery += valuesString + ';'\n }\n\n versionUidToLocalId.set(version.id, versionLocalId)\n }\n\n await appDb.run(sql.raw(insertVersionsQuery))\n\n return { versionUids }\n}\n\nconst createMetadataRecordsForStorageTransactionId = async (\n storageTransactionIdProperty: Attestation,\n modelSchema: ModelSchema,\n) => {\n const attestationData = JSON.parse(\n storageTransactionIdProperty.decodedDataJson,\n )[0].value\n const propertyName = camelCase(attestationData.name)\n const propertyValue = attestationData.value\n\n const itemStorageProperties = new Map<string, PropertyType>()\n\n for (const [_propertyName, propertyDef] of Object.entries(modelSchema)) {\n if (propertyDef?.storageType && propertyDef.storageType === 'ItemStorage') {\n itemStorageProperties.set(_propertyName, propertyDef)\n }\n }\n\n if (itemStorageProperties.size === 0) {\n return\n }\n\n const appDb = BaseDb.getAppDb()\n\n for (const [_propertyName, propertyDef] of itemStorageProperties.entries()) {\n const existingMetadataRecordRows = await appDb\n .select()\n .from(metadata)\n .where(\n and(\n eq(metadata.propertyName, _propertyName),\n eq(metadata.propertyValue, propertyValue),\n eq(metadata.versionUid, storageTransactionIdProperty.refUID),\n ),\n )\n\n if (existingMetadataRecordRows && existingMetadataRecordRows.length > 0) {\n continue\n }\n\n const seedUid = versionUidToSeedUid.get(\n storageTransactionIdProperty.refUID,\n ) as string\n const seedLocalId = seedUidToLocalId.get(seedUid)\n const versionUid = storageTransactionIdProperty.refUID\n const versionLocalId = versionUidToLocalId.get(versionUid)\n\n const propertyLocalId = generateId()\n await appDb.insert(metadata).values({\n localId: propertyLocalId,\n propertyName: _propertyName,\n propertyValue,\n localStorageDir: propertyDef.localStorageDir,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n refValueType: 'file',\n refResolvedValue: `${propertyValue}${propertyDef.filenameSuffix}`,\n modelType: seedUidToModelType.get(seedUid),\n createdAt: Date.now(),\n updatedAt: Date.now(),\n })\n }\n}\n\ntype SaveEasPropertiesToDbParams = {\n itemProperties: Attestation[]\n itemSeeds: Attestation[]\n}\n\ntype SaveEasPropertiesToDb = (\n props: SaveEasPropertiesToDbParams,\n) => Promise<Record<string, unknown>>\n\nlet isSavingToDb = false\n\nconst saveEasPropertiesToDb: SaveEasPropertiesToDb = async ({\n itemProperties,\n itemSeeds,\n}) => {\n if (isSavingToDb) {\n return\n }\n isSavingToDb = true\n\n const propertyUids = itemProperties.map((property) => property.id)\n\n const models = getModels()\n\n const appDb = BaseDb.getAppDb()\n\n const existingMetadataRecordsRows: MetadataType[] = await appDb\n .select()\n .from(metadata)\n .where(inArray(metadata.uid, propertyUids))\n\n const existingPropertyRecordsUids = new Set<string>()\n\n if (existingMetadataRecordsRows && existingMetadataRecordsRows.length > 0) {\n for (const row of existingMetadataRecordsRows) {\n existingPropertyRecordsUids.add(row.uid)\n propertyUidToLocalId.set(row.uid, row.localId)\n }\n }\n\n const newProperties = itemProperties.filter(\n (property) => !existingPropertyRecordsUids.has(property.id),\n )\n\n if (newProperties.length === 0) {\n return { propertyUidToLocalId, propertyUids }\n }\n\n let insertPropertiesQuery = `INSERT INTO metadata (local_id, uid, schema_uid, property_name, property_value,\n eas_data_type, version_uid, version_local_id, seed_uid,\n seed_local_id, model_type, ref_value_type, ref_seed_type,\n ref_schema_uid,\n created_at, attestation_created_at, attestation_raw,\n local_storage_dir, ref_resolved_value)\n VALUES `\n\n for (let i = 0; i < newProperties.length; i++) {\n const property = newProperties[i]\n const propertyLocalId = generateId()\n const metadata = JSON.parse(property.decodedDataJson)[0].value\n\n let propertyNameSnake = metadata.name\n\n if (!propertyNameSnake) {\n console.warn(\n '[item/events] [syncDbWithEas] no propertyName found for property: ',\n property,\n )\n continue\n }\n\n let isRelation = false\n let refValueType\n let refSeedType\n let refSchemaUid\n let refResolvedValue\n let isList = false\n const schemaUid = property.schemaId\n\n setSchemaUidForSchemaDefinition({\n text: propertyNameSnake,\n schemaUid,\n })\n\n if (\n (propertyNameSnake.endsWith('_id') ||\n propertyNameSnake.endsWith('_ids')) &&\n propertyNameSnake !== 'storage_transaction_id' &&\n propertyNameSnake !== 'storage_provider_transaction_id'\n ) {\n isRelation = true\n\n if (Array.isArray(metadata.value)) {\n isList = true\n refValueType = 'list'\n\n const result = parseEasRelationPropertyName(propertyNameSnake)\n\n if (result) {\n propertyNameSnake = result.propertyName\n refSeedType = result.modelName\n }\n\n metadata.value.forEach((value) => {\n relatedSeedUids.add(value)\n })\n }\n\n if (!isList) {\n if (relationValuesToExclude.includes(metadata.value)) {\n continue\n }\n relatedSeedUids.add(metadata.value)\n }\n }\n\n let propertyValue = metadata.value\n\n if (typeof propertyValue !== 'string') {\n propertyValue = JSON.stringify(propertyValue)\n }\n\n if (isRelation && !isList) {\n const relatedSeed = itemSeeds.find(\n (seed: Attestation) => seed.id === metadata.value,\n )\n if (relatedSeed && relatedSeed.schema && relatedSeed.schema.schemaNames) {\n refSeedType = relatedSeed.schema.schemaNames[0].name\n refSchemaUid = relatedSeed.schemaId\n }\n }\n\n if (isRelation && isList) {\n const relatedSeeds = itemSeeds.filter((seed: Attestation) =>\n metadata.value.includes(seed.id),\n )\n if (relatedSeeds && relatedSeeds.length > 0) {\n refSeedType = relatedSeeds[0].schema.schemaNames[0].name\n refSchemaUid = relatedSeeds[0].schemaId\n }\n }\n\n const propertyName = camelCase(propertyNameSnake)\n propertyValue = escapeSqliteString(propertyValue)\n const easDataType = metadata.type\n const versionUid = property.refUID\n const versionLocalId = versionUidToLocalId.get(versionUid)\n const attestationCreatedAt = property.timeCreated * 1000\n const attestationRaw = escapeSqliteString(JSON.stringify(property))\n const seedUid = versionUidToSeedUid.get(versionUid)\n const seedLocalId = seedUidToLocalId.get(seedUid!)\n const modelType = seedUidToModelType.get(seedUid!)\n\n let localStorageDir\n const modelName = startCase(modelType)\n const ModelClass = models[modelName]\n const modelSchema = ModelClass.schema\n\n if (propertyNameSnake === 'storage_transaction_id') {\n await createMetadataRecordsForStorageTransactionId(property, modelSchema)\n }\n\n const valuesString = `('${propertyLocalId}', '${property.id}', \n '${property.schemaId}', '${propertyName}', \n '${propertyValue}', '${easDataType}', '${versionUid}', \n '${versionLocalId}', '${seedUid}', '${seedLocalId}', \n '${modelType}', ${refValueType ? `'${refValueType}'` : 'NULL'}, \n ${refSeedType ? `'${refSeedType}'` : 'NULL'},\n ${refSchemaUid ? `'${refSchemaUid}'` : 'NULL'},\n ${Date.now()}, ${attestationCreatedAt}, '${attestationRaw}',\n ${localStorageDir ? `'${localStorageDir}'` : 'NULL'},\n ${refResolvedValue ? `'${refResolvedValue}'` : 'NULL'})`\n\n if (i < newProperties.length - 1) {\n insertPropertiesQuery += valuesString + ', '\n }\n\n if (i === newProperties.length - 1) {\n insertPropertiesQuery += valuesString + ';'\n }\n\n propertyUidToLocalId.set(property.id, propertyLocalId)\n }\n\n if (insertPropertiesQuery.endsWith('VALUES ')) {\n return { propertyUids }\n }\n\n if (insertPropertiesQuery.endsWith(', ')) {\n insertPropertiesQuery = insertPropertiesQuery.slice(0, -2) + ';'\n }\n\n await appDb.run(sql.raw(insertPropertiesQuery))\n\n isSavingToDb = false\n\n return { propertyUids }\n}\n\nconst getRelatedSeedsAndVersions = async () => {\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { itemSeeds } = await easClient.request(GET_SEEDS, {\n where: {\n id: {\n in: Array.from(relatedSeedUids),\n },\n },\n })\n\n await saveEasSeedsToDb({ itemSeeds })\n\n const { itemVersions } = await easClient.request(GET_VERSIONS, {\n where: {\n refUID: {\n in: Array.from(relatedSeedUids),\n },\n },\n })\n\n await saveEasVersionsToDb({ itemVersions })\n\n const relatedVersionUids = itemVersions.map((v) => v.id)\n\n const { itemProperties } = await easClient.request(GET_PROPERTIES, {\n where: {\n refUID: {\n in: relatedVersionUids,\n },\n },\n })\n\n await saveEasPropertiesToDb({\n itemProperties,\n itemSeeds,\n })\n}\n\nconst syncDbWithEasHandler: DebouncedFunc<any> = throttle(\n async (_) => {\n const appDb = BaseDb.getAppDb()\n\n const { modelSchemas, schemaStringToModelRecord } = await getModelSchemas()\n\n if (\n !modelSchemas ||\n !modelSchemas.schemas ||\n modelSchemas.schemas.length === 0\n ) {\n throw new Error(`No schemas found for models`)\n }\n\n const schemaUids: string[] = []\n\n for (const modelSchema of modelSchemas.schemas) {\n const foundModel = schemaStringToModelRecord.get(modelSchema.schema)\n\n if (!foundModel) {\n throw new Error(`Model not found for schema ${modelSchema.schema}`)\n }\n\n schemaUids.push(modelSchema.id)\n\n await appDb\n .insert(modelUids)\n .values({\n modelId: foundModel.id,\n uid: modelSchema.id,\n })\n .onConflictDoNothing()\n\n }\n\n const addresses = await getAddressesFromDb()\n\n const itemSeeds = await getSeedsFromSchemaUids({\n schemaUids: schemaUids,\n addresses,\n })\n\n // const seedDbRecords = new Map<string, Record<string, unknown>>()\n\n const { seedUids } = await saveEasSeedsToDb({\n itemSeeds,\n })\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { itemVersions } = await queryClient.fetchQuery({\n queryKey: [`getVersionsForAllModels`],\n queryFn: async () =>\n easClient.request(GET_VERSIONS, {\n where: {\n refUID: {\n in: seedUids,\n },\n },\n }),\n })\n\n const { versionUids } = await saveEasVersionsToDb({\n itemVersions,\n })\n\n const { itemProperties } = await queryClient.fetchQuery({\n queryKey: [`getPropertiesForAllModels`],\n queryFn: async () =>\n easClient.request(GET_PROPERTIES, {\n where: {\n refUID: {\n in: versionUids,\n },\n },\n }),\n })\n\n const { propertyUids } = saveEasPropertiesToDb({\n itemProperties,\n itemSeeds,\n })\n\n await getRelatedSeedsAndVersions()\n\n for (const modelName of getModelNames()) {\n eventEmitter.emit('item.requestAll', { modelName })\n }\n },\n 30000,\n {\n leading: true,\n trailing: false,\n },\n)\n\nexport { syncDbWithEasHandler }\n","export const isNode = (): boolean => {\n return (\n typeof process !== 'undefined' &&\n process.versions != null &&\n process.versions.node != null\n )\n}\n\nexport const isBrowser = (): boolean => {\n return !isElectron() && typeof window !== 'undefined' && typeof window.document !== 'undefined'\n}\n\nexport const isReactNative = (): boolean => {\n return typeof navigator !== 'undefined' && navigator.product === 'ReactNative'\n}\n\nexport const isElectron = (): boolean => {\n return typeof process !== 'undefined' && process.versions != null && process.versions.electron != null;\n}\n\nexport const getEnvironment = (): string => {\n if (isBrowser()) {\n return 'browser'\n }\n\n if (isElectron()) {\n return 'electron'\n }\n\n if (isReactNative()) {\n return 'react-native'\n }\n\n return 'node'\n}\n","import { EventObject, fromCallback, Subscription } from 'xstate'\nimport { getEnvironment } from '@/helpers/environment'\nimport {\n GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES,\n GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY,\n GLOBAL_INITIALIZING_SEND_CONFIG,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { FromCallbackInput, GlobalMachineContext } from '@/types'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { appState } from '@/seedSchema'\nimport { like } from 'drizzle-orm'\nimport { fetchSchemaUids } from '@/stores/eas'\n\nconst logger = debug('seedSdk:services:global:actors:initialize')\n\nexport const initialize = fromCallback<\n EventObject,\n FromCallbackInput<GlobalMachineContext, EventObject>\n>(({ sendBack, input: { event, context } }) => {\n const { internalService, models, endpoints, arweaveDomain, addresses, } = context\n\n if (!internalService) {\n throw new Error('internalService is required')\n }\n\n if (!models) {\n throw new Error('models is required')\n }\n\n let environment = getEnvironment()\n\n let internalSubscription: Subscription | undefined\n let easSubscription: Subscription | undefined\n\n const _initFileSystem = async (): Promise<void> => {\n return\n // return new Promise((resolve) => {\n // })\n }\n\n const _initInternal = async (): Promise<void> => {\n return new Promise((resolve) => {\n internalSubscription = internalService.subscribe((snapshot) => {\n logger('[sdk] [internal] snapshot.value', snapshot.value)\n if (snapshot.value === 'ready') {\n resolve()\n }\n })\n logger('[sdk] [internal] sending init')\n internalService.send({\n type: 'init',\n endpoints,\n addresses,\n arweaveDomain,\n })\n })\n }\n\n const _initAllItemsServices = async (): Promise<void> => {\n const appDb = BaseDb.getAppDb()\n\n const rows = await appDb\n .select()\n .from(appState)\n .where(like(appState.key, 'snapshot__%'))\n\n const payloadObj = {\n create: {},\n restore: {},\n }\n\n const modelNamesRestored: string[] = []\n\n if (rows && rows.length > 0) {\n for (const row of rows) {\n const modelName = row.key.replace('snapshot__', '')\n payloadObj.restore[modelName] = JSON.parse(row.value)\n modelNamesRestored.push(modelName)\n }\n }\n for (const [modelName, ModelClass] of Object.entries(models)) {\n if (!modelNamesRestored.includes(modelName)) {\n payloadObj.create[modelName] = ModelClass\n }\n }\n sendBack({\n type: GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES,\n ...payloadObj,\n })\n }\n\n const _initEas = async (): Promise<void> => {\n await fetchSchemaUids()\n }\n\n _initFileSystem().then(() => {\n logger('[global/actors] File system initialized')\n })\n\n _initInternal()\n .then(() => {\n return _initAllItemsServices()\n })\n .then(() => {\n return _initEas()\n })\n .then(() => {\n logger('[global/actors] Internal initialized')\n sendBack({ type: GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY })\n internalSubscription?.unsubscribe()\n })\n\n // _initEas().then(() => {\n // logger('EAS initialized')\n // })\n\n sendBack({ type: GLOBAL_INITIALIZING_SEND_CONFIG, environment })\n\n return () => {\n internalSubscription?.unsubscribe()\n easSubscription?.unsubscribe()\n }\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport {\n FromCallbackInput,\n GetSchemaForModelEvent,\n GlobalMachineContext,\n} from '@/types'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:services:global:actors:getSchemaForModel')\n\nexport const getSchemaForModel = fromCallback<\n EventObject,\n FromCallbackInput<GlobalMachineContext, GetSchemaForModelEvent>\n>(({ sendBack, input: { context, event } }) => {\n const { modelName } = event\n\n if (!modelName) {\n console.warn('No modelName found')\n return\n }\n\n const { models } = context\n\n if (!models) {\n console.warn('No models found')\n return\n }\n\n const model = Object.entries(models).find(\n ([modelNameFromConfig]) => modelNameFromConfig === modelName,\n )\n\n if (!model) {\n throw new Error(`Model ${modelName} not found`)\n }\n\n logger('[service/actor] [getSchemaForModel] model:', model)\n\n sendBack({ type: 'schemaForModel', schema: model.schema })\n\n return () => {}\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { models as modelsTable, modelUids } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { toSnakeCase, BaseEasClient, BaseQueryClient } from '@/helpers'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { GLOBAL_ADDING_MODELS_TO_DB_SUCCESS } from '@/services/internal/constants'\nimport { eventEmitter } from '@/eventBus'\nimport { FromCallbackInput, GlobalMachineContext } from '@/types'\nimport debug from 'debug'\nimport { GET_SCHEMAS } from '@/Item/queries'\n\nconst logger = debug('seedSdk:services:global:actors:addModelsToDb')\n\nexport const addModelsToDb = fromCallback<\n EventObject,\n FromCallbackInput<GlobalMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { models } = context\n\n const _addModelsToDb = async () => {\n const appDb = BaseDb.getAppDb()\n\n if (!models) {\n return\n }\n\n const { models: SeedModels } = await import(\n '@/db/configs/seed.schema.config'\n )\n\n const allModels = {\n ...SeedModels,\n ...models,\n }\n\n let hasModelsInDb = false\n const schemaDefsByModelName = new Map<\n string,\n {\n dbId: number\n schemaDef: string\n }\n >()\n\n for (const [modelName, _] of Object.entries(allModels)) {\n logger(\n '[helpers/db] [addModelsToInternalDb] starting modelName:',\n modelName,\n )\n\n let foundModel\n\n const foundModelsQuery = await appDb\n .select()\n .from(modelsTable)\n .where(eq(modelsTable.name, modelName))\n\n if (!foundModelsQuery || foundModelsQuery.length === 0) {\n await appDb.insert(modelsTable).values({\n name: modelName,\n })\n\n logger('[global/actors] [addModelsToDb] inserted model:', modelName)\n const foundModels = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n\n foundModel = foundModels[0]\n }\n\n if (foundModelsQuery && foundModelsQuery.length > 0) {\n foundModel = foundModelsQuery[0]\n }\n\n if (!foundModel) {\n hasModelsInDb = false\n break\n }\n\n schemaDefsByModelName.set(modelName, {\n dbId: foundModel.id,\n schemaDef: `bytes32 ${toSnakeCase(modelName)}`,\n })\n }\n\n if (!hasModelsInDb) {\n return false\n }\n\n const schemaDefs = Array.from(schemaDefsByModelName.values()).map(\n ({ schemaDef }) => schemaDef,\n )\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { schemas } = await queryClient.fetchQuery({\n queryKey: [`getSchemasVersion`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n schema: {\n in: schemaDefs,\n },\n },\n }),\n })\n\n if (!schemas || schemas.length === 0) {\n throw new Error(`No schemas found`)\n }\n\n for (const schema of schemas) {\n const modelId = Array.from(schemaDefsByModelName.values()).find(\n ({ schemaDef }) => schemaDef === schema.schema,\n )?.dbId\n\n if (!modelId) {\n throw new Error(`No modelId found for schema ${schema.schema}`)\n }\n\n await appDb\n .insert(modelUids)\n .values({\n modelId,\n uid: schema.id,\n })\n .onConflictDoNothing()\n }\n }\n\n _addModelsToDb().then((hasModelsInDb) => {\n sendBack({ type: GLOBAL_ADDING_MODELS_TO_DB_SUCCESS })\n if (hasModelsInDb) {\n }\n for (const [modelName, model] of Object.entries(models)) {\n const service = context[`${modelName}Service`]\n service.send({ type: 'modelsFound' })\n }\n eventEmitter.emit('syncDbWithEas')\n return\n })\n\n return () => { }\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types'\nimport {\n BROWSER_FS_TOP_DIR,\n DB_CHECK_STATUS_EXISTS,\n DB_CHECK_STATUS_UPDATE_PATHS,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { isBrowser } from '@/helpers/environment'\n\nconst logger = debug('seedSdk:services:db:actors:checkStatus')\n\nexport const checkStatus = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context, event, } }) => {\n const { dbName, } = context\n let { pathToDir, } = context\n\n\n logger('[db/actors] checkStatus context', context)\n console.log('[db/actors] checkStatus context', context)\n console.log('[db/actors] checkStatus event', event)\n if (isBrowser()) {\n pathToDir = BROWSER_FS_TOP_DIR\n }\n const pathToDbDir = `${pathToDir}/db`\n const pathToDb = `${pathToDbDir}/${dbName}.sqlite3`\n\n sendBack({\n type: DB_CHECK_STATUS_UPDATE_PATHS,\n pathToDb,\n pathToDir,\n pathToDbDir,\n })\n\n const _checkStatus = async (): Promise<void> => {\n // logger('[db/actors] _checkStatus pathToDb', pathToDb)\n // const exists = await fs.promises.exists(pathToJournal)\n // if (exists) {\n // sendBack({\n // type: DB_CHECK_STATUS_EXISTS,\n // })\n // return\n // }\n //\n // return new Promise((resolve) => {\n // sendBack({ type: DB_CHECK_STATUS_DOES_NOT_EXIST })\n //\n // })\n }\n\n _checkStatus().then(() => {\n sendBack({ type: DB_CHECK_STATUS_EXISTS })\n return\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types'\nimport { DB_CREATING_SUCCESS } from '@/services/internal/constants'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { isBrowser } from '@/helpers/environment'\n\nconst logger = debug('seedSdk:services:db:actors:connectToDb')\n\nexport const connectToDb = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n logger('[db/actors] connectToDb context', context)\n\n const { dbName, pathToDir } = context\n\n if (!pathToDir || !dbName) {\n throw new Error('pathToDir and dbName are required')\n }\n\n let isConnecting = false\n let dbId: string | undefined\n\n const _connectToDb = async (): Promise<void> => {\n if (isConnecting) {\n return\n }\n isConnecting = true\n\n if (isBrowser()) {\n await import('@/browser/db/Db')\n }\n\n if (!isBrowser()) {\n await import('@/node/db/Db')\n }\n\n const dbId = await BaseDb.connectToDb(pathToDir, dbName)\n if (dbId) {\n sendBack({ type: DB_CREATING_SUCCESS, dbId, })\n }\n isConnecting = false\n }\n\n _connectToDb().then(() => {\n return\n })\n\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types/machines'\nimport {\n DB_VALIDATING_SUCCESS,\n DB_VALIDATING_WAIT,\n} from '@/services/internal/constants'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nexport const validate = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n const { pathToDir, pathToDb } = context\n\n const pathsToCheck = [\n pathToDir,\n `${pathToDir}/db`,\n `${pathToDir}/db/meta`,\n `${pathToDir}/db/meta/_journal.json`,\n ]\n\n const _validate = async (): Promise<boolean> => {\n // If any of the necessary files don't exist, we wipe them all and recreate\n let exists = false\n\n for (const path of pathsToCheck) {\n exists = await BaseFileManager.pathExists(path)\n if (!exists) {\n sendBack({\n type: DB_VALIDATING_WAIT,\n })\n return false\n }\n }\n return exists\n }\n\n _validate().then((allFilesExist) => {\n if (allFilesExist) {\n sendBack({ type: DB_VALIDATING_SUCCESS, pathToDb, pathToDir })\n return\n }\n sendBack({ type: DB_VALIDATING_WAIT })\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput, SqliteWasmResult } from '@/types'\nimport {\n BROWSER_FS_TOP_DIR,\n DB_MIGRATING_SUCCESS,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nconst logger = debug('seedSdk:services:db:actors:migrate')\n\n\n\nexport const migrate = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n const { pathToDbDir, dbId, dbName } = context\n\n logger('[db/actors] migrate context', context)\n\n let journalExists = false\n\n\n const _checkForFiles = async (): Promise<void> => {\n const journalPath = `/${pathToDbDir}/meta/_journal.json`\n\n journalExists = await BaseFileManager.pathExists(journalPath)\n\n if (!journalExists && isBrowser()) {\n await BaseFileManager.waitForFile(journalPath, 500, 60000)\n }\n }\n\n const _migrate = async (): Promise<void> => {\n await BaseDb.migrate(pathToDbDir, dbName, dbId)\n }\n\n _checkForFiles()\n .then(() => {\n if (!isBrowser()) {\n return _migrate()\n }\n if (journalExists) {\n return _migrate()\n }\n })\n .then(() => {\n console.log('sending db migrating success')\n sendBack({ type: DB_MIGRATING_SUCCESS, dbName })\n })\n\n return () => { }\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { DbServiceContext, FromCallbackInput } from '@/types'\nimport { DB_WAITING_FOR_FILES_RECEIVED } from '@/services/internal/constants'\nimport debug from 'debug'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nconst logger = debug('seedSdk:services:db:actors:waitForFiles')\n\nexport const waitForFiles = fromCallback<\n EventObject,\n FromCallbackInput<DbServiceContext>\n>(({ sendBack, input: { context } }) => {\n\n if (!isBrowser()) {\n sendBack({ type: DB_WAITING_FOR_FILES_RECEIVED })\n return\n }\n\n const { pathToDbDir } = context\n\n const _waitForFiles = async (): Promise<void> => {\n return new Promise((resolve) => {\n const interval = setInterval(async () => {\n const journalExists = await BaseFileManager.pathExists(\n `${pathToDbDir}/meta/_journal.json`,\n )\n if (journalExists) {\n clearInterval(interval)\n resolve()\n }\n }, 1000)\n })\n }\n\n _waitForFiles().then(() => {\n sendBack({ type: DB_WAITING_FOR_FILES_RECEIVED })\n return\n })\n})\n","import { assign, setup } from 'xstate'\nimport {\n DB_CHECK_STATUS_EXISTS,\n DB_CHECK_STATUS_UPDATE_PATHS,\n DB_CREATING_SUCCESS,\n DB_MIGRATING_SUCCESS,\n DB_MIGRATING_WAIT,\n DB_VALIDATING_SUCCESS,\n DB_VALIDATING_WAIT,\n DB_WAITING_FOR_FILES_RECEIVED,\n DbState,\n MachineIds,\n} from '../internal/constants'\nimport debug from 'debug'\nimport { DbServiceContext } from '@/types'\nimport { checkStatus } from '@/services/db/actors/checkStatus'\nimport { connectToDb } from '@/services/db/actors/connectToDb'\nimport { validate } from '@/services/db/actors/validate'\nimport { migrate } from '@/services/db/actors/migrate'\nimport { waitForFiles } from './actors/waitForFiles'\n\nconst logger = debug('seedSdk:services:db:machine')\n\nconst {\n CHECKING_STATUS,\n VALIDATING,\n WAITING_FOR_FILES,\n CONNECTING_TO_DB,\n MIGRATING,\n} = DbState\n\nconst dbMachine = setup({\n types: {\n context: {} as Partial<DbServiceContext>,\n input: {} as Partial<DbServiceContext> | undefined,\n },\n actors: {\n checkStatus,\n validate,\n connectToDb,\n migrate,\n waitForFiles,\n },\n}).createMachine({\n id: MachineIds.DB,\n initial: CHECKING_STATUS,\n context: ({ input }) => input as DbServiceContext,\n on: {\n [DB_WAITING_FOR_FILES_RECEIVED]: {\n actions: assign({\n hasFiles: ({ event }) => {\n logger('[db/machine] DB_WAITING_FOR_FILES_RECEIVED event:', event)\n return true\n },\n }),\n },\n updateHasFiles: {\n target: `.${CHECKING_STATUS}`,\n actions: assign({\n hasFiles: ({ context, event }) => {\n logger('[db/machine] updateHasFiles event:', event)\n logger('[db/machine] updateHasFiles context:', context)\n return event.hasFiles\n },\n }),\n },\n },\n // always: {\n // target: `.${CHECKING_STATUS}`,\n // guard: ({ context, event }) => context.hasFiles && event.type === 'updateHasFiles',\n // },\n states: {\n idle: {\n on: {\n start: CHECKING_STATUS,\n },\n meta: {\n displayText: 'DB starting ...',\n percentComplete: 0,\n },\n },\n [CHECKING_STATUS]: {\n on: {\n [DB_CHECK_STATUS_UPDATE_PATHS]: {\n actions: assign({\n pathToDb: ({ event }) => event.pathToDb,\n pathToDir: ({ event }) => event.pathToDir,\n pathToDbDir: ({ event }) => event.pathToDbDir,\n }),\n },\n [DB_CHECK_STATUS_EXISTS]: CONNECTING_TO_DB,\n },\n invoke: {\n src: 'checkStatus',\n input: ({ context, event }) => ({ context, event }),\n },\n meta: {\n displayText: 'Checking DB status',\n percentComplete: 60,\n },\n },\n [CONNECTING_TO_DB]: {\n on: {\n [DB_CREATING_SUCCESS]: {\n target: VALIDATING,\n actions: assign({\n dbId: ({ event }) => event.dbId,\n }),\n },\n },\n invoke: {\n src: 'connectToDb',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Connecting to local DB',\n percentComplete: 70,\n },\n },\n [VALIDATING]: {\n on: {\n [DB_VALIDATING_SUCCESS]: {\n target: MIGRATING,\n // guard: ({ context }) => context.hasFiles,\n },\n [DB_VALIDATING_WAIT]: {\n target: WAITING_FOR_FILES,\n // guard: ({ context }) => !context.hasFiles,\n },\n },\n invoke: {\n src: 'validate',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Validating DB',\n percentComplete: 80,\n },\n },\n // Here we're waiting for migration and schema files to be downloaded\n [WAITING_FOR_FILES]: {\n on: {\n [DB_WAITING_FOR_FILES_RECEIVED]: {\n target: MIGRATING,\n actions: assign({\n hasFiles: true,\n }),\n },\n [DB_MIGRATING_SUCCESS]: 'ready',\n },\n invoke: {\n src: 'waitForFiles',\n input: ({ context }) => ({ context }),\n },\n },\n [MIGRATING]: {\n on: {\n [DB_MIGRATING_WAIT]: WAITING_FOR_FILES,\n [DB_MIGRATING_SUCCESS]: {\n target: 'ready',\n },\n },\n invoke: {\n src: 'migrate',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Migrating DB',\n percentComplete: 90,\n },\n },\n ready: {\n target: 'idle',\n meta: {\n displayText: 'Wrapping up the db ...',\n percentComplete: 100,\n },\n },\n },\n})\n\nexport { dbMachine }\n","import { EventObject, fromCallback } from 'xstate'\nimport { INTERNAL_VALIDATING_INPUT_SUCCESS, ARWEAVE_HOST } from '@/services/internal/constants'\nimport { FromCallbackInput, InternalMachineContext } from '@/types'\nimport { isBrowser, isNode } from '@/helpers/environment'\n\nexport const validateInput = fromCallback<\n EventObject,\n FromCallbackInput<InternalMachineContext>\n>(\n ({ sendBack, input: { context } }) => {\n\n const { endpoints, addresses, arweaveDomain } = context\n let { filesDir } = context\n\n if (!endpoints || !endpoints.filePaths || !endpoints.files) {\n throw new Error('validateInput called with invalid endpoints')\n }\n\n if (!filesDir) {\n if (isBrowser()) {\n filesDir = '/'\n }\n\n if (!isBrowser()) {\n throw new Error('validateInput called with invalid filesDir')\n }\n }\n\n const _validateInput = async (): Promise<void> => {\n sendBack({\n type: INTERNAL_VALIDATING_INPUT_SUCCESS,\n endpoints,\n addresses,\n filesDir,\n arweaveDomain: arweaveDomain || ARWEAVE_HOST,\n })\n }\n\n _validateInput().then(() => {\n return\n })\n },\n)\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { isBrowser } from '@/helpers/environment'\nimport { InternalMachineContext } from '@/types'\nimport { FromCallbackInput } from '@/types'\nimport { EventObject, fromCallback } from 'xstate'\n\n\nexport const prepareDb = fromCallback<\n EventObject,\n FromCallbackInput<InternalMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { filesDir } = context\n\n if (!filesDir) {\n throw new Error('filesDir is required')\n }\n\n const _prepareDb = async (): Promise<void> => {\n\n if (isBrowser()) {\n await import('@/browser/db/Db')\n }\n\n if (!isBrowser()) {\n await import('@/node/db/Db')\n }\n\n const appDb = await BaseDb.prepareDb(filesDir)\n if (appDb) {\n sendBack({ type: 'prepareDbSuccess'})\n }\n\n }\n\n _prepareDb().then(() => {\n return\n })\n\n})\n","import path from 'path'\nimport { Endpoints } from '@/types'\nimport debug from 'debug'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nconst logger = debug('seedSdk:services:internal:helpers')\n\n/**\n * Recursively create directories if they don't exist.\n * @param {string} dirPath - The directory path to create.\n */\nexport const createDirectories = async (dirPath: string) => {\n const dirPathExists = await BaseFileManager.pathExists(dirPath)\n if (dirPathExists) {\n return\n }\n\n const parentDir = path.dirname(dirPath)\n let parentDirExists = await BaseFileManager.pathExists(parentDir)\n if (!parentDirExists) {\n await createDirectories(parentDir)\n }\n\n parentDirExists = await BaseFileManager.pathExists(parentDir)\n if (parentDirExists) {\n await BaseFileManager.createDirIfNotExists(dirPath)\n }\n}\n\n// export const downloadFile = async (url: string, localFilePath: string) => {\n// try {\n// const response = await fetch(url)\n// const fileData = await response.text().catch((error) => {\n// console.error(`Failed to parse text from ${url}:`, error)\n// })\n// if (!fileData) {\n// console.error(`No file data from ${url}`)\n// return\n// }\n// const localDirPath = path.dirname(localFilePath)\n\n// if (busy) {\n// return\n// }\n\n// busy = true\n\n// await createDirectories(localDirPath)\n\n// const filename = path.basename(localFilePath)\n\n// const regex = /(\\d+)[\\w_]+\\.(sql|json)$/\n\n// const match = filename.match(regex)\n\n// let migrationNumber\n\n// if (match && match.length > 1) {\n// migrationNumber = match[1]\n// }\n\n// if (migrationNumber) {\n// const filesInDir = await fs.promises.readdir(localDirPath)\n// for (const file of filesInDir) {\n// if (file === filename) {\n// continue\n// }\n// const innerMatch = file.match(regex)\n// let existingFileMigrationNumber\n// if (innerMatch && innerMatch.length > 1) {\n// existingFileMigrationNumber = innerMatch[1]\n// }\n// if (\n// migrationNumber &&\n// existingFileMigrationNumber &&\n// existingFileMigrationNumber === migrationNumber\n// ) {\n// await fs.promises.unlink(path.join(localDirPath, file))\n// }\n// }\n// }\n\n// try {\n\n// await fs.promises.writeFile(localFilePath, fileData)\n// logger(`[downloadFile] Wrote file async to ${localFilePath}`)\n// } catch (error) {\n// fs.writeFileSync(localFilePath, fileData)\n// logger(`[downloadFile] Wrote file sync to ${localFilePath}`)\n// }\n// } catch (error) {\n// logger(`[Error] Failed to download file from ${url}:`, error)\n// }\n\n// busy = false\n// }\n\ntype DownloadFunction = (fileUrl: string) => Promise<void>;\n\nclass FileDownloadManager {\n private filesToDownload: Map<string, number>;\n private maxRetries: number;\n private isDownloading: boolean = false;\n\n constructor(fileUrls: string[], maxRetries: number) {\n this.filesToDownload = new Map(fileUrls.map(url => [url, 0]));\n this.maxRetries = maxRetries;\n }\n\n async downloadFile(url: string, localFilePath: string): Promise<void> {\n const response = await fetch(url)\n const fileData = await response.text().catch((error) => {\n console.error(`Failed to parse text from ${url}:`, error)\n })\n if (!fileData) {\n console.error(`No file data from ${url}`)\n return\n }\n const localDirPath = path.dirname(localFilePath)\n \n await createDirectories(localDirPath)\n \n const filename = path.basename(localFilePath)\n \n const regex = /(\\d+)[\\w_]+\\.(sql|json)$/\n \n const match = filename.match(regex)\n \n let migrationNumber\n \n if (match && match.length > 1) {\n migrationNumber = match[1]\n }\n \n if (migrationNumber) {\n const fs = await BaseFileManager.getFs()\n const filesInDir = await fs.promises.readdir(localDirPath)\n for (const file of filesInDir) {\n if (file === filename) {\n continue\n }\n const innerMatch = file.match(regex)\n let existingFileMigrationNumber\n if (innerMatch && innerMatch.length > 1) {\n existingFileMigrationNumber = innerMatch[1]\n }\n if (\n migrationNumber &&\n existingFileMigrationNumber &&\n existingFileMigrationNumber === migrationNumber\n ) {\n await fs.promises.unlink(path.join(localDirPath, file))\n }\n }\n }\n \n try {\n const fs = await BaseFileManager.getFs()\n await fs.promises.writeFile(localFilePath, fileData)\n logger(`[downloadFile] Wrote file async to ${localFilePath}`)\n } catch (error) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(localFilePath, fileData)\n logger(`[downloadFile] Wrote file sync to ${localFilePath}`)\n }\n \n }\n\n async start(): Promise<void> {\n if (this.isDownloading) {\n console.warn(\"Download process is already running.\");\n return;\n }\n\n this.isDownloading = true;\n\n for (const [fileUrl, attempts] of this.filesToDownload.entries()) {\n let success = false;\n\n while (attempts < this.maxRetries) {\n try {\n console.log(`Starting download: ${fileUrl}`);\n await this.downloadFile(fileUrl, fileUrl);\n console.log(`Download successful: ${fileUrl}`);\n this.filesToDownload.delete(fileUrl);\n success = true;\n break; // Move to next file\n } catch (error) {\n console.error(`Error downloading ${fileUrl}:`, error);\n this.filesToDownload.set(fileUrl, attempts + 1);\n }\n }\n\n if (!success) {\n console.error(`Failed to download after ${this.maxRetries} attempts: ${fileUrl}`);\n }\n }\n\n this.isDownloading = false;\n console.log(\"All downloads completed.\");\n }\n\n addFile(fileUrl: string): void {\n if (!this.filesToDownload.has(fileUrl)) {\n this.filesToDownload.set(fileUrl, 0);\n console.log(`Added file to download queue: ${fileUrl}`);\n } else {\n console.warn(`File already in queue: ${fileUrl}`);\n }\n }\n\n getPendingFiles(): string[] {\n return Array.from(this.filesToDownload.keys());\n }\n\n clear(): void {\n this.filesToDownload.clear();\n console.log(\"Cleared all files from the download queue.\");\n }\n}\n\n\nexport const fetchDirectory = async (url: string) => {\n const response = await fetch(url)\n return response.json()\n}\n\n// export const fetchFilesRecursively = async (\n// url: string,\n// localPath: string,\n// fileList: string[],\n// ) => {\n// for (const file of fileList) {\n// try {\n// const fileUrl = `${url}/${file}`\n// const fileLocalPath = path.join(localPath, file)\n\n// // logger(`[fetchFilesRecursively] fileUrl: ${fileUrl}`)\n// // logger(`[fetchFilesRecursively] fileLocalPath: ${fileLocalPath}`)\n\n// await downloadFile(fileUrl, fileLocalPath)\n// } catch (error) {\n// console.error(`Failed to fetch files from ${url}:`, error)\n// }\n// }\n// }\n\nexport const confirmFilesExist = async (filePaths: string[]) => {\n let everythingDownloaded = false\n\n for (const filePath of filePaths) {\n const fs = await BaseFileManager.getFs()\n everythingDownloaded = await fs.promises.exists(filePath)\n }\n\n if (!everythingDownloaded) {\n setTimeout(async () => {\n await confirmFilesExist(filePaths)\n }, 500)\n }\n}\n\nconst filesToExclude = ['.DS_Store']\n\nexport const syncDbFiles = async ({ filePaths, files }: Endpoints) => {\n let fileList = await fetchDirectory(filePaths)\n fileList = fileList.filter((file: string) => !filesToExclude.includes(file))\n fileList = fileList.map((file: string) => `${files}/${file}`)\n const downloadManager = new FileDownloadManager(fileList, 5)\n await downloadManager.start()\n // await fetchFilesRecursively(files, BROWSER_FS_TOP_DIR, fileList)\n await confirmFilesExist(fileList)\n logger('[syncDbFiles] Files synced!')\n}\n","import { graphql } from '@/graphql/gql'\n\nexport const GET_FILES_METADATA = graphql(/* GraphQL */ `\n query GetFilesMetadata($where: AttestationWhereInput!) {\n filesMetadata: attestations(\n where: $where\n orderBy: [{ timeCreated: desc }]\n ) {\n ...attestationFields\n }\n }\n`)\n\nexport const GET_ARWEAVE_TRANSACTIONS = graphql(/* GraphQL */ `\n query GetArweaveTransactions(\n $owners: [String!]\n $first: Int\n $after: String\n ) {\n transactions(owners: $owners, first: $first, after: $after) {\n edges {\n cursor\n node {\n id\n anchor\n signature\n block {\n id\n height\n }\n data {\n size\n type\n }\n tags {\n name\n value\n }\n }\n }\n pageInfo {\n hasNextPage\n }\n }\n }\n`)\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { and, eq, SQL } from 'drizzle-orm'\nimport { metadata, MetadataType } from '@/seedSchema'\n\ntype GetMetadataProps =\n | {\n storageTransactionId?: string\n }\n | undefined\n\ntype GetMetadata = (\n props: GetMetadataProps,\n) => Promise<MetadataType | undefined>\n\nexport const getMetadata: GetMetadata = async (props) => {\n const appDb = BaseDb.getAppDb()\n\n let storageTransactionId: string | undefined\n if (props) {\n storageTransactionId = props.storageTransactionId\n }\n\n const whereClauses: SQL[] = []\n\n if (storageTransactionId) {\n whereClauses.push(eq(metadata.propertyName, 'storageTransactionId'))\n whereClauses.push(eq(metadata.propertyValue, storageTransactionId))\n }\n\n const metadataRows = await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n\n if (!metadataRows || metadataRows.length === 0) {\n return\n }\n\n return metadataRows[0]\n}\n","import { metadata, MetadataType } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { eq } from 'drizzle-orm'\n\nexport const saveMetadata = async (\n metadataRecord: Partial<MetadataType>,\n metadataValues: Partial<MetadataType>,\n) => {\n const appDb = BaseDb.getAppDb()\n\n await appDb\n .update(metadata)\n .set({\n ...metadataValues,\n updatedAt: Date.now(),\n })\n .where(eq(metadata.localId, metadataRecord.localId))\n}\n","import { graphql } from '@/graphql/gql'\nimport { TypedDocumentNode } from '@graphql-typed-document-node/core'\nimport { Tag } from '@/graphql/gql/graphql'\n\nexport const GET_TRANSACTION_TAGS = graphql(/* GraphQL */ `\n query GetTransactionTags($transactionId: ID!) {\n tags: transaction(id: $transactionId) {\n id\n tags {\n name\n value\n }\n }\n }\n`) as TypedDocumentNode<{ tags: Tag[] }>\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { appState } from '@/seedSchema'\n\nexport const saveAppState = async (key: string, value: string) => {\n const appDb = BaseDb.getAppDb()\n\n await appDb\n .insert(appState)\n .values({\n key,\n value,\n })\n .onConflictDoUpdate({\n target: appState.key,\n set: {\n value,\n },\n })\n}\n","import { ARWEAVE_HOST } from '@/services/internal/constants'\nimport { BaseArweaveClient } from './BaseArweaveClient'\nimport Arweave from 'arweave'\nimport { isBrowser } from '../environment'\n\nlet ArweaveClient: typeof BaseArweaveClient | undefined\n\nexport const initArweaveClient = async () => {\n if (isBrowser()) {\n ArweaveClient = (await import('../../browser/helpers/ArweaveClient')).ArweaveClient\n }\n\n if (!isBrowser()) {\n ArweaveClient = (await import('../../node/helpers/ArweaveClient')).ArweaveClient\n }\n}\n\n\nlet domain = 'arweave.net'\n\nexport const getArweave = (): Arweave | undefined => {\n if (\n typeof window === 'undefined' ||\n !Arweave ||\n (!Object.keys(Arweave).includes('init') &&\n !Object.keys(Arweave).includes('default'))\n ) {\n return\n }\n\n if (process.env.NODE_ENV === 'production') {\n if (Object.keys(Arweave).includes('default')) {\n return Arweave.default.init({\n host: ARWEAVE_HOST,\n protocol: 'https',\n })\n }\n\n return Arweave.init({\n host: ARWEAVE_HOST,\n protocol: 'https',\n })\n }\n\n // return Arweave.init({\n // host : 'localhost',\n // port : 1984,\n // protocol : 'http',\n // },)\n\n if (Object.keys(Arweave).includes('default')) {\n return Arweave.default.init({\n host: domain,\n protocol: 'https',\n })\n }\n\n return Arweave.init({\n host: domain,\n protocol: 'https',\n })\n}\n\nexport const setArweaveDomain = (newDomain: string): void => {\n domain = newDomain\n}\n\nexport { ArweaveClient }","import { syncDbFiles } from '@/services/internal/helpers'\nimport { eventEmitter } from '@/eventBus'\nimport { ARWEAVE_HOST } from '@/services/internal/constants'\nimport { appState } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { getAddressesFromDb } from '@/helpers/db'\nimport {\n BaseFileManager,\n} from '@/helpers'\nimport { GET_FILES_METADATA } from '@/schema/file/queries'\nimport debug from 'debug'\nimport { getGlobalService } from '@/services/global/globalMachine'\nimport { waitFor } from 'xstate'\nimport { getMetadata } from '@/db/read/getMetadata'\nimport { saveMetadata } from '@/db/write/saveMetadata'\nimport { GET_TRANSACTION_TAGS } from '@/helpers/ArweaveClient/queries'\nimport { saveAppState } from '@/db/write/saveAppState'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { BaseEasClient, BaseQueryClient, BaseArweaveClient } from '@/helpers'\nimport { getArweave } from '@/helpers/ArweaveClient'\nimport { isBrowser } from '@/helpers/environment'\n\n\nconst logger = debug('seedSdk:files:download')\n\n\nexport const downloadAllFilesRequestHandler = async ({\n endpoints,\n eventId,\n}) => {\n\n if (!isBrowser()) {\n return\n }\n\n await syncDbFiles(endpoints)\n\n eventEmitter.emit('fs.downloadAll.success', { eventId })\n eventEmitter.emit('fs.downloadAllBinary.request', { endpoints })\n}\n\nexport const downloadAllFilesBinaryRequestHandler = async () => {\n let addresses: string[] | undefined\n\n if (BaseDb.isAppDbReady()) {\n addresses = await getAddressesFromDb()\n }\n\n if (!BaseDb.isAppDbReady()) {\n const globalService = getGlobalService()\n const internalService = globalService.getSnapshot().context.internalService\n if (internalService) {\n await waitFor(internalService, (snapshot) => {\n return snapshot.value === 'ready'\n })\n addresses = await getAddressesFromDb()\n }\n }\n\n if (!addresses || addresses.length === 0) {\n return\n }\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { filesMetadata } = await queryClient.fetchQuery({\n queryKey: ['getFilesMetadata', ...addresses],\n queryFn: async () =>\n easClient.request(GET_FILES_METADATA, {\n where: {\n attester: {\n in: addresses,\n },\n schema: {\n is: {\n id: {\n equals:\n '0x55fdefb36fcbbaebeb7d6b41dc3a1a9666e4e42154267c889de064faa7ede517',\n },\n },\n },\n },\n }),\n })\n\n await BaseFileManager.createDirIfNotExists('/files')\n await BaseFileManager.createDirIfNotExists('/files/html')\n await BaseFileManager.createDirIfNotExists('/files/json')\n await BaseFileManager.createDirIfNotExists('/files/images')\n\n const appDb = BaseDb.getAppDb()\n\n if (!appDb) {\n console.warn('[fetchAll/actors] [fetchAllBinaryData] seedDb not available')\n return []\n }\n\n const excludedTransactionsQuery = await appDb\n .select()\n .from(appState)\n .where(eq(appState.key, 'excludedTransactions'))\n\n let excludedTransactions = new Set<string>()\n\n if (excludedTransactionsQuery && excludedTransactionsQuery.length === 1) {\n const valueString = excludedTransactionsQuery[0].value\n if (valueString) {\n const excludedTransactionsArray = JSON.parse(valueString)\n excludedTransactions = new Set(excludedTransactionsArray)\n }\n }\n\n const transactionIds = []\n\n for (const fileMetadata of filesMetadata) {\n const json = JSON.parse(fileMetadata.decodedDataJson)\n const transactionId = json[0].value.value\n if (excludedTransactions.has(transactionId)) {\n continue\n }\n transactionIds.push(transactionId)\n }\n\n const arweave = getArweave()\n\n if (!arweave) {\n console.warn(\n '[fetchAll/actors] [fetchAllBinaryData] arweave not available',\n )\n return []\n }\n\n const arweaveClient = BaseArweaveClient.getArweaveClient()\n\n const transactionIdsToDownload = []\n\n for (const transactionId of transactionIds) {\n\n try {\n const res = await fetch(\n `https://${ARWEAVE_HOST}/tx/${transactionId}/status`,\n )\n\n if (res.status !== 200) {\n logger(\n `[fetchAll/actors] [fetchAllBinaryData] error fetching transaction data for ${transactionId}`,\n )\n\n excludedTransactions.add(transactionId)\n\n await saveAppState(\n 'excludedTransactions',\n JSON.stringify(Array.from(excludedTransactions)),\n )\n\n continue\n }\n \n const { tags: tagsResult } = await queryClient.fetchQuery({\n queryKey: ['getTransactionTags', transactionId],\n queryFn: async () =>\n arweaveClient.request(GET_TRANSACTION_TAGS, {\n transactionId,\n }),\n })\n\n const tags = tagsResult.tags || []\n\n if (tagsResult.tags && tagsResult.tags.length > 0) {\n for (const { name, value } of tags) {\n if (name === 'Content-SHA-256') {\n const metadataRecord = await getMetadata({\n storageTransactionId: transactionId,\n })\n\n if (metadataRecord) {\n await saveMetadata(metadataRecord, {\n contentHash: value,\n })\n }\n }\n }\n }\n\n transactionIdsToDownload.push(transactionId)\n\n \n\n } catch (error) {\n logger(error)\n }\n }\n\n console.log('[download] Calling downloadAllFiles with transactionIdsToDownload', transactionIdsToDownload)\n\n await BaseFileManager.downloadAllFiles({\n transactionIds: transactionIdsToDownload,\n arweaveHost: ARWEAVE_HOST,\n excludedTransactions,\n })\n\n await BaseFileManager.resizeAllImages({\n width: 480,\n height: 480,\n })\n}\n","import { eventEmitter } from '@/eventBus'\nimport { downloadAllFilesBinaryRequestHandler, downloadAllFilesRequestHandler } from './download'\nimport { BaseFileManager } from '@/helpers'\nimport { isBrowser } from '@/helpers/environment'\n\n\nlet isInitialized = false\n\n\nconst fsInitHandler = async ( _ ) => {\n if ( isInitialized ) {\n eventEmitter.emit('fs.init.response', { success: true })\n return\n }\n\n try {\n\n if (isBrowser()) {\n await import('@/browser/helpers/FileManager')\n }\n\n if (!isBrowser()) {\n await import('@/node/helpers/FileManager')\n }\n\n await BaseFileManager.initializeFileSystem()\n\n isInitialized = true\n\n eventEmitter.emit('fs.init.response', { success: true })\n } catch ( e ) {\n if ( !isInitialized ) {\n console.error('[fs.init] error initializing fs', e)\n eventEmitter.emit('fs.init.response', {\n success: false,\n error: e,\n })\n }\n // TODO: We can ignore this for now but should figure out if this is being called excessively\n }\n}\n\nlet areReady = false\n\nexport const setupFsListeners = () => {\n eventEmitter.addListener(\n 'fs.downloadAll.request',\n downloadAllFilesRequestHandler,\n )\n eventEmitter.addListener(\n 'fs.downloadAllBinary.request',\n downloadAllFilesBinaryRequestHandler,\n )\n eventEmitter.addListener('fs.init', fsInitHandler)\n areReady = true\n}\n\nexport const areFsListenersReady = () => {\n return areReady\n}\n\nexport const isFsInitialized = () => {\n return isInitialized\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { areFsListenersReady, isFsInitialized } from '@/events/files'\nimport { waitForEvent } from '@/events'\nimport {\n BROWSER_FS_TOP_DIR,\n DB_WAITING_FOR_FILES_RECEIVED,\n INTERNAL_CONFIGURING_FS_SUCCESS,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { FromCallbackInput, InternalMachineContext } from '@/types'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nconst logger = debug('seedSdk:internal:actors:configureFs')\n\nexport const configureFs = fromCallback<\n EventObject,\n FromCallbackInput<InternalMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { endpoints, appDbService, filesDir, } = context\n\n logger('[internal/actors] [configureFs] Configuring FS')\n\n const _configureFs = async (): Promise<boolean> => {\n logger('[internal/actors] [configureFs] calling _configureFs')\n\n logger(\n '[internal/actors] [configureFs] areFsListenersReady:',\n areFsListenersReady(),\n )\n logger(\n '[internal/actors] [configureFs] isFsInitialized:',\n isFsInitialized(),\n )\n\n if (isBrowser()) {\n await waitForEvent({\n req: {\n eventLabel: 'fs.downloadAll.request',\n data: { endpoints },\n },\n res: {\n eventLabel: 'fs.downloadAll.success',\n },\n })\n }\n\n\n const journalPath = `${filesDir || BROWSER_FS_TOP_DIR}/db/meta/_journal.json`\n\n\n let journalExists = await BaseFileManager.pathExists(journalPath)\n\n if (!journalExists) {\n const fs = await BaseFileManager.getFs()\n journalExists = fs.existsSync(journalPath)\n }\n\n if (journalExists) {\n appDbService.send({ type: DB_WAITING_FOR_FILES_RECEIVED })\n logger('[internal/actors] [configureFs] fs configured!')\n return true\n }\n\n sendBack({ type: 'shouldWaitForFiles' })\n \n\n return false\n\n // return new Promise<void>((resolve) => {\n // const interval = setInterval(() => {\n // journalExistsSync = fs.existsSync(journalPath)\n // logger(\n // '[internal/actors] [configureFs] journalExistsSync:',\n // journalExistsSync,\n // )\n // if (journalExistsSync) {\n // service.send({ type: DB_WAITING_FOR_FILES_RECEIVED })\n // clearInterval(interval)\n // resolve()\n // }\n // }, 200)\n // })\n\n }\n\n // Some of our dependencies use fs sync functions, which don't work with\n // OPFS. ZenFS creates an async cache of all files so that the sync functions\n // work, but we have to wait for it to be built. Otherwise things like\n // drizzleMigrate will fail since they can't see the migration files yet.\n _configureFs().then((fsConfigured) => {\n if (fsConfigured) {\n sendBack({ type: INTERNAL_CONFIGURING_FS_SUCCESS })\n }\n return\n })\n\n return () => { }\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { INTERNAL_SAVING_CONFIG_SUCCESS } from '@/services/internal/constants'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { FromCallbackInput, InternalMachineContext } from '@/types'\nimport { appState } from '@/seedSchema'\nimport debug from 'debug'\nimport { getTableColumns, sql } from 'drizzle-orm'\nimport { getTableConfig } from 'drizzle-orm/sqlite-core'\n\nconst logger = debug('seedSdk:services:internal:actors:saveConfig')\n\nexport const saveConfig = fromCallback<\n EventObject,\n FromCallbackInput<InternalMachineContext>\n>(({ sendBack, input: { context } }) => {\n\n const { endpoints, addresses, arweaveDomain } = context\n\n if (!endpoints) {\n throw new Error('saveConfig called with invalid endpoints')\n }\n\n const _saveConfig = async (): Promise<void> => {\n // logger('[sdk] [internal/actors] starting _saveConfig')\n const appDb = BaseDb.getAppDb()\n\n if (!appDb) {\n throw new Error('App DB not found')\n }\n const endpointsValueString = JSON.stringify(endpoints)\n const addressesValueString = JSON.stringify(addresses)\n\n const tableColumns = getTableColumns(appState)\n\n logger('tableColumns', tableColumns)\n\n const {\n columns,\n indexes,\n foreignKeys,\n checks,\n primaryKeys,\n name,\n } = getTableConfig(appState);\n\n logger('columns', columns)\n logger('indexes', indexes)\n logger('foreignKeys', foreignKeys)\n logger('checks', checks)\n logger('primaryKeys', primaryKeys)\n logger('name', name)\n\n logger('calling select on db')\n\n const queryResult = await appDb.select().from(appState)\n\n logger('queryResult', queryResult)\n\n // TODO: Figure out how to define on conflict with multiple rows added\n await appDb\n .insert(appState)\n .values({\n key: 'endpoints',\n value: endpointsValueString,\n })\n .onConflictDoUpdate({\n target: appState.key,\n set: {\n value: endpointsValueString,\n },\n })\n // logger('[sdk] [internal/actors] Saving addresses to db')\n await appDb\n .insert(appState)\n .values({\n key: 'addresses',\n value: addressesValueString,\n })\n .onConflictDoUpdate({\n target: appState.key,\n set: {\n value: addressesValueString,\n },\n })\n await appDb\n .insert(appState)\n .values({\n key: 'arweaveDomain',\n value: arweaveDomain || 'arweave.net',\n })\n .onConflictDoUpdate({\n target: appState.key,\n set: {\n value: arweaveDomain || 'arweave.net',\n },\n })\n logger('[sdk] [internal/actors] Should be done saving')\n }\n\n _saveConfig().then(() => {\n logger('[sdk] [internal/actors] Successfully saved config')\n return sendBack({ type: INTERNAL_SAVING_CONFIG_SUCCESS })\n })\n\n return () => { }\n})\n","import { EventObject, fromCallback, Subscription } from 'xstate'\nimport {\n DB_NAME_APP,\n DB_ON_SNAPSHOT,\n INTERNAL_LOADING_APP_DB_SUCCESS,\n} from '@/services/internal/constants'\nimport debug from 'debug'\nimport { FromCallbackInput, InternalMachineContext } from '@/types'\n\nconst logger = debug('seedSdk:services:internal:actors:loadAppDb')\n\nexport const loadAppDb = fromCallback<\n EventObject,\n FromCallbackInput<InternalMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { appDbService } = context\n\n let subscription: Subscription | undefined\n\n const _loadAppDb = async (): Promise<void> => {\n if (appDbService.getSnapshot().value === 'ready') {\n return\n }\n return new Promise((resolve) => {\n subscription = appDbService.subscribe((snapshot) => {\n if (snapshot.value === 'ready') {\n return resolve()\n }\n\n sendBack({ type: DB_ON_SNAPSHOT, dbName: DB_NAME_APP, snapshot })\n })\n })\n }\n\n _loadAppDb().then(() => {\n sendBack({ type: INTERNAL_LOADING_APP_DB_SUCCESS })\n })\n\n return () => {\n if (subscription) {\n subscription.unsubscribe()\n }\n }\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, InternalMachineContext } from '@/types'\nimport debug from 'debug'\nimport { isBrowser } from '@/helpers/environment'\nimport { BaseFileManager } from '@/helpers'\n\nconst logger = debug('seedSdk:services:internal:actors:waitForFiles')\n\nexport const waitForFiles = fromCallback<\n EventObject,\n FromCallbackInput<InternalMachineContext>\n>(({ sendBack, input: { context } }) => {\n\n if (!isBrowser()) {\n sendBack({ type: 'filesReceived' })\n return\n }\n\n const { endpoints } = context\n\n const filesDir = endpoints.files\n\n const _waitForFiles = async (): Promise<void> => {\n return new Promise((resolve) => {\n const interval = setInterval(async () => {\n const journalExists = await BaseFileManager.pathExists(\n `${filesDir}/db/meta/_journal.json`,\n )\n if (journalExists) {\n clearInterval(interval)\n resolve()\n }\n }, 1000)\n })\n }\n\n _waitForFiles().then(() => {\n sendBack({ type: 'filesReceived' })\n return\n })\n})\n","import { assign, setup } from 'xstate'\nimport { createBrowserInspector } from '@statelyai/inspect'\nimport {\n DB_NAME_APP,\n INTERNAL_CONFIGURING_FS_SUCCESS,\n INTERNAL_LOADING_APP_DB_SUCCESS,\n INTERNAL_SAVING_CONFIG_SUCCESS,\n INTERNAL_VALIDATING_INPUT_SUCCESS,\n InternalState,\n MachineIds,\n} from './constants'\nimport { dbMachine } from '@/services/db/dbMachine'\nimport debug from 'debug'\nimport { validateInput } from '@/services/internal/actors/validateInput'\nimport { prepareDb } from '@/services/internal/actors/prepareDb'\nimport { configureFs } from '@/services/internal/actors/configureFs'\nimport { saveConfig } from '@/services/internal/actors/saveConfig'\nimport { loadAppDb } from '@/services/internal/actors/loadAppDb'\nimport { InternalMachineContext } from '@/types'\nimport { waitForFiles } from './actors/waitForFiles'\n\nconst logger = debug('seedSdk:services:internal:machine')\n\nconst { inspect } = createBrowserInspector({\n autoStart: false,\n})\n\nconst {\n IDLE,\n VALIDATING_INPUT,\n SAVING_CONFIG,\n CONFIGURING_FS,\n LOADING_APP_DB,\n} = InternalState\n\n// Create the state machine\nexport const internalMachine = setup({\n types: {\n context: {} as Partial<InternalMachineContext>,\n input: {} as Partial<InternalMachineContext> | undefined,\n },\n actors: {\n prepareDb,\n validateInput,\n waitForFiles,\n configureFs,\n loadAppDb,\n saveConfig,\n },\n}).createMachine({\n id: MachineIds.INTERNAL,\n initial: IDLE,\n context: ({ input }) => {\n return {\n ...input,\n error: undefined,\n hasFiles: false,\n }\n },\n states: {\n [IDLE]: {\n on: {\n reValidate: VALIDATING_INPUT,\n init: {\n target: VALIDATING_INPUT,\n actions: [\n assign({\n appDbService: ({context, spawn }) => {\n return spawn(dbMachine, {\n input: {\n dbName: DB_NAME_APP,\n pathToDir: context?.filesDir,\n },\n })\n },\n }),\n ],\n },\n },\n meta: {\n displayText: 'Waiting for something to happen ...',\n percentComplete: 0,\n },\n },\n [VALIDATING_INPUT]: {\n on: {\n [INTERNAL_VALIDATING_INPUT_SUCCESS]: {\n target: 'preparingDb',\n actions: assign({\n endpoints: ({ event }) => event.endpoints,\n addresses: ({ event }) => event.addresses,\n filesDir: ({ event }) => event.filesDir,\n arweaveDomain: ({ event }) => event.arweaveDomain,\n }),\n },\n },\n invoke: {\n src: 'validateInput',\n input: ({ context, event }) => ({ context, event }),\n },\n meta: {\n displayText: 'Validating input',\n percentComplete: 20,\n },\n tags: ['loading'],\n },\n preparingDb: {\n on: {\n prepareDbSuccess: {\n target: CONFIGURING_FS,\n },\n },\n invoke: {\n src: 'prepareDb',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n waitingForFiles: {\n on: {\n filesReceived: {\n target: LOADING_APP_DB,\n },\n },\n invoke: {\n src: 'waitForFiles',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n [CONFIGURING_FS]: {\n on: {\n [INTERNAL_CONFIGURING_FS_SUCCESS]: {\n target: LOADING_APP_DB,\n actions: assign({ hasFiles: true }),\n },\n shouldWaitForFiles: {\n target: 'waitingForFiles',\n },\n },\n invoke: {\n src: 'configureFs',\n input: ({ context, event }) => ({ context, event }),\n },\n meta: {\n displayText: 'Downloading app files',\n percentComplete: 30,\n },\n tags: ['loading'],\n },\n [LOADING_APP_DB]: {\n on: {\n [INTERNAL_LOADING_APP_DB_SUCCESS]: {\n target: SAVING_CONFIG,\n actions: () => {\n logger('[sdk] [internal/index] App DB loaded!')\n },\n },\n },\n invoke: {\n src: 'loadAppDb',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n // Save developer's config to DB\n [SAVING_CONFIG]: {\n on: {\n [INTERNAL_SAVING_CONFIG_SUCCESS]: 'ready',\n },\n invoke: {\n src: 'saveConfig',\n input: ({ context, event }) => ({ context, event }),\n },\n meta: {\n displayText: 'Saving configuration',\n percentComplete: 80,\n },\n tags: ['loading'],\n },\n ready: {\n entry: () => {\n console.log('[sdk] [internal/index] Ready!')\n logger('[sdk] [internal/index] Ready!')\n },\n meta: {\n displayText: \"Crossing the t's ...\",\n percentComplete: 90,\n },\n },\n error: {\n on: {\n retry: {\n target: CONFIGURING_FS,\n actions: assign({ error: undefined }),\n },\n },\n entry: () => {\n logger('[sdk] [internal/index] Error!')\n },\n meta: {\n displayText: 'Whoops! Something went wrong.',\n percentComplete: null,\n },\n tags: ['error'],\n },\n },\n})\n\n// const internalService = createActor(internalMachine, {\n// input: {},\n// inspect: (inspEvent) => {\n// if (inspEvent.type === '@xstate.snapshot') {\n// if (\n// inspEvent.event &&\n// inspEvent.event.snapshot &&\n// inspEvent.event.snapshot.value\n// ) {\n// logger(\n// `[internalService] ${inspEvent.event.snapshot.value}`,\n// inspEvent,\n// )\n// return\n// }\n//\n// if (inspEvent.snapshot && inspEvent.snapshot.value) {\n// logger(`[internalService] ${inspEvent.snapshot.value}`, inspEvent)\n// return\n// }\n//\n// // logger(`[internalService] Uncaught event`, inspEvent)\n// }\n// },\n// })\n\n// internalService.subscribe((snapshot) => {\n// globalService.send({ type: INTERNAL_SERVICE_SNAPSHOT, snapshot })\n// })\n//\n// internalService.on(CHILD_SNAPSHOT, (emitted) => {\n// globalService.send({ ...emitted })\n// })\n\n// internalService.start()\n","import { EventObject, fromCallback } from 'xstate'\nimport { GET_SCHEMAS } from '@/Item/queries'\nimport pluralize from 'pluralize'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\nimport { toSnakeCase } from '@/helpers'\nimport {\n models as modelsTable,\n modelUids,\n properties,\n} from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\nimport { SchemaWhereInput } from '@/graphql/gql/graphql'\nimport { INTERNAL_DATA_TYPES } from '@/helpers/constants'\nimport { getAddressesFromDb } from '@/helpers/db'\nimport { eventEmitter } from '@/eventBus'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\nimport { AllItemsMachineContext, FromCallbackInput } from '@/types'\n\n\ntype Times = {\n initialize?: {\n start: number | null\n end: number | null\n }\n fetchDbData?: {\n start: number | null\n end: number | null\n }\n fetchSeeds?: {\n start: number | null\n end: number | null\n }\n fetchVersions?: {\n start: number | null\n end: number | null\n }\n fetchRelatedItems?: {\n start: number | null\n end: number | null\n }\n processItems?: {\n start: number | null\n end: number | null\n }\n}\n\ntype InternalDataType = keyof typeof INTERNAL_DATA_TYPES;\n\nexport const initialize = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { modelName, modelAddedToDb, ModelClass, times } = context\n\n const newTimes: Times = {\n initialize: {\n start: Date.now(),\n end: null,\n },\n }\n\n let modelNameLowercase: string | undefined\n let modelNamePlural: string | undefined\n let queryVariables: Record<string, unknown> | undefined\n let appDb\n\n const _initialize = async () => {\n appDb = BaseDb.getAppDb()\n\n // const rows = await getItemsDataFromDb(modelName)\n //\n // if (rows && rows.length > 0) {\n // for (const itemData of rows) {\n // const {\n // versionLocalId,\n // versionUid,\n // createdAt,\n // seedLocalId,\n // seedUid,\n // attestationCreatedAt,\n // } = itemData\n //\n // eventEmitter.emit('item.create.request', {\n // itemData: {\n // versionLocalId,\n // versionUid,\n // createdAt,\n // seedLocalId,\n // seedUid,\n // attestationCreatedAt,\n // },\n // ModelClass,\n // })\n // }\n // }\n\n modelNameLowercase = modelName.toLowerCase()\n modelNamePlural = pluralize(modelNameLowercase!)\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const modelSchemas = await queryClient.fetchQuery({\n queryKey: [`getSchemas${modelName}`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n schema: {\n equals: `bytes32 ${toSnakeCase(modelName)}`,\n },\n },\n }),\n })\n\n if (\n !modelSchemas ||\n !modelSchemas.schemas ||\n modelSchemas.schemas.length === 0\n ) {\n throw new Error(`No schema found for ${modelName}`)\n }\n\n const modelSchema = modelSchemas.schemas[0]\n\n if (!modelSchema.id) {\n throw new Error(\n `No schema ID found for schema ${JSON.stringify(modelSchema)}`,\n )\n }\n\n const foundModels = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.name, modelName))\n .limit(1)\n\n const foundModel = foundModels[0]\n\n if (!foundModel) {\n sendBack({ type: 'modelNotFound', modelName })\n return\n }\n\n await appDb\n .insert(modelUids)\n .values({\n modelId: foundModel.id,\n uid: modelSchema.id,\n })\n .onConflictDoNothing()\n\n const addresses = await getAddressesFromDb()\n\n queryVariables = {\n where: {\n attester: {\n in: addresses,\n },\n schemaId: {\n equals: modelSchema.id,\n },\n decodedDataJson: {\n contains: modelSchema.id,\n },\n },\n }\n }\n\n const initializeHandler = () => {\n _initialize().then(() => {\n sendBack({\n type: 'initializeSuccess',\n modelName,\n modelNameLowercase,\n modelNamePlural,\n queryVariables,\n })\n newTimes!.initialize!.end = Date.now()\n sendBack({ type: 'updateTimes', times: newTimes })\n })\n }\n\n if (modelAddedToDb) {\n initializeHandler()\n }\n\n const dbReadyHandler = (event) => {\n initializeHandler()\n }\n\n eventEmitter.addListener('allDbsLoaded', dbReadyHandler)\n\n return () => {\n eventEmitter.removeListener('allDbsLoaded', dbReadyHandler)\n }\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { AllItemsMachineContext, FromCallbackInput } from '@/types'\n\nexport const fetchDbData = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(\n ({ sendBack, input: { context } }) => {\n const { modelNamePlural, times } = context\n\n const _fetchDbData = async (): Promise<void> => { }\n\n _fetchDbData().then(() => {\n sendBack({ type: 'fetchDbDataSuccess' })\n })\n\n return () => { }\n },\n)\n","import { EventObject, fromCallback } from 'xstate'\nimport { GET_SEEDS } from '@/Item/queries'\nimport { AllItemsMachineContext, FromCallbackInput } from '@/types'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\nimport debug from 'debug'\n\n\nconst logger = debug('seedSdk:allItemsActors:fetchSeeds')\n\nexport const fetchSeeds = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(\n ({ sendBack, input: { context } }) => {\n const { queryVariables, modelName } = context\n\n if (!queryVariables) {\n throw new Error('No queryVariables found')\n }\n\n let itemSeeds: Attestation[] | undefined\n\n const _fetchSeeds = async () => {\n const queryKey = [`getSeeds${modelName}`]\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const results = await queryClient.fetchQuery({\n queryKey,\n queryFn: async () => easClient.request(GET_SEEDS, queryVariables),\n })\n\n itemSeeds = results.itemSeeds\n }\n\n _fetchSeeds().then(() => {\n sendBack({ type: 'fetchSeedsSuccess', itemSeeds })\n })\n\n return () => { }\n },\n)\n","import { EventObject, fromCallback } from 'xstate'\nimport { GET_VERSIONS } from '@/Item/queries'\nimport { AllItemsMachineContext, FromCallbackInput } from '@/types'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\n\n\nexport const fetchVersions = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(\n ({ sendBack, input: { context } }) => {\n const { itemSeeds, modelName } = context\n\n if (!itemSeeds) {\n throw new Error('No queryVariables found')\n }\n\n let itemVersions: Attestation[] | undefined\n\n const _fetchVersions = async () => {\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const seedIds = itemSeeds.map((seed) => seed.id)\n\n const results = await queryClient.fetchQuery({\n queryKey: [`getVersions${modelName}`],\n queryFn: async () =>\n easClient.request(GET_VERSIONS, {\n where: {\n refUID: {\n in: seedIds,\n },\n },\n }),\n })\n\n itemVersions = results.itemVersions\n }\n\n _fetchVersions().then(() => {\n sendBack({ type: 'fetchVersionsSuccess', itemVersions })\n })\n\n return () => { }\n },\n)\n","import { EventObject, fromCallback } from 'xstate'\nimport {\n GET_ALL_PROPERTIES_FOR_ALL_VERSIONS,\n GET_SEED_IDS,\n GET_VERSIONS,\n} from '@/Item/queries'\nimport {\n models as modelsTable,\n modelUids,\n PropertyType,\n} from '@/seedSchema'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport {\n AllItemsMachineContext,\n FromCallbackInput,\n ModelClassType,\n} from '@/types'\nimport { getAddressesFromDb } from '@/helpers/db'\nimport { eq } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\n\n\nexport const fetchRelatedItems = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { ModelClass, modelName } = context\n\n const appDb = BaseDb.getAppDb()\n\n const relatedProperties = new Map<string, PropertyType>()\n const relatedVersionsBySeedUid = new Map<string, Attestation[]>()\n const schemaUidsByModelName = new Map<string, string>()\n const mostRecentVersionsBySeedUid = new Map<string, Attestation>()\n const mostRecentPropertiesBySeedUid = new Map<string, Attestation[]>()\n const seedUidsByMostRecentVersionUid = new Map<string, string>()\n\n const _fetchRelatedItems = async () => {\n // Get related properties\n for (const [propertyName, propertyDef] of Object.entries(\n (ModelClass as ModelClassType).schema,\n )) {\n if (propertyDef && propertyDef.ref && propertyDef.refModelId) {\n relatedProperties.set(propertyName, propertyDef)\n }\n }\n\n const addresses = await getAddressesFromDb(appDb)\n\n // Get the models they point to from sdkConfigDb\n for (const [propertyName, propertyDef] of relatedProperties.entries()) {\n const relatedModelQuery = await appDb\n .select({\n id: modelsTable.id,\n name: modelsTable.name,\n uid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelsTable.id, modelUids.modelId))\n .where(eq(modelsTable.id, propertyDef.refModelId))\n .limit(1)\n\n if (relatedModelQuery && relatedModelQuery.length > 0) {\n const relatedModel = relatedModelQuery[0]\n const relatedModelUid = relatedModel.uid\n // Exclude the current model's schemaUid since we already have its versions\n if (relatedModelUid && relatedModelUid !== ModelClass.schemaUid) {\n schemaUidsByModelName.set(relatedModel.name, relatedModelUid)\n }\n }\n }\n\n const queryKey = [`getRelatedSeedIds${modelName}`]\n\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const { itemSeedIds: relatedSeedIdAttestations } =\n await queryClient.fetchQuery({\n queryKey,\n queryFn: async () =>\n easClient.request(GET_SEED_IDS, {\n where: {\n schema: {\n is: {\n id: {\n in: Array.from(schemaUidsByModelName.values()),\n },\n },\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n const relatedSeedIds = relatedSeedIdAttestations.map((seed) => seed.id)\n\n const { itemVersions: relatedVersions } = await queryClient.fetchQuery({\n queryKey: [`getRelatedVersions${modelName}`],\n queryFn: async () =>\n easClient.request(GET_VERSIONS, {\n where: {\n refUID: {\n in: relatedSeedIds,\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n // Index versions by seedUid\n for (const version of relatedVersions) {\n const existingVersionsForSeedUid =\n relatedVersionsBySeedUid.get(version.refUID) || []\n existingVersionsForSeedUid.push(version)\n relatedVersionsBySeedUid.set(version.refUID, existingVersionsForSeedUid)\n }\n\n // Sort the indexed versions by timeCreated and index the most recent\n for (const [\n seedUid,\n versionsForSeed,\n ] of relatedVersionsBySeedUid.entries()) {\n const versionsForSeedSorted = versionsForSeed.sort(\n (a: Attestation, b: Attestation) => {\n return a.timeCreated - b.timeCreated\n },\n )\n relatedVersionsBySeedUid.set(seedUid, versionsForSeedSorted)\n mostRecentVersionsBySeedUid.set(seedUid, versionsForSeedSorted[0])\n seedUidsByMostRecentVersionUid.set(versionsForSeedSorted[0].id, seedUid)\n }\n\n // Extract the ids of the most recent versions\n const mostRecentVersionIds = Array.from(\n mostRecentVersionsBySeedUid.values(),\n ).map((version) => version.id)\n\n const { allProperties } = await queryClient.fetchQuery({\n queryKey: [`getAllProperties${modelName}`],\n queryFn: async () =>\n easClient.request(GET_ALL_PROPERTIES_FOR_ALL_VERSIONS, {\n where: {\n refUID: {\n in: mostRecentVersionIds,\n },\n attester: {\n in: addresses,\n },\n },\n }),\n })\n\n for (const propertyAttestation of allProperties) {\n const seedUidForProperty = seedUidsByMostRecentVersionUid.get(\n propertyAttestation.refUID,\n )\n const existingPropertiesForSeedUid =\n mostRecentPropertiesBySeedUid.get(seedUidForProperty!) || []\n existingPropertiesForSeedUid.push(propertyAttestation)\n mostRecentPropertiesBySeedUid.set(\n seedUidForProperty!,\n existingPropertiesForSeedUid,\n )\n }\n }\n\n _fetchRelatedItems().then(() => {\n sendBack({\n type: 'fetchRelatedItemsSuccess',\n mostRecentPropertiesBySeedUid,\n relatedVersionsBySeedUid,\n relatedProperties,\n schemaUidsByModelName,\n })\n return\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { AllItemsMachineContext, FromCallbackInput } from '@/types'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport { eventEmitter } from '@/eventBus'\n\nexport const processItems = fromCallback<\n EventObject,\n FromCallbackInput<AllItemsMachineContext>\n>(\n ({ sendBack, input: { context } }) => {\n const {\n itemVersions,\n itemSeeds,\n ModelClass,\n schemaUidsByModelName,\n mostRecentPropertiesBySeedUid,\n times,\n // relatedProperties,\n // relatedVersionsBySchemaUid,\n // relatedVersionsBySeedUid,\n } = context\n\n if (!itemVersions || !itemSeeds) {\n throw new Error('No itemVersions or itemSeeds found')\n }\n\n const _processItems = async () => {\n // For each itemSeed, find all the Versions\n for (const itemSeed of itemSeeds.slice(8, 16)) {\n const versionsForSeed = itemVersions.filter(\n (version) => version.refUID === itemSeed.id,\n )\n\n if (versionsForSeed.length === 0) {\n continue\n }\n\n // Find the most recent Version for each Seed\n const recentVersionsMap: { [seedId: string]: Attestation } = {}\n versionsForSeed.forEach((version: Attestation) => {\n const existingVersion = recentVersionsMap[version.refUID]\n if (\n !existingVersion ||\n new Date(version.timeCreated * 1000) >\n new Date(existingVersion.timeCreated * 1000)\n ) {\n recentVersionsMap[version.refUID] = version\n }\n })\n }\n }\n\n _processItems().then(() => {\n sendBack({ type: 'processItemsSuccess' })\n const modelName = ModelClass.originalConstructor.name\n eventEmitter.emit('item.requestAll', {\n modelName,\n })\n eventEmitter.emit('service.save', {\n modelName,\n })\n sendBack({\n type: 'updateTimes',\n times: {\n ...times,\n processItems: {\n start: null,\n end: Date.now(),\n },\n },\n })\n })\n },\n)\n","import { assign, setup } from 'xstate'\nimport { MachineIds } from '@/services/internal/constants'\nimport { AllItemsMachineContext } from '@/types'\nimport { eventEmitter } from '@/eventBus'\nimport { initialize } from '../allItems/actors/initialize'\nimport { fetchDbData } from '../allItems/actors/fetchDbData'\nimport { fetchSeeds } from '../allItems/actors/fetchSeeds'\nimport { fetchVersions } from '../allItems/actors/fetchVersions'\nimport { fetchRelatedItems } from '../allItems/actors/fetchRelatedItems'\nimport { processItems } from '../allItems/actors/processItems'\n\n\nexport const itemMachineAll = setup({\n types: {\n context: {} as Partial<AllItemsMachineContext>,\n input: {} as Partial<AllItemsMachineContext> | undefined,\n },\n actors: {\n initialize,\n fetchDbData,\n fetchSeeds,\n fetchVersions,\n fetchRelatedItems,\n processItems,\n },\n}).createMachine({\n id: MachineIds.ALL_ITEMS,\n initial: 'uninitialized',\n context: ({ input }) => input as AllItemsMachineContext,\n on: {\n updateTimes: {\n actions: assign({\n times: ({ event }) => event.times,\n }),\n },\n },\n states: {\n idle: {\n entry: ({ self, context }) => {\n eventEmitter.emit('service.saveState.request', {\n state: self.getPersistedSnapshot(),\n serviceId: `${MachineIds.ALL_ITEMS}_${context.modelName}`,\n })\n },\n },\n uninitialized: {\n on: {\n modelsFound: {\n target: 'initializing',\n actions: assign({\n modelAddedToDb: true,\n }),\n },\n },\n },\n initializing: {\n on: {\n initializeSuccess: {\n target: 'fetchingSeeds',\n actions: assign({\n modelName: ({ event }) => event.modelName,\n modelNameLowercase: ({ event }) => event.modelNameLowercase,\n modelNamePlural: ({ event }) => event.modelNamePlural,\n queryVariables: ({ event }) => event.queryVariables,\n }),\n },\n modelsNotFound: 'idle',\n },\n invoke: {\n src: 'initialize',\n input: ({ context }) => ({ context }),\n },\n },\n fetchingSeeds: {\n on: {\n fetchSeedsSuccess: {\n target: 'fetchingVersions',\n actions: assign({\n itemSeeds: ({ event }) => event.itemSeeds,\n }),\n },\n },\n invoke: {\n src: 'fetchSeeds',\n input: ({ context }) => ({ context }),\n },\n },\n fetchingVersions: {\n on: {\n fetchVersionsSuccess: {\n target: 'fetchingRelatedItems',\n actions: assign({\n itemVersions: ({ event }) => event.itemVersions,\n }),\n },\n },\n invoke: {\n src: 'fetchVersions',\n input: ({ context }) => ({ context }),\n },\n },\n fetchingRelatedItems: {\n on: {\n fetchRelatedItemsSuccess: {\n target: 'processingItems',\n actions: assign({\n relatedProperties: ({ event }) => event.relatedProperties,\n relatedVersionsBySeedUid: ({ event }) =>\n event.relatedVersionsBySeedUid,\n relatedVersionsBySchemaUid: ({ event }) =>\n event.relatedVersionsBySchemaUid,\n schemaUidsByModelName: ({ event }) => event.schemaUidsByModelName,\n mostRecentPropertiesBySeedUid: ({ event }) =>\n event.mostRecentPropertiesBySeedUid,\n }),\n },\n },\n invoke: {\n src: 'fetchRelatedItems',\n input: ({ context }) => ({ context }),\n },\n },\n processingItems: {\n on: {\n processItemsSuccess: 'idle',\n itemCreated: {\n actions: assign({\n items: ({ context, event }) => {\n if (context && context.items) {\n const foundItem = context.items.find((item) => {\n if (!item.versionLocalId) {\n return false\n }\n return (\n item.versionLocalId === event.item.versionLocalId ||\n item.versionUid === event.item.versionUid\n )\n })\n if (foundItem) {\n return context.items\n }\n return [...context.items, event.item]\n }\n if (context && !context.items) {\n return [event.item]\n }\n },\n }),\n },\n },\n invoke: {\n src: 'processItems',\n input: ({ context, self }) => ({ context, self }),\n },\n },\n },\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, PublishMachineContext } from '@/types'\n\nexport const validateItemData = fromCallback<\n EventObject,\n FromCallbackInput<PublishMachineContext>\n>(({ sendBack, input: { context } }) => {\n const _validateItemData = async () => {\n if (context && context.localId) {\n return true\n }\n return false\n }\n\n _validateItemData().then((isValid) => {\n if (isValid) {\n sendBack({ type: 'validateItemDataSuccess' })\n }\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, PublishMachineContext } from '@/types'\n\nexport const createPublishAttempt = fromCallback<\n EventObject,\n FromCallbackInput<PublishMachineContext>\n>(({ sendBack, input: { context } }) => {\n const _createPublishAttempt = async () => {\n // Do some stuff\n return true\n }\n\n _createPublishAttempt().then(() => {\n sendBack({ type: 'createPublishAttemptSuccess' })\n })\n})\n","import { ActionFunction, assign } from 'xstate'\n\ntype UpdateMachineContext = {\n actions: ActionFunction<any, any, any, any, any, any, any, any, any>[] | any\n}\nexport const updateMachineContext: UpdateMachineContext = {\n actions: assign(({ context, event }) => {\n const newContext = Object.assign({}, context)\n\n for (let i = 0; i < Object.keys(event).length; i++) {\n const key = Object.keys(event)[i]\n if (key === 'type') {\n continue\n }\n newContext[key] = event[key]\n }\n return {\n ...newContext,\n }\n }),\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, PublishMachineContext } from '@/types'\nimport { models as modelsTable, modelUids } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { eq } from 'drizzle-orm'\nimport { getModelSchemas } from '@/db/read/getModelSchemas'\nimport { BaseItem } from '@/Item/BaseItem'\n\nexport const preparePublishRequestData = fromCallback<\n EventObject,\n FromCallbackInput<PublishMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { localId } = context\n\n const _preparePublishRequestData = async () => {\n const item = await BaseItem.find({ seedLocalId: localId })\n\n if (!item) {\n return false\n }\n\n const appDb = BaseDb.getAppDb()\n\n const modelsRows = await appDb\n .select({\n modelName: modelsTable.name,\n schemaUid: modelUids.uid,\n })\n .from(modelsTable)\n .leftJoin(modelUids, eq(modelUids.modelId, modelsTable.id))\n .where(eq(modelsTable.name, 'Version'))\n\n if (!modelsRows || modelsRows.length === 0) {\n sendBack({ type: 'preparePublishRequestDataError' })\n return false\n }\n\n const versionSchemaUid = modelsRows[0].schemaUid\n\n const editedProperties = await item.getEditedProperties()\n\n const { modelSchemas, schemaStringToModelRecord } = await getModelSchemas({\n sdkConfigDb: appDb,\n })\n\n // const dataEncoder = new SchemaEncoder(modelProperty.schemaDefinition,)\n // const encodedData = dataEncoder.encodeData(data,)\n //\n // itemData.listOfAttestations.push({\n // schema : modelProperty.schemaUid,\n // data : [\n // {\n // ...defaultAttestationData,\n // data : encodedData,\n // },\n // ],\n // },)\n\n const publishRequestData = {\n seedIsRevocable: false,\n seedSchemaUid: item.schemaUid,\n seedUid: item.seedUid,\n versionSchemaUid,\n versionUid: item.latestVersionUid,\n listOfAttestations: [],\n }\n\n sendBack({\n type: 'updateContext',\n ...publishRequestData,\n })\n\n return true\n }\n\n _preparePublishRequestData().then((success) => {\n if (success) {\n sendBack({ type: 'preparePublishRequestDataSuccess' })\n }\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, PublishMachineContext } from '@/types'\nimport { BaseItem } from '@/Item/BaseItem'\nimport debug from 'debug'\nimport { getCorrectId } from '@/helpers'\n\nconst logger = debug('seedSdk:services:publish:actors:upload')\n\ntype UploadItem = {\n sourceFilePath: string\n fileSize: number\n filename: string\n seedLocalId?: string\n metadataLocalId?: string\n}\n\nexport const upload = fromCallback<\n EventObject,\n FromCallbackInput<PublishMachineContext>\n>(({ sendBack, input: { context } }) => {\n const { localId } = context\n\n const _upload = async () => {\n const item = await BaseItem.find({ seedLocalId: localId })\n\n if (!item) {\n logger('no item with localId', localId)\n return false\n }\n\n const editedProperties = await item.getEditedProperties()\n\n for (const propertyData of editedProperties) {\n if (propertyData.refSeedType === 'image') {\n // Check sha256 of local file against sha256 of remote files\n // If different, add this file to uploadItems\n }\n }\n\n const uploadItems = []\n\n for (const editedPropertyData of editedProperties) {\n const propertyName = editedPropertyData.propertyName\n const editedProperty = item.properties[propertyName]\n\n if (!editedProperty || !editedProperty.propertyDef) {\n continue\n }\n\n if (\n editedProperty.propertyDef.refValueType &&\n editedProperty.propertyDef.refValueType === 'ImageSrc'\n ) {\n const context = editedProperty.getService().getSnapshot().context\n const imageSeedId = context.propertyValue\n const { localId, uid } = getCorrectId(imageSeedId)\n }\n\n if (\n editedProperty.propertyDef.storageType === 'ItemStorage' &&\n editedProperty.propertyDef.localStorageDir\n ) {\n }\n }\n\n if (uploadItems.length === 0) {\n return true\n }\n\n // const turbo = TurboFactory.unauthenticated()\n\n // turbo.uploadSignedDataItem()\n //\n // const { id, owner, dataCaches, fastFinalityIndexes } = await turbo.uploadFile(() => {\n // fileStreamFactory => () => fs.createReadStream(filePath),\n // fileSizeFactory => () => fileSize,\n // });\n return false\n }\n\n _upload().then((isValid) => {\n if (isValid) {\n sendBack({ type: 'uploadSuccess' })\n }\n })\n})\n","import { setup } from 'xstate'\nimport { validateItemData } from './actors/validateItemData'\nimport { PublishMachineStates } from '@/services/internal/constants'\nimport { PublishMachineContext } from '@/types'\nimport { createPublishAttempt } from './actors/createPublishAttempt'\nimport { updateMachineContext } from '@/helpers/updateMachineContext'\nimport { preparePublishRequestData } from '@/services/publish/actors/preparePublishRequestData'\nimport { upload } from '@/services/publish/actors/upload'\n\nconst {\n VALIDATING_ITEM_DATA,\n CREATING_PUBLISH_ATTEMPT,\n PREPARING_PUBLISH_REQUEST_DATA,\n UPLOADING,\n PUBLISHING,\n IDLE,\n} = PublishMachineStates\n\nexport const publishMachine = setup({\n types: {\n context: {} as PublishMachineContext,\n input: {} as PublishMachineContext,\n },\n actors: {\n validateItemData,\n createPublishAttempt,\n upload,\n preparePublishRequestData,\n },\n}).createMachine({\n id: 'publish',\n initial: VALIDATING_ITEM_DATA,\n context: ({ input }) => input,\n on: {\n updateContext: updateMachineContext,\n },\n states: {\n [VALIDATING_ITEM_DATA]: {\n on: {\n validateItemDataSuccess: [CREATING_PUBLISH_ATTEMPT],\n },\n invoke: {\n src: 'validateItemData',\n input: ({ context }) => ({ context }),\n },\n },\n [CREATING_PUBLISH_ATTEMPT]: {\n on: {\n createPublishAttemptSuccess: [UPLOADING],\n },\n invoke: {\n src: 'createPublishAttempt',\n input: ({ context }) => ({ context }),\n },\n },\n [UPLOADING]: {\n on: {\n uploadingSuccess: [PREPARING_PUBLISH_REQUEST_DATA],\n },\n invoke: {\n src: 'upload',\n input: ({ context }) => ({ context }),\n },\n },\n [PREPARING_PUBLISH_REQUEST_DATA]: {\n on: {\n preparePublishRequestDataSuccess: [UPLOADING],\n },\n invoke: {\n src: 'preparePublishRequestData',\n input: ({ context }) => ({ context }),\n },\n },\n [PUBLISHING]: {},\n [IDLE]: {},\n },\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, GlobalMachineContext } from '@/types/machines'\nimport { saveAppState } from '@/db/write/saveAppState'\n\nexport const savePublishService = fromCallback<\n EventObject,\n FromCallbackInput<GlobalMachineContext>\n>(({ sendBack, input: { event, context } }) => {\n const { publishItemService } = context\n\n if (!publishItemService) {\n sendBack({ type: 'savePublishServiceError' })\n return\n }\n\n const _savePublishService = async (): Promise<boolean> => {\n await saveAppState(\n `snapshot__publishItemService`,\n JSON.stringify(publishItemService.getPersistedSnapshot()),\n )\n\n return true\n }\n\n _savePublishService().then((success) => {\n if (success) {\n sendBack({ type: 'savePublishServiceSuccess' })\n }\n })\n})\n","import { ActorRefFrom, assign, createActor, raise, setup } from 'xstate'\nimport { createBrowserInspector } from '@statelyai/inspect'\nimport {\n GLOBAL_ADDING_MODELS_TO_DB_SUCCESS,\n GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES,\n GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY,\n GLOBAL_INITIALIZING_SEND_CONFIG,\n GlobalState,\n MachineIds,\n} from '@/services/internal/constants'\nimport { GlobalMachineContext, ModelClassType } from '@/types'\nimport { eventEmitter } from '@/eventBus'\nimport { initialize } from '@/services/global/actors/initialize'\nimport { getSchemaForModel } from '@/services/global/actors/getSchemaForModel'\nimport { addModelsToDb } from '@/services/global/actors/addModelsToDb'\nimport { internalMachine } from '@/services/internal/internalMachine'\nimport { itemMachineAll } from '../allItems/itemMachineAll'\nimport { publishMachine } from '@/services/publish/publishMachine'\nimport { savePublishService } from '@/services/global/actors/savePublishService'\n\nconst {\n UNINITIALIZED,\n INITIALIZING,\n INITIALIZED,\n PUBLISHING_ITEM,\n ADDING_MODELS_TO_DB,\n} = GlobalState\n\nconst { inspect } = createBrowserInspector({\n autoStart: false,\n})\n\nconst globalMachine = setup({\n types: {\n context: {} as GlobalMachineContext,\n input: {} as GlobalMachineContext | undefined,\n },\n actors: {\n initialize,\n addModelsToDb,\n getSchemaForModel,\n savePublishService,\n },\n}).createMachine({\n id: MachineIds.GLOBAL,\n initial: UNINITIALIZED,\n context: ({ input }) => input as GlobalMachineContext,\n on: {\n publishItemRequest: `.${PUBLISHING_ITEM}`,\n savePublishService: `.savingPublishService`,\n restorePublishService: `.${PUBLISHING_ITEM}`,\n },\n states: {\n [UNINITIALIZED]: {\n on: {\n init: {\n target: INITIALIZING,\n actions: [\n assign({\n isInitialized: false,\n addedModelRecordsToDb: false,\n models: ({ event }) => event.models,\n endpoints: ({ event }) => event.endpoints,\n filesDir: ({ event }) => event.filesDir,\n internalService: ({ spawn, event }) => {\n return spawn(internalMachine, {\n systemId: MachineIds.INTERNAL,\n input: {\n endpoints: event.endpoints,\n filesDir: event.filesDir,\n addresses: event.addresses,\n arweaveDomain: event.arweaveDomain,\n },\n })\n },\n }),\n ],\n },\n },\n meta: {\n displayText: 'Booting up',\n percentComplete: 5,\n },\n tags: ['loading', 'startup'],\n },\n [INITIALIZING]: {\n on: {\n [GLOBAL_INITIALIZING_SEND_CONFIG]: {\n actions: assign({\n endpoints: ({ event }) => event.endpoints,\n environment: ({ event }) => event.environment,\n addresses: ({ event }) => event.addresses,\n isInitialized: true,\n }),\n },\n [GLOBAL_INITIALIZING_INTERNAL_SERVICE_READY]: ADDING_MODELS_TO_DB,\n [GLOBAL_INITIALIZING_CREATE_ALL_ITEMS_SERVICES]: {\n actions: [\n assign(({ event, spawn }) => {\n const allItemsServices: Record<\n string,\n ActorRefFrom<typeof itemMachineAll>\n > = {}\n for (const [modelName, ModelClass] of Object.entries(\n event.create,\n )) {\n const service = spawn(itemMachineAll, {\n systemId: modelName,\n input: {\n modelName,\n ModelClass,\n modelSchema: (ModelClass as ModelClassType)!.schema,\n items: [],\n },\n })\n allItemsServices[`${modelName}Service`] = service\n }\n\n for (const [modelName, snapshot] of Object.entries(\n event.restore,\n )) {\n const service = createActor(itemMachineAll, {\n snapshot,\n })\n service.start()\n allItemsServices[`${modelName}Service`] = service\n }\n return allItemsServices\n }),\n raise({ type: 'allItemsServicesCreated' }),\n ],\n },\n },\n invoke: {\n src: 'initialize',\n input: ({ event, context }) => ({ event, context }),\n meta: {\n displayText: 'Initializing Seed SDK',\n percentComplete: 10,\n },\n tags: ['loading', 'startup'],\n },\n },\n [ADDING_MODELS_TO_DB]: {\n on: {\n [GLOBAL_ADDING_MODELS_TO_DB_SUCCESS]: {\n target: INITIALIZED,\n actions: assign({\n addedModelRecordsToDb: true,\n }),\n },\n },\n invoke: {\n src: 'addModelsToDb',\n input: ({ context }) => ({ context }),\n meta: {\n displayText: 'Adding models to database',\n },\n tags: ['loading', 'startup'],\n },\n },\n [INITIALIZED]: {\n // type: 'parallel',\n // on: {\n // publishItemRequest: `.${PUBLISHING_ITEM}`,\n // },\n meta: {\n displayText: 'Global service ready',\n percentComplete: 40,\n },\n tags: ['loading', 'startup'],\n // initial: PUBLISHING_ITEM,\n },\n [PUBLISHING_ITEM]: {\n target: INITIALIZED,\n entry: [\n assign({\n publishItemService: ({ spawn, event }) =>\n spawn(publishMachine, {\n id: 'publishService',\n input: {\n localId: event.seedLocalId,\n },\n }),\n }),\n ],\n meta: {\n displayText: 'Publishing item',\n },\n tags: ['publishing'],\n },\n savingPublishService: {\n target: INITIALIZED,\n on: {\n savePublishServiceSuccess: INITIALIZED,\n },\n invoke: {\n src: 'savePublishService',\n input: ({ context }) => ({ context }),\n },\n meta: {\n displayText: 'Saving publish service',\n },\n tags: ['publishing'],\n },\n },\n // on: {\n // '*': {\n // actions: emit(({ event }) => {\n // return event\n // }),\n // },\n // },\n})\n\nconst globalService = createActor(globalMachine, {\n input: {},\n // inspect,\n inspect: (inspEvent) => {\n eventEmitter.emit('inspect.globalService', inspEvent)\n // console.log('[sdk] [service/index] inspEvent', inspEvent)\n // eventEmitter.emit('globalService', inspEvent)\n // let eventType: string = inspEvent.type\n // if (inspEvent.event && inspEvent.event.type) {\n // eventType = inspEvent.event.type\n // }\n //\n // if (typeof eventType === 'object') {\n // eventType = JSON.stringify(eventType)\n // }\n //\n // let srcId = inspEvent.actorRef.id\n //\n // if (!srcId.includes('seedSdk')) {\n // srcId = inspEvent.actorRef.logic.config.id\n // }\n //\n // if (inspEvent.type === '@xstate.snapshot') {\n // if (\n // inspEvent.event.type === CHILD_SNAPSHOT &&\n // inspEvent.snapshot &&\n // inspEvent.snapshot.machine.id === MachineIds.GLOBAL\n // ) {\n // return\n // }\n // if (inspEvent.snapshot && inspEvent.snapshot.value) {\n // if (typeof window !== 'undefined') {\n // eventEmitter.emit('globalService', {\n // type: eventType,\n // src: srcId,\n // snapshot: inspEvent.snapshot,\n // })\n // }\n // }\n // } else {\n // if (typeof window !== 'undefined') {\n // let snapshot\n //\n // try {\n // snapshot = inspEvent.actorRef.getSnapshot()\n // } catch (e) {\n // // This fails if the actor hasn't initialized yet, but that's OK I think\n // // console.log('[sdk] [service/index] ERROR', e)\n // }\n //\n // eventEmitter.emit('globalService', {\n // type: eventType,\n // src: srcId,\n // snapshot,\n // })\n // }\n // }\n },\n})\n\nglobalService.start()\n\nconst getGlobalService = (): ActorRefFrom<typeof globalMachine> => globalService\n\nexport { globalMachine, getGlobalService, globalService }\n","import { getGlobalService } from '@/services/global'\n\ntype PublishItemRequestEvent = {\n seedLocalId: string\n}\n\ntype PublishItemRequestHandler = (\n event: PublishItemRequestEvent,\n) => Promise<void>\n\nexport const publishItemRequestHandler: PublishItemRequestHandler = async ({\n seedLocalId,\n}) => {\n const globalService = getGlobalService()\n globalService.subscribe((snapshot) => {\n if (\n !snapshot ||\n !snapshot.context ||\n !snapshot.context.publishItemService\n ) {\n return\n }\n })\n globalService.send({\n type: 'publishItemRequest',\n seedLocalId,\n })\n}\n","import { eventEmitter } from '@/eventBus'\nimport { syncDbWithEasHandler } from '@/events/item/syncDbWithEas'\nimport { publishItemRequestHandler } from '@/events/item/publish'\n\nlet areReady = false\n\nexport const setupAllItemsEventHandlers = () => {\n // eventEmitter.addListener('item.request', itemRequestHandler)\n // eventEmitter.addListener('item.requestAll', itemRequestAllHandler)\n // eventEmitter.addListener(\n // 'item.propertyValuesForSeedUid.request',\n // propertyValuesForSeedUid,\n // )\n // eventEmitter.addListener('item.create.request', createItemRequestHandler)\n // eventEmitter.addListener('item.delete.request', itemDeleteRequestHandler)\n // eventEmitter.addListener('item.update', itemUpdateHandler)\n eventEmitter.addListener('syncDbWithEas', syncDbWithEasHandler)\n eventEmitter.addListener('item.publish.request', publishItemRequestHandler)\n eventEmitter.addListener(\n 'item.publish.payload.request',\n publishItemRequestHandler,\n )\n //\n // eventEmitter.emit('item.events.setupAllItemsEventHandlers')\n areReady = true\n}\n\nexport const getAreItemEventHandlersReady = () => {\n return areReady\n}\n","import { eventEmitter } from '@/eventBus'\nimport { generateId } from '@/helpers'\n\nexport * from './item'\n\ntype WaitForEventConfig = {\n req: {\n eventLabel: string\n data: Record<string, unknown>\n }\n res: {\n eventLabel: string\n }\n}\n\ntype WaitForEvent = (\n config: WaitForEventConfig,\n) => Promise<Record<string, unknown>>\n\nexport const waitForEvent: WaitForEvent = async ({ req, res }) => {\n const eventId = generateId()\n\n return new Promise((resolve) => {\n const internalHandler = (event: Record<string, unknown>) => {\n if (!event) {\n return\n }\n const { eventId: _eventId } = event\n if (_eventId && _eventId === eventId) {\n eventEmitter.removeListener(res.eventLabel, internalHandler)\n resolve(event)\n }\n }\n\n eventEmitter.addListener(res.eventLabel, internalHandler)\n\n eventEmitter.emit(req.eventLabel, {\n ...req.data,\n eventId,\n })\n })\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { waitForEvent } from '@/events'\nimport {\n FromCallbackInput,\n HydrateExistingItemEvent,\n ItemMachineContext,\n} from '@/types'\n\nexport const hydrateExistingItem = fromCallback<\n EventObject,\n FromCallbackInput<ItemMachineContext<any>, HydrateExistingItemEvent>\n>(({ sendBack, input: { event, context } }) => {\n const { existingItem } = event!\n const { seedUid, seedLocalId, ModelClass } = context\n\n if (!ModelClass) {\n throw new Error('ModelClass not found')\n }\n\n const modelName = ModelClass.originalConstructor.name\n\n const _checkForItemOnAllItemsService = async (): Promise<boolean> => {\n if (!existingItem.seedLocalId && !existingItem.seedUid) {\n console.warn(\n '[singleItemActors] [hydrateExistingItem] No seedLocalId or seedUid found on existingItem',\n )\n return false\n }\n\n if (!seedUid && !seedLocalId) {\n return false\n }\n\n const results = await waitForEvent({\n req: {\n eventLabel: 'item.request',\n data: {\n modelName,\n seedUid,\n seedLocalId,\n source: 'hydrateExistingItem',\n },\n },\n res: {\n eventLabel: `item.${modelName}.${seedLocalId}.response`,\n },\n })\n\n return true\n\n // return new Promise((resolve) => {\n // const timeStart = Date.now()\n //\n // const interval = setInterval(() => {\n // const timeElapsed = Date.now() - timeStart\n // if (timeElapsed > 2000) {\n // eventEmitter.emit('item.request', {\n // modelName,\n // versionUid,\n // versionLocalId,\n // source: 'hydrateExistingItem',\n // })\n // }\n // if (timeElapsed > 30000) {\n // clearInterval(interval)\n // console.error(\n // `[singleItemActors] [hydrateExistingItem] ${timeElapsed / 1000}s elapsed for ${modelName} ${versionLocalId}`,\n // context,\n // )\n // eventEmitter.removeListener(\n // `item.${modelName}.response`,\n // handleItemRequestResponse,\n // )\n // resolve(false)\n // }\n // }, 500)\n\n // const handleItemRequestResponse = (event) => {\n // if (\n // event.item &&\n // ((event.item.versionLocalId &&\n // event.item.versionLocalId === versionLocalId) ||\n // (event.item.versionUid && event.item.versionUid === versionUid))\n // ) {\n // clearInterval(interval)\n // eventEmitter.removeListener(\n // `item.${modelName}.response`,\n // handleItemRequestResponse,\n // )\n // resolve(true)\n // }\n // }\n //\n // eventEmitter.addListener(\n // `item.${modelName}.response`,\n // handleItemRequestResponse,\n // )\n //\n // eventEmitter.emit('item.request', {\n // modelName,\n // versionUid,\n // versionLocalId,\n // source: 'hydrateExistingItem',\n // })\n // })\n\n // if (existingItem.versionLocalId && !existingItem.versionLocalId) {\n // console.log(\n // `[singleItemActors] [hydrateExistingItem] versionLocalId: ${existingItem.versionLocalId} versionUid: ${existingItem.versionUid}`,\n // )\n //\n // return true\n // }\n //\n // console.log(\n // `[singleItemActors] [hydrateExistingItem] versionLocalId: ${existingItem.versionLocalId} versionUid: ${existingItem.versionUid}`,\n // )\n // return true\n }\n\n _checkForItemOnAllItemsService().then((shouldContinue) => {\n if (!shouldContinue) {\n sendBack({ type: 'hydrateExistingItemFailure' })\n return\n }\n // for (const [key, value] of Object.entries(existingItem)) {\n // sendBack({\n // type: 'updateValue',\n // propertyName: key,\n // propertyValue: value,\n // source: 'db',\n // })\n // }\n\n sendBack({ type: 'hydrateExistingItemSuccess' })\n })\n})\n","import { GET_SCHEMAS } from '@/Item/queries'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\n\n\nexport const getSchemaUidForModel = async (\n modelName: string,\n): Promise<string> => {\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const modeType = modelName.toLowerCase()\n\n const modelSchemaQuery = await queryClient.fetchQuery({\n queryKey: [`getPropertySchema${modelName}`],\n queryFn: async () =>\n easClient.request(GET_SCHEMAS, {\n where: {\n schemaNames: {\n some: {\n name: {\n equals: modeType,\n },\n },\n },\n },\n }),\n })\n\n const foundSchema = modelSchemaQuery.schemas[0]\n return foundSchema.id\n}\n","import { generateId } from '@/helpers'\nimport { seeds } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { getSchemaUidForModel } from '@/db/read/getSchemaUidForModel'\n\ntype CreateSeedProps = {\n type: string\n seedUid?: string\n}\n\nexport const createSeed = async ({ type, seedUid }: CreateSeedProps): Promise<string> => {\n const schemaUid = await getSchemaUidForModel(type)\n\n if (!schemaUid) {\n throw new Error(`No schema found for model type: ${type}`)\n }\n\n const appDb = BaseDb.getAppDb()\n\n const newSeedLocalId = generateId()\n\n await appDb.insert(seeds).values({\n localId: newSeedLocalId,\n type,\n uid: seedUid,\n createdAt: Date.now(),\n schemaUid,\n })\n\n return newSeedLocalId\n} ","import { generateId } from '@/helpers'\nimport { versions } from '@/seedSchema'\nimport { BaseDb } from '../Db/BaseDb'\n\ntype CreateVersionProps = {\n seedLocalId?: string\n seedUid?: string\n seedType?: string\n uid?: string\n}\ntype CreateVersion = (props: CreateVersionProps) => Promise<string>\n\nexport const createVersion: CreateVersion = async ({\n seedLocalId,\n seedUid,\n seedType,\n uid,\n}) => {\n const appDb = BaseDb.getAppDb()\n\n const newVersionLocalId = generateId()\n\n await appDb.insert(versions).values({\n localId: newVersionLocalId,\n createdAt: Date.now(),\n seedLocalId,\n seedUid: seedUid ?? 'NULL',\n seedType,\n uid: uid || 'NULL',\n })\n\n return newVersionLocalId\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { createSeed } from '@/db/write/createSeed'\nimport { FromCallbackInput, ItemMachineContext } from '@/types'\nimport { createVersion } from '@/db/write/createVersion'\n\nexport const hydrateNewItem = fromCallback<\n EventObject,\n FromCallbackInput<ItemMachineContext<any>>\n>(({ sendBack, input: { context } }) => {\n const { seedUid, versionUid, modelName } = context\n\n let newSeedLocalId: string\n\n const _hydrateNewItem = async (): Promise<void> => {\n if (!modelName) {\n throw new Error('modelName is required')\n }\n\n newSeedLocalId = await createSeed({\n type: modelName.toLowerCase(),\n seedUid: seedUid ?? 'NULL',\n })\n\n await createVersion({\n seedLocalId: newSeedLocalId,\n seedType: modelName.toLowerCase(),\n uid: versionUid ?? 'NULL',\n })\n }\n\n _hydrateNewItem().then(() => {\n sendBack({ type: 'hydrateNewItemSuccess' })\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { GET_PROPERTIES } from '@/Item/queries'\nimport { itemMachineSingle } from '@/Item/service/itemMachineSingle'\nimport { PropertyType } from '@/seedSchema'\nimport { Attestation } from '@/graphql/gql/graphql'\nimport { ModelClassType } from '@/types'\nimport { BaseEasClient, BaseQueryClient } from '@/helpers'\n\n\nexport const fetchDataFromEas = fromCallback<\n EventObject,\n typeof itemMachineSingle\n>(({ sendBack, input: { context } }) => {\n const { ModelClass, modelTableName, versionUid } = context\n\n const propertiesMetadata = new Map<string, PropertyType>()\n\n // EAS is the final source of truth, so we need to see if our Item is\n // already represented there. Then we need to intelligently sync/merge\n // with whatever new data has been created on the device before the sync.\n for (const [propertyName, propertyMetadata] of Object.entries(\n (ModelClass as ModelClassType).schema,\n )) {\n if (propertyMetadata) {\n propertiesMetadata.set(propertyName, propertyMetadata)\n }\n }\n\n sendBack({ type: 'updatePropertiesMetadata', propertiesMetadata })\n\n if (!versionUid) {\n // In this case this is a local only item, so we don't need to fetch anything\n return\n }\n\n const _fetchDataFromEas = async (): Promise<void> => {\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n // Fetch Properties by versionUid\n const { itemProperties } = await queryClient.fetchQuery({\n queryKey: ['getProperties', versionUid],\n queryFn: async () =>\n easClient.request(GET_PROPERTIES, {\n where: {\n refUID: {\n in: [versionUid],\n },\n decodedDataJson: {\n not: {\n // The first of many filters to keep bad data out\n contains:\n '\"value\":\"0x0000000000000000000000000000000000000000000000000000000000000020\"',\n },\n },\n },\n }),\n })\n\n // Filter properties by schemaId\n const selectedPropertiesMap: {\n [schemaId: string]: Attestation[]\n } = {}\n itemProperties.forEach((property) => {\n const existingProperties = selectedPropertiesMap[property.schemaId] || []\n existingProperties.push(property)\n selectedPropertiesMap[property.schemaId] = existingProperties\n })\n\n // For each schemaId, sort property Attestations by timeCreated DESC\n Object.keys(selectedPropertiesMap).forEach((schemaId) => {\n const sorted = selectedPropertiesMap[schemaId].sort((a, b) => {\n return a.timeCreated - b.timeCreated\n })\n selectedPropertiesMap[schemaId] = sorted\n })\n\n Object.keys(selectedPropertiesMap).forEach((schemaId) => {\n // TODO: Finish this logic\n // console.log('[singleItemActors] [fetchDataFromEas] schemaId', schemaId)\n // sendBack({ type: 'addPropertyAttestation', schemaId })\n })\n\n // Attach processed properties to the itemService/itemMachine context\n sendBack({\n type: 'updatedPropertiesBySchemaUid',\n propertiesBySchemaUid: selectedPropertiesMap,\n })\n }\n\n _fetchDataFromEas().then(() => {\n sendBack({ type: 'fetchDataFromEasSuccess' })\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport { ItemMachineContext } from '@/types/item'\n\nexport const reload = fromCallback<\n EventObject,\n FromCallbackInput<ItemMachineContext<any>>\n>(({ sendBack, input: { context } }) => {\n const { propertyInstances } = context\n\n const _reload = async () => {\n if (!propertyInstances) {\n return\n }\n\n for (const propertyInstance of propertyInstances.values()) {\n if (propertyInstance) {\n const propertyRecordSchema = propertyInstance.propertyDef\n if (\n propertyRecordSchema &&\n propertyRecordSchema.storageType &&\n propertyRecordSchema.storageType === 'ItemStorage'\n ) {\n propertyInstance.getService().send({ type: 'reload' })\n }\n }\n }\n }\n\n _reload().then(() => {\n sendBack({ type: 'reloadSuccess' })\n })\n})\n","import { assign, setup } from 'xstate'\nimport { MachineIds } from '@/services/internal/constants'\nimport { ItemMachineContext } from '@/types'\nimport { waitForDb } from './actors/waitForDb'\nimport { initialize } from './actors/initialize'\nimport { hydrateExistingItem } from './actors/hydrateExistingItem'\nimport { hydrateNewItem } from './actors/hydrateNewItem'\nimport { fetchDataFromEas } from './actors/fetchDataFromEas'\nimport { reload } from './actors/reload'\nimport { IItemProperty } from '@/interfaces'\n\nexport const itemMachineSingle = setup({\n types: {\n context: {} as ItemMachineContext<any>,\n input: {},\n },\n actors: {\n waitForDb,\n initialize,\n hydrateExistingItem,\n hydrateNewItem,\n fetchDataFromEas,\n reload,\n },\n}).createMachine({\n id: MachineIds.ITEM,\n initial: 'waitingForDb',\n context: ({ input }) => input as ItemMachineContext<any>,\n on: {\n updatedPropertiesBySchemaUid: {\n actions: assign({\n propertiesBySchemaUid: ({ event }) => event.propertiesBySchemaUid,\n }),\n },\n updatePropertiesMetadata: {\n actions: assign({\n propertiesMetadata: ({ event }) => event.propertiesMetadata,\n }),\n },\n updateProperties: {\n actions: assign({\n propertiesUpdatedAt: Date.now(),\n }),\n },\n updateValue: {\n actions: assign(({ event, context }) => {\n let { propertyInstances } = context\n if (!propertyInstances) {\n propertyInstances = new Map<string, IItemProperty<any>>()\n }\n const { propertyName, propertyValue } = event\n\n if (!propertyInstances.has(propertyName)) {\n return {\n [propertyName]: propertyValue,\n }\n }\n const propertyInstance = propertyInstances.get(\n propertyName,\n ) as IItemProperty<any>\n\n propertyInstance.value = propertyValue\n propertyInstances.set(propertyName, propertyInstance)\n // TODO: use immer here\n return {\n propertyInstances,\n }\n }),\n },\n addPropertyInstance: {\n actions: assign(({ context, event }) => {\n const propertyInstances =\n context.propertyInstances || new Map<string, IItemProperty<any>>()\n propertyInstances.set(event.propertyName, event.propertyInstance)\n return {\n propertyInstances,\n }\n }),\n },\n reload: '.reloading',\n },\n states: {\n idle: {},\n waitingForDb: {\n on: {\n waitForDbSuccess: 'initializing',\n },\n invoke: {\n src: 'waitForDb',\n },\n },\n initializing: {\n on: {\n hasExistingItem: {\n target: 'idle',\n actions: assign({\n modelTableName: ({ event }) => event.modelTableName,\n modelNamePlural: ({ event }) => event.modelNamePlural,\n modelName: ({ event }) => event.modelName,\n existingItem: ({ event }) => event.existingItem,\n }),\n },\n isNewItem: {\n target: 'idle',\n actions: assign({\n modelTableName: ({ event }) => event.modelTableName,\n modelNamePlural: ({ event }) => event.modelNamePlural,\n modelName: ({ event }) => event.modelName,\n }),\n },\n },\n invoke: {\n src: 'initialize',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n hydratingExistingItem: {\n on: {\n hydrateExistingItemSuccess: 'idle',\n hydrateExistingItemFailure: 'destroying',\n },\n invoke: {\n src: 'hydrateExistingItem',\n input: ({ event, context }) => ({ event, context }),\n },\n },\n hydratingNewItem: {\n on: {\n hydrateNewItemSuccess: 'idle',\n },\n invoke: {\n src: 'hydrateNewItem',\n input: ({ context }) => ({ context }),\n },\n },\n fetchingRemoteData: {\n on: {\n fetchRemoteDataSuccess: 'idle',\n },\n invoke: {\n src: 'fetchRemoteData',\n input: ({ context }) => ({ context }),\n },\n },\n reloading: {\n on: {\n reloadSuccess: 'idle',\n },\n invoke: {\n src: 'reload',\n input: ({ context }) => ({ context }),\n },\n },\n destroying: {\n type: 'final',\n },\n },\n})\n","import { and, eq, getTableColumns, or, SQL, sql } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { metadata } from '@/seedSchema'\n\nexport const getMetadataLatest = ({seedLocalId, seedUid}: {seedLocalId?: string, seedUid?: string}) => {\n const appDb = BaseDb.getAppDb()\n\n const whereClauses: SQL[] = []\n\n if (seedLocalId) {\n whereClauses.push(eq(metadata.seedLocalId, seedLocalId))\n }\n\n if (seedUid) {\n whereClauses.push(eq(metadata.seedUid, seedUid))\n }\n\n const metadataColumns = getTableColumns(metadata)\n\n return appDb.$with('metadataLatest').as(\n appDb\n .select({\n ...metadataColumns,\n rowNum: sql.raw(`\n ROW_NUMBER() OVER (\n PARTITION BY property_name \n ORDER BY COALESCE(created_at, attestation_created_at) DESC\n )\n `).as('rowNum')\n })\n .from(metadata)\n .where(and(...whereClauses))\n )\n}\n","import { GetItemProperties, PropertyData } from '@/types'\nimport { metadata, seeds, versions } from '@/seedSchema'\nimport { and, eq, getTableColumns, isNotNull, isNull, sql, SQL } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { getMetadataLatest } from './subqueries/metadataLatest'\n\n\nexport const getItemProperties: GetItemProperties = async ({\n seedLocalId,\n seedUid,\n edited,\n}) => {\n const appDb = BaseDb.getAppDb()\n\n const whereClauses: SQL[] = [isNotNull(metadata.propertyName)]\n\n if (seedUid) {\n whereClauses.push(eq(seeds.uid, seedUid))\n }\n\n if (seedLocalId) {\n whereClauses.push(eq(seeds.localId, seedLocalId))\n }\n\n whereClauses.push(isNotNull(metadata.propertyName))\n\n if (typeof edited !== 'undefined') {\n if (edited) {\n whereClauses.push(isNull(metadata.uid))\n }\n if (!edited) {\n whereClauses.push(isNotNull(metadata.uid))\n }\n }\n\n // const metadataColumns = getTableColumns(metadata)\n\n const metadataLatest = getMetadataLatest({seedLocalId, seedUid})\n\n const propertiesData = await appDb\n .with(metadataLatest)\n .select()\n .from(metadataLatest)\n .where(eq(metadataLatest.rowNum, 1))\n\n return propertiesData.map(data => ({\n ...data,\n localId: data.localId || '',\n uid: data.uid || '',\n propertyName: data.propertyName || '',\n propertyValue: data.propertyValue || '',\n schemaUid: data.schemaUid || '',\n modelType: data.modelType || '',\n seedLocalId: data.seedLocalId || '',\n })) as PropertyData[]\n}\n","import { versions } from '@/seedSchema'\nimport { count, max } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\nexport const getVersionData = () => {\n const appDb = BaseDb.getAppDb()\n\n return appDb.$with('versionData').as(\n appDb\n .select({\n seedLocalId: versions.seedLocalId,\n seedUid: versions.seedUid,\n latestVersionUid: versions.uid,\n latestVersionLocalId: versions.localId,\n versionsCount: count(versions.localId).as('versionsCount'),\n lastVersionPublishedAt: max(versions.attestationCreatedAt).as(\n 'lastVersionPublishedAt',\n ),\n lastLocalUpdateAt: max(versions.createdAt).as('lastLocalUpdateAt'),\n })\n .from(versions)\n .groupBy(versions.seedLocalId),\n )\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds, SeedType } from '@/seedSchema'\nimport { eq } from 'drizzle-orm'\n\ntype GetSeedDataProps = {\n seedLocalId?: string\n seedUid?: string\n}\n\ntype GetSeedData = (props: GetSeedDataProps) => Promise<SeedType | undefined>\n\nexport const getSeedData: GetSeedData = async ({ seedLocalId, seedUid }) => {\n const appDb = BaseDb.getAppDb()\n\n let query\n\n const queryBase = appDb.select().from(seeds)\n\n if (seedLocalId) {\n query = queryBase.where(eq(seeds.localId, seedLocalId))\n }\n\n if (seedUid) {\n query = queryBase.where(eq(seeds.uid, seedUid))\n }\n\n const rows = await query\n\n if (!rows || !rows.length) {\n return\n }\n\n return rows[0]\n}\n","import { GetItemData, ItemData } from \"@/types\"\nimport debug from \"debug\"\nimport { BaseDb } from \"../Db/BaseDb\"\nimport { and, eq, getTableColumns, gt, SQL, sql } from \"drizzle-orm\"\nimport { getItemProperties } from \"./getItemProperties\"\nimport { getVersionData } from \"./subqueries/versionData\"\nimport { seeds } from \"@/seedSchema\"\nimport { getSeedData } from \"./getSeedData\"\n\nconst logger = debug('seedSdk:db:read:getItemData')\n\nexport const getItemData: GetItemData = async ({\n modelName,\n seedLocalId,\n seedUid,\n}) => {\n if (!seedLocalId && !seedUid) {\n throw new Error('[db/queries] [getItem] no seedLocalId or seedUid')\n }\n\n if (seedUid && !seedLocalId) {\n const seedData = await getSeedData({ seedUid })\n if (!seedData) {\n logger('[db/queries] [getItem] no seedData seedUid', seedUid)\n return\n }\n seedLocalId = seedData.localId\n }\n\n const appDb = BaseDb.getAppDb()\n\n const { localId, uid, ...rest } = getTableColumns(seeds)\n\n const whereClauses: SQL[] = []\n\n if (modelName) {\n whereClauses.push(eq(seeds.type, modelName.toLowerCase()))\n }\n\n if (seedUid) {\n whereClauses.push(eq(seeds.uid, seedUid))\n }\n\n if (seedLocalId && !seedUid) {\n whereClauses.push(eq(seeds.localId, seedLocalId))\n }\n\n const versionData = getVersionData()\n\n const itemDataRows = await appDb\n .with(versionData)\n .select({\n ...rest,\n seedLocalId: seeds.localId,\n seedUid: seeds.uid,\n versionsCount: versionData.versionsCount,\n lastVersionPublishedAt: versionData.lastVersionPublishedAt,\n latestVersionUid: versionData.latestVersionUid,\n latestVersionLocalId: versionData.latestVersionLocalId,\n })\n .from(seeds)\n .leftJoin(versionData, eq(seeds.localId, versionData.seedLocalId))\n .where(and(...whereClauses, gt(versionData.versionsCount, 0)))\n .orderBy(sql.raw('COALESCE(attestation_created_at, created_at) DESC'))\n .groupBy(seeds.localId) as ItemData[]\n\n if (!itemDataRows || itemDataRows.length === 0) {\n logger('[db/queries] [getItemDataFromDb] no itemDataRows')\n return\n }\n\n let itemData = itemDataRows[0] as ItemData & { [key: string]: any }\n\n const propertiesData = await getItemProperties({\n seedLocalId,\n seedUid: itemData.seedUid || undefined,\n })\n\n if (!propertiesData || propertiesData.length === 0) {\n return itemData\n }\n\n for (const propertyData of propertiesData) {\n const propertyName = propertyData.propertyName\n\n let propertyValue = propertyData.propertyValue\n\n if (propertyName.endsWith('Id') || propertyName.endsWith('Ids')) {\n if (propertyData.refSeedType) {\n const propertyNameVariant = propertyName.replace(/Ids?$/, '')\n itemData[propertyNameVariant] = propertyValue\n }\n }\n\n itemData[propertyName] = propertyValue\n }\n\n if (itemData) return itemData\n}","import { ItemData } from '@/types'\nimport { and, eq, gt, isNotNull, isNull, or, SQL, sql } from 'drizzle-orm'\nimport { seeds } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { getVersionData } from './subqueries/versionData'\n\ntype GetItemsDataProps = {\n modelName?: string\n deleted?: boolean\n}\n\ntype GetItemsData = (props: GetItemsDataProps) => Promise<ItemData[]>\n\nexport const getItemsData: GetItemsData = async ({\n modelName,\n deleted,\n}): Promise<ItemData[]> => {\n const appDb = BaseDb.getAppDb()\n\n const conditions: SQL[] = []\n\n if (modelName) {\n conditions.push(eq(seeds.type, modelName.toLowerCase()))\n }\n\n if (deleted) {\n conditions.push(\n or(\n isNotNull(seeds._markedForDeletion),\n eq(seeds._markedForDeletion, 1),\n ) as SQL,\n )\n }\n\n if (!deleted) {\n conditions.push(\n or(\n isNull(seeds._markedForDeletion),\n eq(seeds._markedForDeletion, 0),\n ) as SQL,\n )\n }\n\n const versionData = getVersionData()\n\n let query = appDb\n .with(versionData)\n .select({\n seedLocalId: seeds.localId,\n seedUid: seeds.uid,\n schemaUid: seeds.schemaUid,\n modelName: sql<string>`${modelName}`,\n attestationCreatedAt: seeds.attestationCreatedAt,\n versionsCount: versionData.versionsCount,\n lastVersionPublishedAt: versionData.lastVersionPublishedAt,\n lastLocalUpdateAt: versionData.lastLocalUpdateAt,\n latestVersionUid: versionData.latestVersionUid,\n latestVersionLocalId: versionData.latestVersionLocalId,\n createdAt: seeds.createdAt,\n })\n .from(seeds)\n .leftJoin(versionData, eq(seeds.localId, versionData.seedLocalId))\n .where(and(gt(versionData.versionsCount, 0), ...conditions))\n .orderBy(sql.raw('COALESCE(attestation_created_at, created_at) DESC'))\n .groupBy(seeds.localId)\n\n const itemsData = (await query) as ItemData[]\n\n return itemsData\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport { PropertyMachineContext } from '@/types/property'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\n\nexport const resolveRemoteStorage = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, EventObject>\n>(({ sendBack, input: { context } }) => {\n const { propertyInstances } = context\n\n if (!propertyInstances) {\n throw new Error(`propertyInstances not found for ${context.seedLocalId}`)\n }\n\n if (!propertyInstances.has('storageTransactionId')) {\n return\n }\n\n const storageTransactionId = propertyInstances.get('storageTransactionId')\n\n const _resolveRemoteStorage = async (): Promise<void> => {\n const path = await import('path-browserify')\n\n const filesDirExists = await BaseFileManager.pathExists('/files')\n\n if (!filesDirExists) {\n await BaseFileManager.createDirIfNotExists('/files')\n }\n\n const htmlDir = path.join('/files', 'html')\n\n const htmlExists = await BaseFileManager.pathExists(htmlDir)\n\n const fs = await BaseFileManager.getFs()\n\n if (htmlExists) {\n const htmlFiles = await fs.promises.readdir(htmlDir)\n const matchingHtmlFile = htmlFiles.find(\n (file) => file === `${storageTransactionId}.html`,\n )\n if (matchingHtmlFile) {\n const htmlString = await fs.promises.readFile(\n path.join(htmlDir, matchingHtmlFile),\n 'utf8',\n )\n sendBack({\n type: 'updateValue',\n propertyName: 'html',\n propertyValue: htmlString,\n })\n }\n }\n\n if (!htmlExists) {\n await fs.promises.mkdir(htmlDir)\n }\n\n const jsonDir = path.join('/files', 'json')\n\n const jsonExists = await fs.promises.exists(jsonDir)\n\n if (jsonExists) {\n const jsonFiles = await fs.promises.readdir(jsonDir)\n const matchingJsonFile = jsonFiles.find(\n (file) => file === `${storageTransactionId}.json`,\n )\n if (matchingJsonFile) {\n const jsonString = await fs.promises.readFile(\n path.join(jsonDir, matchingJsonFile),\n 'utf8',\n )\n sendBack({\n type: 'updateValue',\n propertyName: 'json',\n propertyValue: jsonString,\n })\n }\n }\n\n if (!jsonExists) {\n await fs.promises.mkdir(jsonDir)\n }\n }\n\n _resolveRemoteStorage().then(() => {\n sendBack({ type: 'resolveRemoteStorageSuccess' })\n return\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput, PropertyMachineContext } from '@/types'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:ItemProperty:service:actors:waitForDb')\n\nexport const waitForDb = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext>\n>(({ sendBack }) => {\n const _waitForDb = new Promise<void>((resolve) => {\n const interval = setInterval(() => {\n const appDb = BaseDb.getAppDb()\n if (appDb) {\n clearInterval(interval)\n resolve()\n }\n }, 100)\n })\n\n _waitForDb.then(() => {\n sendBack({ type: 'waitForDbSuccess' })\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport { PropertyMachineContext } from '@/types/property'\nimport { getSchemaUidForSchemaDefinition } from '@/stores/eas'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nexport const initialize = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, EventObject>\n>(({ sendBack, input: { context } }) => {\n const { isRelation, propertyName, storageTransactionId } = context\n let { schemaUid } = context\n\n if (!schemaUid) {\n schemaUid = getSchemaUidForSchemaDefinition(propertyName)\n if (schemaUid) {\n sendBack({ type: 'updateContext', schemaUid })\n }\n }\n\n if (isRelation) {\n sendBack({ type: 'isRelatedProperty' })\n sendBack({ type: 'initializeSuccess' })\n return\n }\n\n if (!isRelation) {\n if (\n (propertyName !== 'html' && propertyName !== 'json') ||\n !storageTransactionId\n ) {\n sendBack({ type: 'initializeSuccess' })\n return\n }\n\n const _getContentsFromFileSystem = async () => {\n if (propertyName === 'html') {\n const htmlFilePath = `/files/html/${storageTransactionId}.html`\n const exists = await BaseFileManager.pathExists(htmlFilePath)\n if (!exists) {\n return\n }\n const renderValue = await BaseFileManager.readFileAsString(htmlFilePath)\n .catch((error) => {\n console.warn('Error reading html file', error)\n })\n sendBack({ type: 'updateContext', renderValue })\n return\n }\n if (propertyName === 'json') {\n const jsonFilePath = `/files/json/${storageTransactionId}.json`\n const exists = await BaseFileManager.pathExists(jsonFilePath)\n if (!exists) {\n return\n }\n const renderValue = await BaseFileManager.readFileAsString(jsonFilePath)\n .catch((error) => {\n console.warn('Error reading json file', error)\n })\n sendBack({ type: 'updateContext', renderValue })\n return\n }\n }\n\n _getContentsFromFileSystem().then(() => {\n sendBack({ type: 'initializeSuccess' })\n })\n }\n})\n","import { metadata } from '@/seedSchema'\nimport { and, eq } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\nconst seedUidToStorageTransactionId = new Map<string, string>()\n\ntype GetStorageTransactionIdResults = {\n storageTransactionId: string\n}[]\n\nexport const getStorageTransactionIdForSeedUid = async (\n seedUid: string,\n): Promise<string | undefined> => {\n if (seedUidToStorageTransactionId.has(seedUid)) {\n return seedUidToStorageTransactionId.get(seedUid)\n }\n\n const appDb = BaseDb.getAppDb()\n\n const results = (await appDb\n .select({\n storageTransactionId: metadata.propertyValue,\n })\n .from(metadata)\n .where(\n and(\n eq(metadata.seedUid, seedUid),\n eq(metadata.propertyName, 'storageTransactionId'),\n ),\n )) as GetStorageTransactionIdResults\n\n if (!results || results.length === 0) {\n return\n }\n\n seedUidToStorageTransactionId.set(seedUid, results[0].storageTransactionId)\n return results[0].storageTransactionId\n} ","import { metadata, MetadataType } from '@/seedSchema'\nimport { eq, max } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\n\nexport const getRelationValueData = async (\n propertyValue: any,\n): Promise<MetadataType | undefined> => {\n const appDb = BaseDb.getAppDb()\n\n const rows = (await appDb\n .select({\n propertyValue: metadata.propertyValue,\n attestationCreatedAt: max(metadata.attestationCreatedAt),\n refResolvedDisplayValue: metadata.refResolvedDisplayValue,\n refResolvedValue: metadata.refResolvedValue,\n refSeedType: metadata.refSeedType,\n easDataType: metadata.easDataType,\n })\n .from(metadata)\n .where(eq(metadata.propertyValue, propertyValue))) as MetadataType[]\n\n if (!rows || rows.length === 0) {\n return\n }\n\n return rows[0]\n} ","import { EventObject, fromCallback } from 'xstate'\nimport { BaseFileManager, convertTxIdToImageSrc } from '@/helpers'\nimport debug from 'debug'\nimport { FromCallbackInput } from '@/types/machines'\nimport { PropertyMachineContext } from '@/types/property'\nimport { getStorageTransactionIdForSeedUid } from '@/db/read/getStorageTransactionIdForSeedUid'\nimport { getRelationValueData } from '@/db/read/getRelationValueData'\n\nconst logger = debug('seedSdk:property:actors:resolveRelatedValue')\n\nconst storageTransactionIdToContentUrl = new Map<string, string>()\nconst refResolvedValueToContentUrl = new Map<string, string>()\nconst seedUidToContentUrl = new Map<string, string>()\n\nexport const resolveRelatedValue = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, EventObject>\n>(({ sendBack, input: { context } }) => {\n const {\n isRelation,\n propertyValue,\n propertyName,\n seedUid,\n propertyRecordSchema,\n populatedFromDb,\n schemaUid,\n } = context\n\n const _resolveRelatedValue = async () => {\n if (!propertyValue || !isRelation || populatedFromDb) {\n return\n }\n\n let parsedValue\n\n try {\n parsedValue = JSON.parse(propertyValue)\n } catch (error) {\n logger(`${propertyName} value is not a JSON string.`)\n }\n\n if (!parsedValue && seedUidToContentUrl.has(propertyValue)) {\n const contentUrl = seedUidToContentUrl.get(propertyValue)\n sendBack({\n type: 'updateContext',\n renderValue: contentUrl,\n })\n sendBack({\n type: 'resolvingRelatedValueSuccess',\n refResolvedDisplayValue: contentUrl,\n })\n return true\n }\n\n if (Array.isArray(propertyValue)) {\n // TODO: Handle array of seedUids\n logger(`${propertyName} value is an array of seedUids`)\n return\n }\n\n if (Array.isArray(parsedValue)) {\n logger(`${propertyName} value is a stringified array of seedUids`)\n return\n }\n\n const storageTransactionId =\n await getStorageTransactionIdForSeedUid(propertyValue)\n\n if (storageTransactionId) {\n if (storageTransactionIdToContentUrl.has(storageTransactionId)) {\n const contentUrl =\n storageTransactionIdToContentUrl.get(storageTransactionId)\n sendBack({\n type: 'updateContext',\n renderValue: contentUrl,\n })\n sendBack({\n type: 'resolvingRelatedValueSuccess',\n refResolvedDisplayValue: contentUrl,\n refResolvedValue: storageTransactionId,\n })\n return true\n }\n\n const contentUrl = await convertTxIdToImageSrc(storageTransactionId)\n if (contentUrl) {\n seedUidToContentUrl.set(propertyValue, contentUrl)\n }\n sendBack({\n type: 'updateContext',\n renderValue: contentUrl,\n })\n sendBack({\n type: 'resolvingRelatedValueSuccess',\n refResolvedDisplayValue: contentUrl,\n refResolvedValue: storageTransactionId,\n })\n return true\n }\n\n const relationValueData = await getRelationValueData(propertyValue)\n\n if (relationValueData) {\n const { refResolvedValue } = relationValueData\n const propertyValueFromDb = relationValueData.propertyValue\n\n // This handles a local-only relation value and resolves from the filesystem\n if (\n refResolvedValue &&\n propertyRecordSchema.dataType === 'Relation' &&\n propertyValueFromDb.length === 10 &&\n propertyRecordSchema.ref\n ) {\n if (refResolvedValueToContentUrl.has(refResolvedValue)) {\n const contentUrl = refResolvedValueToContentUrl.get(refResolvedValue)\n sendBack({\n type: 'updateContext',\n renderValue: contentUrl,\n })\n sendBack({\n type: 'resolvingRelatedValueSuccess',\n refResolvedDisplayValue: contentUrl,\n })\n return true\n }\n\n const fileExists = await BaseFileManager.pathExists(\n '/files/images/' + refResolvedValue,\n )\n if (fileExists) {\n const file = await BaseFileManager.readFile(\n '/files/images/' + refResolvedValue,\n )\n const contentUrl = URL.createObjectURL(file)\n refResolvedValueToContentUrl.set(refResolvedValue, contentUrl)\n sendBack({\n type: 'updateContext',\n renderValue: contentUrl,\n })\n sendBack({\n type: 'resolvingRelatedValueSuccess',\n refResolvedDisplayValue: contentUrl,\n })\n return true\n }\n }\n\n if (typeof propertyValueFromDb === 'string') {\n // Check files for a filename that matches the propertyValue\n if (\n propertyRecordSchema &&\n propertyRecordSchema.refValueType === 'ImageSrc'\n ) {\n let contentUrl\n\n if (storageTransactionIdToContentUrl.has(propertyValueFromDb)) {\n contentUrl =\n storageTransactionIdToContentUrl.get(propertyValueFromDb)\n }\n\n if (!contentUrl) {\n const imageFileExists = await BaseFileManager.pathExists(\n `/images/${propertyValue}`,\n )\n if (imageFileExists) {\n const file = await BaseFileManager.readFile(\n `/images/${propertyValue}`,\n )\n contentUrl = URL.createObjectURL(file)\n storageTransactionIdToContentUrl.set(\n propertyValueFromDb,\n contentUrl,\n )\n }\n }\n\n if (contentUrl) {\n sendBack({\n type: 'updateContext',\n renderValue: contentUrl,\n })\n sendBack({\n type: 'resolvingRelatedValueSuccess',\n refResolvedDisplayValue: contentUrl,\n })\n return true\n }\n }\n }\n }\n }\n\n _resolveRelatedValue().then((success) => {\n // if (success) {\n // sendBack({\n // type: 'resolvingRelatedValueDone',\n // })\n // }\n // return\n sendBack({\n type: 'resolvingRelatedValueDone',\n })\n })\n})\n\n// const eventKey = `storage.transaction.${initialValue}.contentUrl.response`\n//\n// const contentUrlListener = async (event) => {\n// console.log('[itemProperty] [constructor] contentUrlListener', event)\n// }\n//\n// eventEmitter.once(eventKey, contentUrlListener)\n//\n// const ready = getArePropertyEventHandlersReady()\n//\n// console.log('[itemProperty] [constructor] ready', ready)\n//\n// eventEmitter.emit('storage.transaction.contentUrl.request', {\n// storageTransactionId: initialValue,\n// })\n\n// Related property values can either be seedUid or seedUid[]\n// let relatedSeedUid: string\n// let relatedSeedUids: string[]\n//\n// if (Array.isArray(propertyValue)) {\n// relatedSeedUids = propertyValue\n// } else {\n// relatedSeedUid = propertyValue\n// }\n//\n// if (relatedSeedUid) {\n// console.log(\n// `[property/actors] [resolveRelatedValue] seedUid: ${relatedSeedUid}`,\n// )\n// const latestVersionOfRelatedSeedQuery = await appDb.run(\n// sql.raw(\n// `\n// SELECT local_id, uid, MAX(attestation_created_at)\n// FROM versions\n// WHERE seed_uid = '${relatedSeedUid}';\n// `,\n// ),\n// )\n// if (\n// latestVersionOfRelatedSeedQuery &&\n// latestVersionOfRelatedSeedQuery.rows &&\n// latestVersionOfRelatedSeedQuery.rows.length > 0\n// ) {\n// const latestVersionOfRelatedSeed =\n// latestVersionOfRelatedSeedQuery.rows[0]\n// console.log(\n// '[property/actors] [resolveRelatedValue] latestVersionOfRelatedSeed',\n// latestVersionOfRelatedSeed,\n// )\n// const storageIdQuery = await appDb.run(\n// sql.raw(\n// `\n// SELECT property_value, MAX(attestation_created_at), ref_resolved_display_value, ref_resolved_value\n// FROM metadata\n// WHERE seed_uid = '${relatedSeedUid}'\n// AND property_name = 'storageTransactionId';\n// `,\n// ),\n// )\n//\n// if (\n// storageIdQuery &&\n// storageIdQuery.rows &&\n// storageIdQuery.rows.length > 0\n// ) {\n// const storageId = storageIdQuery.rows[0][0]\n//\n// if (!storageId) {\n// console.error(\n// `storageId not found for ${propertyName} with relatedSeedUid ${relatedSeedUid}`,\n// )\n// }\n//\n// const refResolvedDisplayValue = storageIdQuery.rows[0][2]\n// let resolvedValue = storageIdQuery.rows[0][3]\n//\n// if (refResolvedDisplayValue && resolvedValue) {\n// sendBack({\n// type: 'resolvingRelatedValueSuccess',\n// refResolvedDisplayValue,\n// resolvedValue,\n// })\n// return\n// }\n//\n// console.log(\n// '[property/actors] [resolveRelatedValue] storageId',\n// storageId,\n// )\n//\n// const contentUrl = await convertTxIdToImageSrc(storageId)\n//\n// if (!contentUrl) {\n// throw new Error(\n// `contentUrl not found for ${propertyName} with relatedSeedUid ${relatedSeedUid}`,\n// )\n// }\n//\n// await appDb.run(\n// sql.raw(\n// `UPDATE metadata\n// SET ref_resolved_display_value = '${contentUrl}',\n// ref_resolved_value = '${storageId}'\n// WHERE seed_uid = '${relatedSeedUid}'\n// AND property_name = 'storageTransactionId';\n// `,\n// ),\n// )\n//\n// sendBack({\n// type: 'resolvingRelatedValueSuccess',\n// refResolvedDisplayValue: contentUrl,\n// resolvedValue: storageId,\n// })\n// }\n// }\n//\n// const versionUidQuery = await appDb.run(\n// sql.raw(\n// `\n// SELECT uid\n// FROM versions\n// WHERE seed_uid = '${relatedSeedUid}';\n// `,\n// ),\n// )\n//\n// if (\n// versionUidQuery &&\n// versionUidQuery.rows &&\n// versionUidQuery.rows.length > 0\n// ) {\n// const versionUids = versionUidQuery.rows.map((row) => row[0])\n// console.log(\n// '[property/actors] [resolveRelatedValue] versionUids',\n// versionUids,\n// )\n// const { itemProperties } = await easClient.request(GET_PROPERTIES, {\n// where: {\n// refUID: {\n// in: versionUids,\n// },\n// decodedDataJson: {\n// contains: 'storage_transaction_id',\n// },\n// },\n// })\n//\n// console.log(\n// '[property/actors] [resolveRelatedValue] itemProperties',\n// itemProperties,\n// )\n//\n// if (itemProperties && itemProperties.length > 0) {\n// await savePropertiesToDb(itemProperties)\n// }\n// }\n// }","import { metadata, MetadataType } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { eq } from 'drizzle-orm'\nimport { PropertyType } from '@/types'\nimport { BaseQueryClient } from '@/helpers/QueryClient/BaseQueryClient'\nimport { BaseEasClient } from '@/helpers/EasClient/BaseEasClient'\nimport { INTERNAL_DATA_TYPES } from '@/helpers/constants'\nimport { toSnakeCase } from 'drizzle-orm/casing'\nimport { Schema } from '@/graphql/gql/graphql'\nimport { GET_SCHEMA_BY_NAME } from '@/Item/queries'\n\ntype UpdateMetadata = (\n metadataValues: Partial<MetadataType>,\n propertyRecordSchema?: PropertyType | undefined,\n) => Promise<MetadataType>\n\nexport const updateMetadata: UpdateMetadata = async (metadataValues, propertyRecordSchema) => {\n const appDb = BaseDb.getAppDb()\n\n const { localId, ...rest } = metadataValues\n\n if (!localId) {\n throw new Error('No localId provided to updateMetadata')\n }\n \n const isItemStorage = propertyRecordSchema && propertyRecordSchema.storageType === 'ItemStorage'\n\n if (\n !isItemStorage && \n propertyRecordSchema &&\n (!metadataValues.schemaUid || metadataValues.schemaUid === 'undefined' )\n ) {\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const easDataType = INTERNAL_DATA_TYPES[propertyRecordSchema.dataType].eas\n\n const propertyNameSnakeCase = toSnakeCase(metadataValues.propertyName)\n \n const queryResult = await queryClient.fetchQuery({\n queryKey: [`getSchemaByName${metadataValues.propertyName}`],\n queryFn: async (): Promise<{schemas: Schema[]}> =>\n easClient.request(GET_SCHEMA_BY_NAME, {\n where: {\n schema: {\n equals: `${easDataType} ${propertyNameSnakeCase}`,\n },\n },\n }),\n })\n\n if (queryResult && queryResult.schemas.length > 0) {\n metadataValues.schemaUid = queryResult.schemas[0].id\n }\n\n }\n\n await appDb.update(metadata).set(rest).where(eq(metadata.localId, localId))\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { and, eq, or, sql } from 'drizzle-orm'\nimport debug from 'debug'\nimport { metadata } from '@/seedSchema'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { updateMetadata } from '@/db/write/updateMetadata'\nimport { FromCallbackInput } from '@/types/machines'\nimport { PropertyMachineContext } from '@/types/property'\nimport path from 'path'\nimport { BaseFileManager } from '@/helpers'\n\nconst logger = debug('seedSdk:property:actors:hydrateFromDb')\n\nexport const hydrateFromDb = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, EventObject>\n>(({ sendBack, input: { context } }) => {\n const {\n seedUid,\n seedLocalId,\n propertyName: propertyNameRaw,\n propertyRecordSchema,\n modelName,\n } = context\n\n let propertyName = propertyNameRaw\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.ref &&\n propertyRecordSchema.dataType === 'Relation' &&\n !propertyNameRaw.endsWith('Id')\n ) {\n propertyName = propertyNameRaw + 'Id'\n }\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.ref &&\n propertyRecordSchema.dataType === 'List' &&\n !propertyNameRaw.endsWith('Ids')\n ) {\n propertyName = propertyNameRaw + 'Ids'\n }\n\n const _hydrateFromDb = async () => {\n const appDb = BaseDb.getAppDb()\n\n const isRelation =\n propertyRecordSchema &&\n propertyRecordSchema.ref &&\n propertyRecordSchema.dataType === 'Relation'\n\n const whereClauses = []\n\n if (isRelation) {\n let missingPropertyNameVariant\n if (propertyName.endsWith('Id')) {\n missingPropertyNameVariant = propertyName.slice(0, -2)\n }\n if (!propertyName.endsWith('Id')) {\n missingPropertyNameVariant = propertyName + 'Id'\n }\n if (missingPropertyNameVariant) {\n whereClauses.push(\n or(\n eq(metadata.propertyName, propertyName),\n eq(metadata.propertyName, missingPropertyNameVariant),\n ),\n )\n }\n if (!missingPropertyNameVariant) {\n whereClauses.push(eq(metadata.propertyName, propertyName))\n }\n } else {\n whereClauses.push(eq(metadata.propertyName, propertyName))\n }\n\n if (seedUid) {\n whereClauses.push(eq(metadata.seedUid, seedUid))\n }\n\n if (seedLocalId) {\n whereClauses.push(eq(metadata.seedLocalId, seedLocalId))\n }\n\n const rows = await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n .orderBy(sql.raw('COALESCE(attestation_created_at, created_at) DESC'))\n\n if (!rows || !rows.length) {\n return\n }\n\n const firstRow = rows[0]\n\n const {\n localId,\n uid,\n propertyName: propertyNameFromDb,\n propertyValue: propertyValueFromDb,\n seedLocalId: seedLocalIdFromDb,\n seedUid: seedUidFromDb,\n schemaUid: schemaUidFromDb,\n versionLocalId: versionLocalIdFromDb,\n versionUid: versionUidFromDb,\n refValueType,\n localStorageDir,\n } = firstRow\n\n let { refResolvedDisplayValue, refResolvedValue } = firstRow\n\n let propertyValueProcessed: string | string[] | undefined | null =\n propertyValueFromDb\n\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.refValueType === 'ImageSrc'\n ) {\n let shouldReadFromFile = true\n\n if (\n refResolvedValue &&\n refResolvedDisplayValue &&\n refResolvedDisplayValue.includes('http')\n ) {\n try {\n const response = await fetch(refResolvedDisplayValue, {\n method: 'HEAD',\n })\n\n // Check if the status is in the 200-299 range\n if (response.ok) {\n shouldReadFromFile = false\n }\n } catch (error) {\n shouldReadFromFile = true\n }\n }\n\n if (shouldReadFromFile) {\n let dir = localStorageDir\n if (\n !dir &&\n propertyRecordSchema &&\n propertyRecordSchema.refValueType === 'ImageSrc'\n ) {\n dir = 'images'\n }\n\n dir = dir!.replace(/^\\//, '')\n\n if (\n !refResolvedValue &&\n propertyValueFromDb &&\n propertyValueFromDb.length === 66\n ) {\n // Here the storageTransactionId is stored on a different record and\n // we want to add it as the refResolvedValue\n const storageTransactionQuery = await appDb\n .select({\n propertyValue: metadata.propertyValue,\n })\n .from(metadata)\n .where(\n and(\n eq(metadata.seedUid, propertyValueFromDb),\n or(\n eq(metadata.propertyName, 'storageTransactionId'),\n eq(metadata.propertyName, 'transactionId'),\n ),\n ),\n )\n\n if (storageTransactionQuery && storageTransactionQuery.length > 0) {\n const row = storageTransactionQuery[0]\n refResolvedValue = row.propertyValue\n await updateMetadata({\n localId,\n refResolvedValue,\n localStorageDir: '/images',\n })\n }\n }\n\n const dirPath = `/files/${dir}`\n const fs = await BaseFileManager.getFs()\n const files = await fs.promises.readdir(dirPath)\n const matchingFiles = files.filter((file) => {\n return path.basename(file).includes(refResolvedValue!)\n })\n let fileExists = false\n let filename\n let filePath\n if (matchingFiles && matchingFiles.length > 0) {\n fileExists = true\n filename = matchingFiles[0]\n filePath = `/files/${dir}/${filename}`\n }\n if (fileExists && filename && filePath) {\n const file = await BaseFileManager.readFile(filePath)\n refResolvedDisplayValue = URL.createObjectURL(file)\n await updateMetadata({\n localId,\n refResolvedValue: filename,\n })\n }\n }\n }\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.dataType === 'List' &&\n propertyRecordSchema.ref &&\n typeof propertyValueFromDb === 'string'\n ) {\n propertyValueProcessed = propertyValueFromDb.split(',')\n }\n\n sendBack({\n type: 'updateContext',\n localId,\n uid,\n propertyValue: propertyValueProcessed,\n seedLocalId: seedLocalIdFromDb,\n seedUid: seedUidFromDb,\n versionLocalId: versionLocalIdFromDb,\n versionUid: versionUidFromDb,\n schemaUid: schemaUidFromDb,\n refValueType,\n localStorageDir,\n refResolvedValue,\n refResolvedDisplayValue,\n renderValue: refResolvedDisplayValue,\n populatedFromDb: true,\n })\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.storageType &&\n propertyRecordSchema.storageType === 'ItemStorage'\n ) {\n const { Item } = await import(`@/browser/Item`)\n const item = await Item.find({\n seedLocalId,\n modelName,\n })\n if (item) {\n const filePath = `/files/${localStorageDir}/${refResolvedValue}`\n const exists = await BaseFileManager.pathExists(filePath)\n\n if (!exists) {\n return\n }\n\n const renderValue = await BaseFileManager.readFileAsString(filePath)\n const property = item.properties[propertyName]\n property.getService().send({ type: 'updateContext', renderValue })\n return\n }\n }\n }\n\n _hydrateFromDb().then(() => {\n sendBack({ type: 'hydrateFromDbSuccess' })\n })\n})\n","import { versions, VersionsType } from '@/seedSchema'\nimport { and, eq } from 'drizzle-orm'\nimport { BaseDb } from '../Db/BaseDb'\n\ntype GetVersionDataProps = {\n localId?: string | null\n uid?: string\n seedLocalId?: string\n}\n\ntype GetVersionData = (\n props: GetVersionDataProps,\n) => Promise<VersionsType | undefined>\n\nexport const getVersionData: GetVersionData = async ({\n localId,\n seedLocalId,\n uid,\n}) => {\n const appDb = BaseDb.getAppDb()\n\n const whereClauses = []\n\n if (seedLocalId) {\n whereClauses.push(eq(versions.localId, seedLocalId))\n }\n\n if (localId) {\n whereClauses.push(eq(versions.localId, localId))\n }\n\n if (uid) {\n whereClauses.push(eq(versions.uid, uid))\n }\n\n const queryRows = await appDb\n .select()\n .from(versions)\n .where(and(...whereClauses))\n\n if (!queryRows || !queryRows.length) {\n return\n }\n\n return queryRows[0]\n}\n","import { escapeSqliteString } from '@/helpers/db'\nimport { metadata, MetadataType } from '@/seedSchema'\nimport { and, eq, sql } from 'drizzle-orm'\nimport { getSeedData } from '@/db/read/getSeedData'\nimport { getVersionData } from '@/db/read/getVersionData'\nimport { generateId } from '@/helpers'\nimport debug from 'debug'\nimport { eventEmitter } from '@/eventBus'\nimport { BaseDb } from '@/db/Db/BaseDb'\nconst logger = debug('seedSdk:write:updateItemPropertyValue')\n\nconst sendItemUpdateEvent = ({ modelName, seedLocalId, seedUid }: { modelName: string, seedLocalId: string, seedUid: string }) => {\n if (!modelName || (!seedLocalId && !seedUid)) {\n return\n }\n // eventEmitter.emit(`item.${modelName}.${seedUid || seedLocalId}.update`)\n}\n\ntype UpdateItemPropertyValueResult = {\n localId: string\n schemaUid: string\n}\n\ntype UpdateItemPropertyValue = (props: Partial<MetadataType>) => Promise<UpdateItemPropertyValueResult | undefined>\n\nexport const updateItemPropertyValue: UpdateItemPropertyValue = async ({\n localId,\n propertyName,\n newValue,\n seedUid,\n seedLocalId,\n modelName,\n refSeedType,\n refResolvedValue,\n refResolvedDisplayValue,\n versionLocalId,\n versionUid,\n schemaUid,\n localStorageDir,\n}) => {\n if (!localId && !seedLocalId) {\n logger(\n `[db/write] [updateItemPropertyValue] no propertyLocalId or seedLocalId for property: ${propertyName}`,\n )\n return\n }\n\n let safeNewValue = newValue\n\n if (\n typeof newValue === 'string' &&\n !refResolvedDisplayValue &&\n !refResolvedValue\n ) {\n safeNewValue = escapeSqliteString(newValue)\n }\n\n const appDb = BaseDb.getAppDb()\n\n const rows = await appDb\n .select()\n .from(metadata)\n .where(\n and(\n eq(metadata.propertyName, propertyName!),\n eq(metadata.seedLocalId, seedLocalId!),\n ),\n )\n .orderBy(sql.raw('COALESCE(attestation_created_at, created_at) DESC'))\n\n // const mostRecentRecordStatement = `SELECT local_id,\n // uid,\n // property_name,\n // property_value,\n // model_type,\n // seed_uid,\n // seed_local_id,\n // version_local_id,\n // version_uid,\n // schema_uid,\n // eas_data_type\n // FROM metadata\n // WHERE property_name = '${propertyName}'\n // AND seed_local_id = '${seedLocalId}'\n // ORDER BY COALESCE(attestation_created_at, created_at) DESC;`\n //\n // const { rows } = await runQueryForStatement(mostRecentRecordStatement)\n\n if (rows && rows.length > 0) {\n const {\n localId,\n uid,\n propertyName: propertyNameFromDb,\n propertyValue: propertyValueFromDb,\n modelType,\n seedUid,\n seedLocalId: seedLocalIdFromDb,\n versionLocalId,\n versionUid,\n schemaUid,\n easDataType,\n localStorageDir: localStorageDirFromDb,\n refSeedType: refSeedTypeFromDb,\n refResolvedValue: refResolvedValueFromDb,\n refResolvedDisplayValue: refResolvedDisplayValueFromDb,\n } = rows[0]\n\n if (\n propertyValueFromDb === newValue &&\n modelType === modelName?.toLowerCase() &&\n refSeedTypeFromDb === refSeedType &&\n refResolvedValueFromDb === refResolvedValue\n ) {\n logger(\n `[db/write] [updateItemPropertyValue] value is the same as most recent record for property: ${propertyNameFromDb}`,\n )\n return\n }\n\n // This means we already have a local-only record so we should just update that one\n if (!uid) {\n const updatePropertyStatement = `UPDATE metadata\n SET property_value = '${safeNewValue}',\n ref_seed_type = ${refSeedType ? `'${refSeedType}'` : 'NULL'},\n ref_resolved_value = ${refResolvedValue ? `'${refResolvedValue}'` : 'NULL'},\n ref_resolved_display_value = ${refResolvedDisplayValue ? `'${refResolvedDisplayValue}'` : 'NULL'},\n updated_at = ${Date.now()}\n WHERE local_id = '${localId}';`\n\n await appDb.run(sql.raw(updatePropertyStatement))\n\n sendItemUpdateEvent({ modelName, seedLocalId, seedUid })\n\n return\n }\n\n const seedDataFromDb = await getSeedData({ seedLocalId })\n const versionDataFromDb = await getVersionData({ localId: versionLocalId })\n\n // Here we don't have a local-only record so we need to create a new one\n const newLocalId = generateId()\n\n const newPropertyStatement = `INSERT INTO metadata (local_id,\n property_name,\n property_value,\n model_type,\n seed_uid,\n seed_local_id,\n version_local_id,\n version_uid,\n schema_uid,\n eas_data_type,\n ref_seed_type,\n ref_resolved_value,\n ref_resolved_display_value,\n local_storage_dir,\n created_at)\n VALUES ('${newLocalId}',\n '${propertyNameFromDb}',\n '${safeNewValue}',\n '${modelType || modelName?.toLowerCase()}',\n ${seedDataFromDb?.uid ? `'${seedDataFromDb.uid}'` : 'NULL'},\n '${seedLocalIdFromDb}',\n '${versionLocalId}',\n ${versionDataFromDb?.uid ? `'${versionDataFromDb.uid}'` : 'NULL'},\n '${schemaUid}',\n ${easDataType ? `'${easDataType}'` : 'NULL'},\n ${refSeedType ? `'${refSeedType}'` : 'NULL'},\n ${refResolvedValue ? `'${refResolvedValue}'` : 'NULL'},\n ${refResolvedDisplayValue ? `'${refResolvedDisplayValue}'` : 'NULL'},\n ${localStorageDir ? `'${localStorageDir}'` : 'NULL'},\n ${Date.now()});`\n\n await appDb.run(sql.raw(newPropertyStatement))\n\n sendItemUpdateEvent({ modelName, seedLocalId, seedUid })\n\n return {\n localId: newLocalId,\n schemaUid,\n }\n }\n\n // Here there are no records for this property on this seed so we should create one\n\n const newLocalId = generateId()\n\n if (!seedUid) {\n const seedData = await getSeedData({ seedLocalId })\n if (seedData) {\n seedUid = seedData.uid\n }\n }\n\n if (!versionUid) {\n const versionData = await getVersionData({ localId: versionLocalId })\n if (versionData) {\n versionUid = versionData.uid\n }\n }\n\n const newPropertyStatement = `INSERT INTO metadata (local_id,\n property_name,\n property_value,\n model_type,\n seed_uid,\n seed_local_id,\n version_local_id,\n version_uid,\n schema_uid,\n ref_seed_type,\n ref_resolved_value,\n ref_resolved_display_value,\n local_storage_dir,\n created_at)\n VALUES ('${newLocalId}',\n '${propertyName}',\n '${safeNewValue}',\n '${modelName?.toLowerCase()}',\n ${seedUid ? `'${seedUid}'` : 'NULL'},\n '${seedLocalId}',\n '${versionLocalId}',\n ${versionUid ? `'${versionUid}'` : 'NULL'},\n '${schemaUid}',\n ${refSeedType ? `'${refSeedType}'` : 'NULL'},\n ${refResolvedValue ? `'${refResolvedValue}'` : 'NULL'},\n ${refResolvedDisplayValue ? `'${refResolvedDisplayValue}'` : 'NULL'},\n ${localStorageDir ? `'${localStorageDir}'` : 'NULL'},\n ${Date.now()});`\n\n await appDb.run(sql.raw(newPropertyStatement))\n\n sendItemUpdateEvent({ modelName, seedLocalId, seedUid })\n\n return {\n localId: newLocalId,\n schemaUid,\n }\n\n if (!seedLocalId && propertyName && modelName && newValue) {\n // TODO: Does this ever happen? If so, what should we do?\n }\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { updateItemPropertyValue } from '@/db/write/updateItemPropertyValue'\n\nimport { getSchemaForItemProperty } from '@/helpers/getSchemaForItemProperty'\nimport { INTERNAL_DATA_TYPES } from '@/helpers/constants'\nimport { TypedData } from '@ethereum-attestation-service/eas-sdk/dist/offchain/typed-data-handler'\n\nexport const analyzeInput = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n propertyName: propertyNameRaw,\n seedLocalId,\n versionLocalId,\n versionUid,\n propertyValue: existingValue,\n propertyRecordSchema,\n modelName,\n } = context\n\n let { schemaUid } = context\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n if (existingValue === newValue) {\n sendBack({ type: 'saveValueToDbSuccess' })\n return\n }\n\n if (!propertyRecordSchema) {\n throw new Error('Missing propertyRecordSchema')\n }\n\n const _analyzeInput = async (): Promise<boolean> => {\n let propertyName = propertyNameRaw\n\n if (\n propertyRecordSchema.refValueType &&\n propertyRecordSchema.refValueType !== 'ImageSrc' &&\n propertyRecordSchema.dataType === 'Relation'\n ) {\n sendBack({\n type: 'saveRelation',\n newValue,\n })\n return false\n }\n\n if (\n propertyRecordSchema.refValueType === 'ImageSrc' ||\n propertyRecordSchema.dataType === 'ImageSrc'\n ) {\n sendBack({\n type: 'saveImageSrc',\n newValue,\n })\n return false\n }\n\n if (\n propertyRecordSchema.storageType &&\n propertyRecordSchema.storageType === 'ItemStorage'\n ) {\n sendBack({\n type: 'saveItemStorage',\n newValue,\n })\n return false\n }\n\n if (!schemaUid) {\n let easDataType\n\n if (propertyRecordSchema.dataType) {\n easDataType = INTERNAL_DATA_TYPES[propertyRecordSchema.dataType]\n .eas as TypedData['type']\n }\n\n const schemaFromEas = await getSchemaForItemProperty({\n propertyName,\n easDataType,\n })\n if (schemaFromEas) {\n schemaUid = schemaFromEas.id\n }\n }\n\n const result = await updateItemPropertyValue({\n localId,\n propertyName,\n newValue,\n seedLocalId,\n versionLocalId,\n versionUid,\n modelName,\n schemaUid,\n })\n\n let updatedContext: Partial<PropertyMachineContext> = {\n propertyValue: newValue,\n }\n\n if (localId) {\n updatedContext.localId = localId\n }\n\n if (schemaUid) {\n updatedContext.schemaUid = schemaUid\n }\n\n if (!localId && result?.localId) {\n updatedContext.localId = result.localId\n }\n\n if (!schemaUid && result?.schemaUid) {\n updatedContext.schemaUid = result.schemaUid\n }\n\n sendBack({\n type: 'updateContext',\n ...updatedContext,\n })\n\n return true\n }\n\n _analyzeInput().then((isDone) => {\n if (isDone) {\n sendBack({ type: 'saveValueToDbSuccess' })\n }\n })\n})\n","import { metadata, MetadataType } from '@/seedSchema'\nimport { BaseEasClient, BaseQueryClient, generateId } from '@/helpers'\nimport { PropertyType } from '@/types'\nimport { BaseDb } from '../Db/BaseDb'\nimport { GET_SCHEMA_BY_NAME, } from '@/Item/queries'\nimport { INTERNAL_DATA_TYPES } from '@/helpers/constants'\nimport { toSnakeCase } from 'drizzle-orm/casing'\nimport { Schema } from '@/graphql/gql/graphql'\n\n\ntype CreateMetadata = (\n metadataValues: Partial<MetadataType>,\n propertyRecordSchema?: PropertyType | undefined,\n) => Promise<MetadataType>\n\nexport const createMetadata: CreateMetadata = async (\n metadataValues,\n propertyRecordSchema?,\n) => {\n const appDb = BaseDb.getAppDb()\n\n metadataValues.localId = generateId()\n\n if (!metadataValues.modelType && metadataValues.modelName) {\n metadataValues.modelType = toSnakeCase(metadataValues.modelName)\n }\n\n const isItemStorage = propertyRecordSchema && propertyRecordSchema.storageType === 'ItemStorage'\n\n // if (\n // propertyRecordSchema &&\n // propertyRecordSchema.localStorageDir &&\n // isItemStorage\n // ) {\n // const filename = `${metadataValues.seedUid || metadataValues.seedLocalId}${propertyRecordSchema.filenameSuffix}`\n // const filePath = path.join(propertyRecordSchema.localStorageDir, filename)\n // await fs.promises.writeFile(filePath, metadataValues.propertyValue)\n // metadataValues.propertyValue = filename\n // metadataValues.refValueType = 'file'\n // }\n\n if (!isItemStorage && !metadataValues.schemaUid && propertyRecordSchema) {\n const queryClient = BaseQueryClient.getQueryClient()\n const easClient = BaseEasClient.getEasClient()\n\n const easDataType = INTERNAL_DATA_TYPES[propertyRecordSchema.dataType].eas\n\n const propertyNameSnakeCase = toSnakeCase(metadataValues.propertyName)\n \n const queryResult = await queryClient.fetchQuery({\n queryKey: [`getSchemaByName${metadataValues.propertyName}`],\n queryFn: async (): Promise<{schemas: Schema[]}> =>\n easClient.request(GET_SCHEMA_BY_NAME, {\n where: {\n schema: {\n equals: `${easDataType} ${propertyNameSnakeCase}`,\n },\n },\n }),\n })\n\n if (queryResult && queryResult.schemas.length > 0) {\n metadataValues.schemaUid = queryResult.schemas[0].id\n }\n\n }\n\n return appDb\n .insert(metadata)\n .values({\n ...metadataValues,\n createdAt: Date.now(),\n updatedAt: Date.now(),\n })\n .returning()\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { createSeed } from '@/db/write/createSeed'\nimport { getDataTypeFromString, getMimeType } from '@/helpers'\nimport { createVersion } from '@/db/write/createVersion'\nimport { createMetadata } from '@/db/write/createMetadata'\nimport { updateItemPropertyValue } from '@/db/write/updateItemPropertyValue'\nimport { getSchemaUidForModel } from '@/db/read/getSchemaUidForModel'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\nimport { eventEmitter } from '@/eventBus'\nimport { ImageSize } from '@/helpers/constants'\n\n\nconst readFileAsArrayBuffer = async (file: File): Promise<ArrayBuffer> => {\n return new Promise((resolve) => {\n const reader = new FileReader()\n reader.onload = async (e) => {\n const arrayBuffer = e.target.result as ArrayBuffer\n\n resolve(arrayBuffer)\n }\n\n reader.readAsArrayBuffer(file)\n })\n}\n\nconst fetchImage = async (url: string) => {\n const response = await fetch(url)\n const mimeType = response.headers.get('Content-Type')\n const imageBuffer = await response.arrayBuffer()\n const bytes = new Uint8Array(imageBuffer)\n\n const binaryString = bytes.reduce(\n (acc, byte) => acc + String.fromCharCode(byte),\n '',\n )\n\n let base64 = btoa(binaryString)\n\n if (mimeType) {\n base64 = `data:${mimeType};base64,${base64}`\n }\n\n return base64\n}\n\nlet imageSchemaUid: string | undefined\n\nexport const saveImageSrc = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n propertyName: propertyNameRaw,\n propertyValue: existingValue,\n propertyRecordSchema,\n modelName,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n } = context\n\n let { schemaUid } = context\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n if (existingValue === newValue) {\n sendBack({ type: 'saveValueToDbSuccess' })\n return\n }\n\n const _saveImageSrc = async (): Promise<void> => {\n let propertyName = propertyNameRaw\n\n if (!propertyNameRaw.endsWith('Id')) {\n propertyName = `${propertyName}Id`\n }\n\n let newValueType\n let fileData: string | ArrayBuffer | undefined\n let mimeType\n let fileName\n\n if (!imageSchemaUid) {\n imageSchemaUid = await getSchemaUidForModel('Image')\n }\n\n if (typeof newValue === 'string') {\n newValueType = getDataTypeFromString(newValue)\n }\n\n if (newValueType === 'imageBase64') {\n mimeType = getMimeType(newValue as string)\n const base64Data = (newValue as string).split(',')[1] // Strip the Base64 prefix\n const binaryString = atob(base64Data)\n\n const binaryLength = binaryString.length\n const binaryArray = new Uint8Array(binaryLength)\n for (let i = 0; i < binaryLength; i++) {\n binaryArray[i] = binaryString.charCodeAt(i)\n }\n fileData = binaryArray.buffer\n }\n\n if (newValueType === 'url') {\n fileData = await fetchImage(newValue as string)\n }\n\n if (newValue instanceof File) {\n fileName = newValue.name\n mimeType = newValue.type\n fileData = await readFileAsArrayBuffer(newValue)\n }\n\n if (!fileData) {\n throw new Error('No file data found')\n }\n\n const newImageSeedLocalId = await createSeed({\n type: 'image',\n })\n\n if (!fileName) {\n fileName = newImageSeedLocalId\n if (mimeType) {\n fileName += `.${mimeType.split('/')[1]}`\n }\n }\n\n const filePath = `/files/images/${fileName}`\n\n const imageVersionLocalId = await createVersion({\n seedLocalId: newImageSeedLocalId,\n seedType: 'image',\n })\n\n if (fileData instanceof ArrayBuffer) {\n try {\n await BaseFileManager.saveFile(filePath, new Uint8Array(fileData))\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, new Uint8Array(fileData))\n eventEmitter.emit('file-saved', filePath)\n }\n }\n\n if (typeof fileData === 'string') {\n try {\n await BaseFileManager.saveFile(filePath, fileData)\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, fileData)\n eventEmitter.emit('file-saved', filePath)\n }\n }\n\n\n await BaseFileManager.resizeImage({filePath, width: ImageSize.EXTRA_SMALL, height: ImageSize.EXTRA_SMALL})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.SMALL, height: ImageSize.SMALL})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.MEDIUM, height: ImageSize.MEDIUM})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.LARGE, height: ImageSize.LARGE})\n await BaseFileManager.resizeImage({filePath, width: ImageSize.EXTRA_LARGE, height: ImageSize.EXTRA_LARGE})\n\n const refResolvedDisplayValue = await BaseFileManager.getContentUrlFromPath(filePath)\n\n let newLocalId\n\n if (!localId) {\n const result = await createMetadata(\n {\n propertyName,\n propertyValue: newImageSeedLocalId,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n modelName,\n schemaUid,\n refSeedType: 'image',\n refModelUid: imageSchemaUid,\n refSchemaUid: imageSchemaUid,\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n },\n propertyRecordSchema,\n )\n\n newLocalId = result[0].localId\n }\n\n if (localId) {\n await updateItemPropertyValue({\n localId: localId,\n propertyName: propertyNameRaw,\n newValue: newImageSeedLocalId,\n seedLocalId,\n versionLocalId,\n modelName,\n schemaUid,\n refSeedType: 'image',\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n refModelUid: imageSchemaUid,\n refSchemaUid: imageSchemaUid,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n })\n }\n\n sendBack({\n type: 'updateContext',\n localId: newLocalId || localId,\n propertyValue: newImageSeedLocalId,\n refSeedType: 'image',\n refSchemaUid: imageSchemaUid,\n renderValue: refResolvedDisplayValue,\n refResolvedDisplayValue,\n refResolvedValue: fileName,\n localStorageDir: '/images',\n easDataType: 'bytes32',\n schemaUid,\n })\n }\n\n _saveImageSrc().then(() => {\n sendBack({ type: 'saveImageSrcSuccess' })\n })\n})\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { getDataTypeFromString } from '@/helpers'\n\nexport const saveRelation = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n propertyName: propertyNameRaw,\n versionLocalId,\n seedUid,\n seedLocalId,\n propertyValue: existingValue,\n propertyRecordSchema,\n } = context\n\n if (!propertyRecordSchema) {\n throw new Error('Missing propertyRecordSchema')\n }\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n const _saveRelation = async (): Promise<boolean> => {\n let refResolvedDisplayValue\n let refSeedType\n let propertyName = propertyNameRaw\n let versionLocalIdToSave = versionLocalId\n\n const refResolvedValue = newValue\n\n if (!propertyName.endsWith('Id')) {\n propertyName = `${propertyName}Id`\n }\n\n let newValueType\n\n if (typeof newValue === 'string') {\n newValueType = getDataTypeFromString(newValue)\n }\n\n if (newValue instanceof File) {\n newValueType = 'file'\n }\n\n if (propertyRecordSchema.dataType === 'ImageSrc') {\n sendBack({\n type: 'saveImageSrc',\n newValue,\n newValueType,\n })\n return false\n }\n\n return true\n\n // let fileType\n //\n // const dirs = await fs.promises.readdir('/files')\n //\n // for (const dir of dirs) {\n // const files = await fs.promises.readdir(`/files/${dir}`)\n // if (newValue && files.includes(newValue as string)) {\n // fileType = dir\n // break\n // }\n // }\n //\n // if (newValue && fileType === 'images') {\n // const filePath = `/files/images/${newValue}`\n // refResolvedDisplayValue = await getContentUrlFromPath(filePath)\n // refSeedType = 'image'\n // newValue = await createSeed({\n // type: refSeedType,\n // })\n // await createVersion({\n // seedLocalId,\n // seedUid,\n // seedType: refSeedType,\n // })\n // }\n //\n // await updateItemPropertyValue({\n // propertyLocalId: localId,\n // propertyName,\n // newValue,\n // seedLocalId,\n // refSeedType,\n // refResolvedValue,\n // refResolvedDisplayValue,\n // versionLocalId,\n // modelName: itemModelName,\n // schemaUid,\n // })\n }\n\n _saveRelation().then((isDone) => {\n if (isDone) {\n sendBack({ type: 'saveRelationSuccess' })\n }\n })\n})\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { metadata, MetadataType } from '@/seedSchema'\nimport { and, eq, getTableColumns } from 'drizzle-orm'\n\ntype GetItemPropertyProps = Partial<MetadataType>\n\ntype GetItemPropertyData = (\n props: GetItemPropertyProps,\n) => Promise<Partial<MetadataType>>\n\nexport const getItemPropertyData: GetItemPropertyData = async (props) => {\n const appDb = BaseDb.getAppDb()\n\n const whereClauses = []\n\n const tableColumns = getTableColumns(metadata)\n\n for (const [propertyName, propertyValue] of Object.entries(props)) {\n if (Object.keys(tableColumns).includes(propertyName)) {\n whereClauses.push(eq(tableColumns[propertyName], propertyValue))\n }\n }\n\n const queryRows = await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n\n if (!queryRows || queryRows.length === 0) {\n return\n }\n\n return queryRows[0]\n}\n","import { EventObject, fromCallback } from 'xstate'\nimport { FromCallbackInput } from '@/types/machines'\nimport {\n ItemPropertyValueType,\n PropertyMachineContext,\n SaveValueToDbEvent,\n} from '@/types/property'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { getItemPropertyData } from '@/db/read/getItemProperty'\nimport { getItemData } from '@/db/read/getItemData'\nimport { and, eq } from 'drizzle-orm'\nimport { metadata } from '@/seedSchema'\nimport { createMetadata } from '@/db/write/createMetadata'\nimport { BaseFileManager } from '@/helpers/FileManager/BaseFileManager'\n\nexport const saveItemStorage = fromCallback<\n EventObject,\n FromCallbackInput<PropertyMachineContext, SaveValueToDbEvent>\n>(({ sendBack, input: { context, event } }) => {\n const {\n localId,\n seedLocalId,\n seedUid,\n propertyName,\n propertyRecordSchema,\n modelName,\n propertyValue: existingValue,\n } = context\n\n if (!propertyRecordSchema) {\n throw new Error('Missing propertyRecordSchema')\n }\n\n let newValue: ItemPropertyValueType\n\n if (event) {\n newValue = event.newValue\n }\n\n if (existingValue === newValue) {\n sendBack({ type: 'saveValueToDbSuccess' })\n return\n }\n\n const _saveItemStorage = async (): Promise<boolean> => {\n // Save value to file\n const appDb = BaseDb.getAppDb()\n let propertyData\n\n if (localId) {\n propertyData = await getItemPropertyData({\n localId,\n })\n }\n\n if (!localId && seedLocalId) {\n const itemData = await getItemData({\n seedLocalId,\n })\n if (itemData) {\n const whereClauses = [\n eq(metadata.propertyName, propertyName),\n eq(metadata.seedLocalId, seedLocalId),\n ]\n\n if (itemData.latestVersionLocalId) {\n whereClauses.push(\n eq(metadata.versionLocalId, itemData.latestVersionLocalId),\n )\n }\n\n const queryRows = await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n\n if (queryRows && queryRows.length) {\n propertyData = queryRows[0]\n }\n\n if (!propertyData && newValue) {\n\n const filename = `${seedUid || seedLocalId}${propertyRecordSchema.filenameSuffix}`\n const writeToPath = `/files/${propertyRecordSchema.localStorageDir}/${filename}`\n await BaseFileManager.saveFile(writeToPath, newValue as string | Blob | ArrayBuffer)\n\n const propertyDataRows = await createMetadata(\n {\n propertyName,\n propertyValue: filename,\n modelType: modelName.toLowerCase(),\n seedLocalId,\n seedUid,\n versionLocalId: itemData.latestVersionLocalId,\n versionUid: itemData.latestVersionUid,\n localStorageDir: propertyRecordSchema.localStorageDir,\n refValueType: 'file',\n },\n propertyRecordSchema,\n )\n\n propertyData = propertyDataRows[0]\n }\n\n // propertyData = {\n // propertyName,\n // seedLocalId,\n // seedUid,\n // versionLocalId: itemData.latestVersionLocalId,\n // versionUid: itemData.latestVersionUid,\n // schemaUid: itemData.schemaUid,\n // }\n }\n }\n\n const localStorageDir =\n propertyRecordSchema.localStorageDir || propertyData.localStorageDir\n const fileName =\n propertyData.refResolvedValue ||\n `${propertyData.seedUid || propertyData.seedLocalId}${propertyRecordSchema.filenameSuffix}`\n\n if (!localStorageDir || !fileName) {\n throw new Error(\n `Missing localStorageDir: ${localStorageDir} or fileName: ${fileName}`,\n )\n }\n\n const filePath = `/files/${localStorageDir}/${fileName}`\n try {\n await BaseFileManager.saveFile(filePath, newValue as string | Blob | ArrayBuffer)\n } catch (error) {\n const fs = await BaseFileManager.getFs()\n fs.writeFileSync(filePath, newValue)\n }\n\n await appDb\n .update(metadata)\n .set({\n refResolvedValue: fileName,\n })\n .where(eq(metadata.localId, propertyData.localId))\n\n sendBack({\n type: 'updateContext',\n renderValue: newValue,\n })\n\n return true\n }\n\n _saveItemStorage().then((success) => {\n if (success) {\n sendBack({ type: 'saveItemStorageSuccess' })\n }\n })\n})\n","import { assign, setup } from 'xstate'\nimport { PropertyMachineContext } from '@/types'\n\nimport { resolveRemoteStorage } from '@/ItemProperty/service/actors/resolveRemoteStorage'\nimport { waitForDb } from '@/ItemProperty/service/actors/waitForDb'\nimport { initialize } from '@/ItemProperty/service/actors/initialize'\nimport { resolveRelatedValue } from '@/ItemProperty/service/actors/resolveRelatedValue'\nimport { hydrateFromDb } from '@/ItemProperty/service/actors/hydrateFromDb'\nimport {\n saveImageSrc,\n saveItemStorage,\n saveRelation,\n} from '@/ItemProperty/service/actors/saveValueToDb'\nimport { analyzeInput } from '@/ItemProperty/service/actors/saveValueToDb/analyzeInput' // import { updateMachineContext } from '@/helpers'\n// import { updateMachineContext } from '@/helpers'\n\nexport const propertyMachine = setup({\n types: {\n context: {} as PropertyMachineContext,\n input: {} as PropertyMachineContext,\n },\n // actions: {\n // updateContext: updateMachineContext,\n // },\n actors: {\n waitForDb,\n hydrateFromDb,\n initialize,\n resolveRelatedValue,\n resolveRemoteStorage,\n analyzeInput,\n saveImageSrc,\n saveRelation,\n saveItemStorage,\n },\n}).createMachine({\n id: 'itemProperty',\n initial: 'waitingForDb',\n context: ({ input }) => input as PropertyMachineContext,\n on: {\n // reload: '.hydratingFromDb',\n save: {\n actions: assign({\n isSaving: true,\n }),\n target: '.saving',\n },\n updateContext: {\n actions: assign(({ context, event }) => {\n const newContext = Object.assign({}, context)\n\n for (let i = 0; i < Object.keys(event).length; i++) {\n const key = Object.keys(event)[i]\n if (key === 'type') {\n continue\n }\n newContext[key] = event[key]\n }\n return newContext\n }),\n },\n },\n states: {\n idle: {},\n waitingForDb: {\n on: {\n waitForDbSuccess: {\n target: 'hydratingFromDb',\n actions: assign({\n isDbReady: true,\n }),\n },\n },\n invoke: {\n src: 'waitForDb',\n input: ({ context }) => ({ context }),\n },\n },\n hydratingFromDb: {\n on: {\n hydrateFromDbSuccess: 'initializing',\n },\n invoke: {\n src: 'hydrateFromDb',\n input: ({ context }) => ({ context }),\n },\n },\n initializing: {\n on: {\n initializeSuccess: 'idle',\n isRelatedProperty: {\n target: 'resolvingRelatedValue',\n },\n hasRemoteBackup: {\n target: 'resolvingRemoteStorage',\n },\n },\n invoke: {\n src: 'initialize',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n resolvingRelatedValue: {\n on: {\n resolvingRelatedValueSuccess: {\n target: 'idle',\n actions: assign({\n refResolvedDisplayValue: ({ event }) =>\n event.refResolvedDisplayValue,\n refResolvedValue: ({ event }) => event.refResolvedValue,\n }),\n },\n resolvingRelatedValueDone: {\n target: 'idle',\n },\n },\n invoke: {\n src: 'resolveRelatedValue',\n input: ({ context }) => ({ context }),\n },\n },\n resolvingRemoteStorage: {\n on: {\n resolveRemoteStorageSuccess: {\n target: 'idle',\n },\n },\n invoke: {\n src: 'resolveRemoteStorage',\n input: ({ context }) => ({ context }),\n },\n },\n saving: {\n initial: 'analyzingInput',\n states: {\n analyzingInput: {\n on: {\n saveValueToDbSuccess: {\n target: 'doneSaving',\n },\n saveImageSrc: 'savingImageSrc',\n saveRelation: 'savingRelation',\n saveItemStorage: 'savingItemStorage',\n },\n invoke: {\n src: 'analyzeInput',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n savingImageSrc: {\n on: {\n saveImageSrcSuccess: 'doneSaving',\n },\n invoke: {\n src: 'saveImageSrc',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n savingRelation: {\n on: {\n saveRelationSuccess: 'doneSaving',\n },\n invoke: {\n src: 'saveRelation',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n savingItemStorage: {\n on: {\n saveItemStorageSuccess: 'doneSaving',\n },\n invoke: {\n src: 'saveItemStorage',\n input: ({ context, event }) => ({ context, event }),\n },\n },\n doneSaving: {\n type: 'final',\n },\n },\n onDone: {\n target: 'idle',\n actions: assign(({ context }) => {\n return {\n isSaving: false,\n }\n }),\n },\n },\n },\n\n // conflict: {\n // on: {\n // resolveConflict: {\n // target: 'saving',\n // actions: assign({\n // data: ({ context, event }) => event.output,\n // }),\n // },\n // },\n // },\n})\n","import { PropertyData } from \"@/types\"\nimport { BaseDb } from \"@/db/Db/BaseDb\"\nimport { metadata, MetadataType } from \"@/seedSchema\"\nimport { or, eq, and, sql } from \"drizzle-orm\"\nimport { startCase } from \"lodash-es\"\nimport { GetPropertyDataOptions } from \"@/types/db\"\n\n\nexport const getPropertyData = async ({\n propertyName,\n seedLocalId,\n seedUid,\n}: GetPropertyDataOptions): Promise<PropertyData | undefined> => {\n const appDb = BaseDb.getAppDb()\n\n const whereClauses: any[] = [\n or(\n eq(metadata.propertyName, propertyName),\n eq(metadata.propertyName, propertyName + 'Id'),\n eq(metadata.propertyName, propertyName + 'Ids'),\n ),\n ]\n\n if (seedLocalId) {\n whereClauses.push(eq(metadata.seedLocalId, seedLocalId))\n }\n\n if (seedUid) {\n whereClauses.push(eq(metadata.seedUid, seedUid))\n }\n\n const rows = (await appDb\n .select()\n .from(metadata)\n .where(and(...whereClauses))\n .orderBy(\n sql.raw(`COALESCE(attestation_created_at, created_at) DESC`),\n )) as MetadataType[]\n\n if (!rows || rows.length === 0) {\n return\n }\n\n const row = rows[0]\n\n return {\n ...row,\n modelName: startCase(row.modelType),\n }\n} ","import { ActorRefFrom, createActor, SnapshotFrom, Subscription, waitFor } from 'xstate'\nimport { BehaviorSubject, Subscriber } from 'rxjs'\nimport { Static } from '@sinclair/typebox'\nimport { IItemProperty } from '@/interfaces/IItemProperty'\nimport { immerable } from 'immer'\nimport { CreatePropertyInstanceProps, PropertyMachineContext } from '@/types'\nimport { getModel } from '@/stores/modelClass'\nimport { propertyMachine } from './service/propertyMachine'\nimport { internalPropertyNames } from '@/helpers/constants'\nimport debug from 'debug'\nimport pluralize from 'pluralize'\nimport { getPropertyData } from '@/db/read/getPropertyData'\nimport { BaseFileManager, getCorrectId } from '@/helpers'\nimport { TProperty } from '@/schema'\n\n\nconst logger = debug('seedSdk:property:class')\n\ntype ItemPropertyService = ActorRefFrom<typeof propertyMachine>\ntype ItemPropertySnapshot = SnapshotFrom<typeof propertyMachine>\n\ntype ItemPropertyFindProps = {\n propertyName: string\n propertyLocalId?: string\n seedLocalId?: string\n seedUid?: string\n}\n\nexport abstract class BaseItemProperty<PropertyType> implements IItemProperty<PropertyType> {\n protected static instanceCache: Map<\n string,\n { instance: BaseItemProperty<any>; refCount: number }\n > = new Map()\n protected readonly _service: ItemPropertyService\n protected _subject: BehaviorSubject<any>\n protected readonly _isRelation: boolean = false\n protected readonly _isList: boolean = false\n protected readonly _alias: string | undefined\n protected _subscription: Subscription\n protected _dataType: string | undefined\n protected _schemaUid: string | undefined\n [immerable] = true\n\n constructor(initialValues: Partial<CreatePropertyInstanceProps>) {\n const { modelName, propertyName, propertyValue, seedLocalId, seedUid, versionLocalId, versionUid, storageTransactionId, schemaUid } = initialValues\n\n if (!modelName) {\n throw new Error('Model name is required')\n }\n\n const ModelClass = getModel(modelName)\n\n if (!ModelClass) {\n throw new Error(`Model ${modelName} not found`)\n }\n\n if (!propertyName) {\n throw new Error(`Property name not provided`)\n }\n\n const serviceInput: Partial<PropertyMachineContext> = {\n propertyValue,\n propertyName,\n seedLocalId,\n seedUid,\n versionLocalId,\n versionUid,\n modelName: modelName,\n storageTransactionId,\n propertyRecordSchema: ModelClass.schema[propertyName],\n schemaUid,\n }\n\n\n\n if (!internalPropertyNames.includes(propertyName)) {\n let propertyNameWithoutId\n\n const propertyRecordSchema =\n ModelClass.schema[propertyNameWithoutId || propertyName]\n if (propertyRecordSchema) {\n this._dataType = propertyRecordSchema.dataType\n\n serviceInput.propertyRecordSchema = propertyRecordSchema\n\n if (propertyRecordSchema.dataType === 'Relation') {\n this._isRelation = true\n }\n\n if (\n propertyRecordSchema.dataType === 'List' &&\n propertyRecordSchema.ref\n ) {\n this._isList = true\n this._isRelation = true\n\n if (propertyValue) {\n try {\n serviceInput.propertyValue = JSON.parse(propertyValue)\n } catch (e) {\n logger('List property value is not JSON', e)\n }\n }\n\n const propertyNameSingular = pluralize(propertyName!, 1)\n\n this._alias = propertyName\n\n serviceInput.propertyName = `${propertyNameSingular}${propertyRecordSchema.ref}Ids`\n }\n\n if (!this._alias && propertyNameWithoutId) {\n this._alias = propertyNameWithoutId\n }\n }\n }\n\n serviceInput.isRelation = this._isRelation\n\n this._subject = new BehaviorSubject(propertyValue)\n this._service = createActor(propertyMachine, {\n input: serviceInput,\n })\n\n this._subscription = this._service.subscribe(\n async (snapshot: ItemPropertySnapshot) => {\n if (!snapshot || !snapshot.context) {\n return\n }\n\n const { context } = snapshot\n const { propertyRecordSchema } = context\n\n if (context.seedLocalId) {\n const cacheKey = BaseItemProperty.cacheKey(\n context.seedLocalId,\n context.propertyName,\n )\n if (!BaseItemProperty.instanceCache.has(cacheKey)) {\n BaseItemProperty.instanceCache.set(cacheKey, {\n instance: this,\n refCount: 1,\n })\n }\n }\n\n let renderValue\n\n if (\n propertyRecordSchema &&\n propertyRecordSchema.storageType &&\n propertyRecordSchema.storageType === 'ItemStorage' &&\n context.refResolvedValue &&\n context.localStorageDir\n ) {\n const filePath = `/files/${context.localStorageDir}/${context.refResolvedValue}`\n try {\n const exists = await BaseFileManager.pathExists(filePath)\n if (exists) {\n renderValue = await BaseFileManager.readFileAsString(filePath,)\n }\n if (!exists) {\n renderValue = 'No file found'\n }\n } catch (e) {\n logger(\n `[ItemProperty] [${context.seedLocalId}] [${context.propertyName}] [storageType] error`,\n e,\n )\n renderValue = 'No file found'\n }\n }\n\n if (!renderValue) {\n renderValue = context.renderValue || context.propertyValue\n }\n\n let transformedPropertyName = propertyName\n\n const skipTransform =\n internalPropertyNames.includes(propertyName) || !!this._alias\n\n if (!skipTransform && transformedPropertyName.endsWith('Id')) {\n transformedPropertyName = transformedPropertyName.slice(0, -2)\n }\n\n if (!skipTransform && transformedPropertyName.endsWith('Ids')) {\n transformedPropertyName = transformedPropertyName.slice(0, -3)\n }\n\n if (skipTransform && this._alias) {\n transformedPropertyName = this._alias\n }\n\n if (skipTransform && !this._alias) {\n }\n\n if (this._subject.value === renderValue) {\n return\n }\n\n this._subject.next(renderValue)\n // TODO: Maybe have this only update the property?\n // if (context.seedLocalId || context.seedUid) {\n // eventEmitter.emit(`property.${context.seedUid || context.seedLocalId}.${propertyName}.update`)\n // }\n // if (context.seedUid) {\n // eventEmitter.emit(`item.${modelName}.${context.seedUid}.update`)\n // }\n },\n )\n\n this._service.start()\n }\n\n static PlatformClass: typeof BaseItemProperty\n\n static setPlatformClass(platformClass: typeof BaseItemProperty) {\n this.PlatformClass = platformClass\n }\n\n static create(\n props: Partial<CreatePropertyInstanceProps>,\n ): BaseItemProperty<any> | undefined {\n const { propertyName, seedLocalId, seedUid, versionLocalId, versionUid } =\n props\n if (!propertyName || (!seedLocalId && !seedUid)) {\n return\n }\n const cacheKey = this.cacheKey(\n (seedUid || seedLocalId) as string,\n propertyName,\n )\n if (seedLocalId && propertyName) {\n if (this.instanceCache.has(cacheKey)) {\n const { instance, refCount } = this.instanceCache.get(cacheKey)!\n this.instanceCache.set(cacheKey, {\n instance,\n refCount: refCount + 1,\n })\n return instance\n }\n if (!this.instanceCache.has(cacheKey)) {\n const newInstance = new this(props)\n this.instanceCache.set(cacheKey, {\n instance: newInstance,\n refCount: 1,\n })\n return newInstance\n }\n }\n if (seedUid && propertyName) {\n if (this.instanceCache.has(cacheKey)) {\n const { instance, refCount } = this.instanceCache.get(cacheKey)!\n this.instanceCache.set(cacheKey, { instance, refCount: refCount + 1 })\n return instance\n }\n if (!this.instanceCache.has(cacheKey)) {\n const newInstance = new this(props)\n this.instanceCache.set(cacheKey, { instance: newInstance, refCount: 1 })\n return newInstance\n }\n }\n return new this(props)\n }\n\n static async find({\n propertyName,\n seedLocalId,\n seedUid,\n }: ItemPropertyFindProps): Promise<IItemProperty<any> | undefined> {\n if ((!seedLocalId && !seedUid) || !propertyName) {\n return\n }\n const cacheKeyId = seedUid || seedLocalId\n const cacheKey = BaseItemProperty.cacheKey(cacheKeyId!, propertyName)\n if (this.instanceCache.has(cacheKey)) {\n const { instance, refCount } = this.instanceCache.get(cacheKey)!\n this.instanceCache.set(cacheKey, {\n instance,\n refCount: refCount + 1,\n })\n return instance\n }\n const propertyData = await getPropertyData({\n propertyName,\n seedLocalId,\n seedUid,\n })\n if (!propertyData) {\n return\n }\n return BaseItemProperty.create(propertyData)\n }\n\n static cacheKey(seedLocalIdOrUid: string, propertyName: string): string {\n const { uid, localId } = getCorrectId(seedLocalIdOrUid)\n return `Item_${uid || localId}_${propertyName}`\n }\n\n getService() {\n return this._service\n }\n\n private _getSnapshot(): ItemPropertySnapshot {\n return this._service.getSnapshot() as ItemPropertySnapshot\n }\n\n get localId() {\n return this._getSnapshot().context.localId\n }\n\n get uid() {\n return this._getSnapshot().context.uid\n }\n\n get seedLocalId() {\n return this._getSnapshot().context.seedLocalId\n }\n\n get seedUid() {\n return this._getSnapshot().context.seedUid\n }\n\n get schemaUid() {\n return this._getSnapshot().context.schemaUid\n }\n\n get propertyName() {\n if (this._alias) {\n return this._alias\n }\n return this._getSnapshot().context.propertyName\n }\n\n get modelName() {\n return this._getSnapshot().context.modelName\n }\n\n get propertyDef(): Static<typeof TProperty> | undefined {\n return this._getSnapshot().context.propertyRecordSchema\n }\n\n get localStoragePath(): string | void {\n if (this.propertyDef && this.propertyDef.localStorageDir) {\n return `/files${this.propertyDef.localStorageDir}/${this._getSnapshot().context.refResolvedValue}`\n }\n if (this._getSnapshot().context.localStorageDir) {\n return `/files${this._getSnapshot().context.localStorageDir}/${this._getSnapshot().context.refResolvedValue}`\n }\n }\n\n get versionLocalId(): string | undefined {\n return this._getSnapshot().context.versionLocalId\n }\n\n get status() {\n return this._getSnapshot().value\n }\n\n get alias() {\n return this._alias\n }\n\n get value() {\n // logger(\n // `[XXXXXXXXXX] [value] [get] subjectValue: ${this._subject.value} serviceValue: ${this._service.getSnapshot().context.renderValue}`,\n // )\n return this._subject.value\n }\n\n set value(value: any) {\n if (this._subject.value === value) {\n return\n }\n const context = this._service.getSnapshot().context\n if (!context.propertyRecordSchema) {\n this._subject.next(value)\n }\n this._service.send({\n type: 'save',\n newValue: value,\n })\n }\n\n get published(): boolean {\n return !!this._getSnapshot().context.uid\n }\n\n subscribe(callback: Partial<Subscriber<any>>) {\n return this._subject.subscribe(callback)\n }\n\n async save(): Promise<void> {\n await waitFor(\n this._service,\n (snapshot) => !snapshot.context.isSaving && snapshot.value === 'idle',\n {\n timeout: 10_000,\n },\n )\n // return new Promise((resolve) => {\n // const saveSub = this._service.subscribe((snapshot) => {\n // if (!snapshot.context.isSaving) {\n // saveSub.unsubscribe()\n // resolve()\n // }\n // })\n // })\n }\n\n unload() {\n this._service.stop()\n }\n} ","import { UploadProperty } from '@/db/read/getPublishUploads'\nimport { IItem } from '@/interfaces'\n\nexport const getSegmentedItemProperties = (item: IItem<any>) => {\n const itemBasicProperties = []\n const itemRelationProperties = []\n const itemListProperties = []\n const itemUploadProperties: UploadProperty[] = []\n const itemStorageProperties = []\n let itemStorageTransactionProperty: UploadProperty | undefined\n\n for (const itemProperty of Object.values(item.properties)) {\n if (!itemProperty.propertyDef) {\n continue\n }\n\n const isItemStorage =\n itemProperty.propertyDef.storageType &&\n itemProperty.propertyDef.storageType === 'ItemStorage'\n\n const isImageSrc =\n itemProperty.propertyDef.dataType === 'Relation' &&\n itemProperty.propertyDef.refValueType === 'ImageSrc'\n\n const isStorageTransaction =\n itemProperty.propertyName === 'storageTransactionId'\n\n if (itemProperty.propertyDef.dataType === 'Relation') {\n itemRelationProperties.push(itemProperty)\n continue\n }\n\n if (itemProperty.propertyDef.dataType === 'List') {\n itemListProperties.push(itemProperty)\n continue\n }\n\n if (isItemStorage) {\n itemStorageProperties.push(itemProperty)\n continue\n }\n\n if (isStorageTransaction) {\n itemStorageTransactionProperty = { itemProperty, childProperties: [] }\n continue\n }\n\n itemBasicProperties.push(itemProperty)\n }\n\n if (itemStorageTransactionProperty && itemStorageProperties.length > 0) {\n itemStorageTransactionProperty.childProperties = itemStorageProperties\n }\n\n if (itemStorageTransactionProperty) {\n itemUploadProperties.push(itemStorageTransactionProperty)\n }\n\n return {\n itemBasicProperties,\n itemRelationProperties,\n itemListProperties,\n itemUploadProperties,\n }\n}\n","import Transaction from 'arweave'\nimport { CreateTransactionInterface } from 'arweave/web'\nimport { getArweave } from '@/helpers/ArweaveClient'\nimport { BaseFileManager, getCorrectId } from '@/helpers'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport debug from 'debug'\nimport { IItem, IItemProperty } from '@/interfaces'\nimport { getContentHash } from '@/helpers'\nimport { BaseItem } from '@/Item/BaseItem'\nconst logger = debug('seedSdk:item:getPublishUploads')\n\n\nexport const prepareArweaveTransaction = async (\n data: string | Uint8Array,\n contentHash: string | undefined,\n): Promise<Transaction> => {\n const transactionData: Partial<CreateTransactionInterface> = {\n data,\n tags: [],\n }\n\n const tx = await getArweave()!.createTransaction(transactionData)\n\n if (contentHash) {\n logger('contentHash', contentHash)\n logger('adding content hash tag to tx.id:', tx.id)\n tx.addTag('Content-SHA-256', contentHash)\n }\n\n return tx\n}\nexport type UploadProperty = {\n itemProperty: IItemProperty<any>\n childProperties: IItemProperty<any>[]\n}\ntype ChildUploadData = {\n propertyName: string\n localStoragePath: string\n}\nconst processUploadProperty = async (\n uploadProperty: UploadProperty,\n uploads: PublishUpload[],\n relatedItemProperty?: IItemProperty<any>,\n): Promise<PublishUpload[]> => {\n const itemProperty = uploadProperty.itemProperty\n\n const childUploads: ChildUploadData[] = []\n\n for (const childProperty of uploadProperty.childProperties) {\n const filePath = childProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n continue\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n continue\n }\n\n childUploads.push({\n propertyName: childProperty.propertyName,\n localStoragePath: filePath,\n })\n }\n\n let fileContents\n let transaction: Transaction\n\n if (!childUploads || childUploads.length === 0) {\n if (relatedItemProperty && relatedItemProperty.localStoragePath) {\n const filePath = relatedItemProperty.localStoragePath\n\n if (!filePath || filePath.endsWith('undefined')) {\n return uploads\n }\n\n const exists = await BaseFileManager.pathExists(filePath)\n if (!exists) {\n return uploads\n\n }\n\n try {\n fileContents = await BaseFileManager.readFileAsString(filePath)\n } catch (e) {\n const fs = await BaseFileManager.getFs()\n fileContents = fs.readFileSync(filePath)\n }\n }\n if (!fileContents) {\n return uploads\n }\n }\n\n if (childUploads.length > 0) {\n const separator = '===FILE_SEPARATOR==='\n // let compositeFileContents = `${itemProperty.propertyName}${separator}${mainFileContents}`\n let compositeFileContents = ''\n\n for (const childUpload of childUploads) {\n let childUploadContents\n\n try {\n childUploadContents = await fs.promises.readFile(\n childUpload.localStoragePath,\n )\n } catch (e) {\n childUploadContents = fs.readFileSync(childUpload.localStoragePath)\n }\n\n compositeFileContents += `${separator}${childUpload.propertyName}${separator}${childUploadContents}`\n }\n\n fileContents = Buffer.from(compositeFileContents)\n }\n\n if (!fileContents) {\n throw new Error(`No file contents found for ${itemProperty.propertyName}`)\n }\n\n const uint8Array = new Uint8Array(\n fileContents.buffer,\n fileContents.byteOffset,\n fileContents.byteLength,\n )\n\n const contentHash = await getContentHash(null, uint8Array)\n\n transaction = await prepareArweaveTransaction(fileContents, contentHash)\n\n let itemPropertyLocalId = relatedItemProperty\n ? relatedItemProperty.localId\n : itemProperty.localId\n let itemPropertyName = relatedItemProperty\n ? relatedItemProperty.propertyName\n : itemProperty.propertyName\n\n uploads.push({\n itemPropertyName,\n itemPropertyLocalId,\n seedLocalId: itemProperty.seedLocalId!,\n versionLocalId: itemProperty.versionLocalId!,\n transactionToSign: transaction,\n })\n\n return uploads\n}\nexport type PublishUpload = {\n itemPropertyName: string\n itemPropertyLocalId: string\n seedLocalId: string\n versionLocalId: string\n transactionToSign: Transaction\n}\nexport const getPublishUploads = async (\n item: IItem<any>,\n uploads: PublishUpload[] = [],\n relatedItemProperty?: IItemProperty<any>,\n) => {\n // if (item.modelName === 'Post') {\n // if (!item.authors) {\n // item.authors = [\n // 'Sr0bIx9Fwj',\n // '0xc2879650e9503a303ceb46f966e55baab480b267dc20cede23ef503622eee6d7',\n // ]\n // }\n // }\n\n const { itemUploadProperties, itemRelationProperties } =\n getSegmentedItemProperties(item)\n\n for (const uploadProperty of itemUploadProperties) {\n uploads = await processUploadProperty(\n uploadProperty,\n uploads,\n relatedItemProperty,\n )\n }\n\n for (const relationProperty of itemRelationProperties) {\n const propertyValue = relationProperty.getService().getSnapshot()\n .context.propertyValue\n\n if (!propertyValue || relationProperty.uid) {\n continue\n }\n\n const { localId: seedLocalId, uid: seedUid } = getCorrectId(propertyValue)\n\n const relatedItem = await BaseItem.find({\n seedLocalId,\n seedUid,\n })\n\n if (!relatedItem) {\n throw new Error(\n `No relatedItem found for ${relationProperty.propertyName}`,\n )\n }\n\n uploads = await getPublishUploads(relatedItem, uploads, relationProperty)\n }\n\n return uploads\n}\n","import { getItemData } from './getItemData'\nimport { GetItem } from '@/types'\nimport { BaseItem } from '@/Item/BaseItem'\nimport { startCase } from 'lodash-es'\n\nexport const getItem: GetItem = async ({ modelName, seedLocalId, seedUid }) => {\n const itemInitObj = await getItemData({\n modelName,\n seedLocalId,\n seedUid,\n })\n\n if (!itemInitObj) {\n console.error(\n `[db/queries] [getItem] no itemInitObj modelName: ${modelName} seedLocalId: ${seedLocalId} seedUid: ${seedUid}`,\n )\n return\n }\n\n if (!itemInitObj.seedLocalId) {\n console.error(\n `[db/queries] [getItem] no itemInitObj.seedLocalId modelName: ${modelName} seedLocalId: ${seedLocalId} seedUid: ${seedUid}`,\n )\n return\n }\n\n if (!itemInitObj.modelName && itemInitObj.type) {\n itemInitObj.modelName = startCase(itemInitObj.type)\n }\n\n return BaseItem.create(itemInitObj)\n}\n","import { getItem } from '@/db/read/getItem'\nimport {\n defaultAttestationData,\n INTERNAL_DATA_TYPES,\n VERSION_SCHEMA_UID_OPTIMISM_SEPOLIA,\n} from '@/helpers/constants'\nimport {\n AttestationRequest,\n SchemaEncoder,\n ZERO_BYTES32,\n} from '@ethereum-attestation-service/eas-sdk'\n\nimport { getSchemaForItemProperty } from '@/helpers/getSchemaForItemProperty'\nimport { toSnakeCase } from '@/helpers'\nimport pluralize from 'pluralize'\nimport { getSchemaUidForModel } from '@/db/read/getSchemaUidForModel'\nimport { getSchemaUidForSchemaDefinition } from '@/stores/eas'\nimport { getCorrectId } from '@/helpers'\nimport { getSegmentedItemProperties } from '@/helpers/getSegmentedItemProperties'\nimport { IItemProperty } from '@/interfaces'\nimport { IItem } from '@/interfaces'\nimport { BaseItem } from '@/Item/BaseItem'\n\nconst getVersionUid = (item: IItem<any>) => {\n let versionUid\n\n if (\n item.latestVersionUid &&\n item.latestVersionUid !== 'NULL' &&\n item.latestVersionUid !== 'undefined'\n ) {\n versionUid = item.latestVersionUid\n }\n return versionUid || ZERO_BYTES32\n}\n\nconst getPropertyData = async (itemProperty: IItemProperty<any>) => {\n const easDataType =\n INTERNAL_DATA_TYPES[itemProperty.propertyDef!.dataType].eas\n\n let schemaUid: string | undefined = itemProperty.schemaUid\n\n const propertyNameForSchema = toSnakeCase(itemProperty.propertyName)\n\n const schemaDef = `${easDataType} ${propertyNameForSchema}`\n\n if (!schemaUid) {\n schemaUid = getSchemaUidForSchemaDefinition(schemaDef)\n if (!schemaUid) {\n const schema = await getSchemaForItemProperty({\n propertyName: 'version',\n easDataType: 'bytes32',\n })\n if (schema) {\n schemaUid = schema.id\n }\n }\n }\n\n return {\n schemaUid,\n easDataType,\n schemaDef,\n propertyNameForSchema,\n }\n}\n\nconst processBasicProperties = async (\n itemBasicProperties: IItemProperty<any>[],\n itemPublishData: PublishPayload,\n): Promise<PublishPayload> => {\n for (const basicProperty of itemBasicProperties) {\n const value = basicProperty.getService().getSnapshot().context.propertyValue\n\n if (!value || basicProperty.uid) {\n continue\n }\n\n const { schemaUid, easDataType, schemaDef } =\n await getPropertyData(basicProperty)\n\n const propertyNameForSchema = toSnakeCase(basicProperty.propertyName)\n\n const data = [\n {\n name: propertyNameForSchema,\n type: easDataType,\n value,\n },\n ]\n\n const dataEncoder = new SchemaEncoder(schemaDef)\n\n const encodedData = dataEncoder.encodeData(data)\n\n itemPublishData.listOfAttestations.push({\n schema: schemaUid!,\n data: [\n {\n ...defaultAttestationData,\n data: encodedData,\n },\n ],\n })\n }\n\n return itemPublishData\n}\n\nconst processRelationProperty = async (\n relationProperty: IItemProperty<any>,\n multiPublishPayload: MultiPublishPayload,\n uploadedTransactions: UploadedTransaction[],\n originalSeedLocalId: string,\n): Promise<MultiPublishPayload> => {\n const value = relationProperty.getService().getSnapshot()\n .context.propertyValue\n if (!value || relationProperty.uid) {\n return multiPublishPayload\n }\n\n const { localId: seedLocalId, uid: seedUid } = getCorrectId(value)\n\n const relatedItem = await getItem({\n seedLocalId,\n seedUid,\n })\n\n if (!relatedItem) {\n throw new Error(\n `No related item found for relation property: ${relationProperty.propertyName}`,\n )\n }\n\n const versionUid = getVersionUid(relatedItem)\n\n const seedSchemaUid = await getSchemaUidForModel(\n relationProperty.propertyDef!.ref as string,\n )\n\n let publishPayload: PublishPayload = {\n localId: relationProperty.localId,\n seedIsRevocable: true,\n versionSchemaUid: VERSION_SCHEMA_UID_OPTIMISM_SEPOLIA,\n seedUid: seedUid || ZERO_BYTES32,\n seedSchemaUid,\n versionUid,\n listOfAttestations: [],\n propertiesToUpdate: [\n {\n publishLocalId: originalSeedLocalId,\n propertySchemaUid: relationProperty.schemaUid,\n },\n ],\n }\n\n const { itemBasicProperties, itemUploadProperties } =\n getSegmentedItemProperties(relatedItem)\n\n if (itemUploadProperties.length === 1) {\n const uploadProperty = itemUploadProperties[0]\n const itemProperty = uploadProperty.itemProperty\n const transactionData = uploadedTransactions.find(\n (transaction) => transaction.seedLocalId === relatedItem.seedLocalId,\n )\n if (transactionData) {\n itemProperty.value = transactionData.txId\n await itemProperty.save()\n itemBasicProperties.push(itemProperty)\n }\n }\n\n publishPayload = await processBasicProperties(\n itemBasicProperties,\n publishPayload,\n )\n\n multiPublishPayload.push(publishPayload)\n\n return multiPublishPayload\n}\n\nconst processListProperty = async (\n listProperty: IItemProperty<any>,\n multiPublishPayload: MultiPublishPayload,\n originalSeedLocalId: string,\n): Promise<MultiPublishPayload> => {\n let value = listProperty.getService().getSnapshot().context.propertyValue\n if (!value || listProperty.uid) {\n return multiPublishPayload\n }\n\n const singularPropertyName = pluralize.singular(listProperty.propertyName)\n const propertyNameForSchema = `${singularPropertyName}${listProperty.propertyDef!.ref}Ids`\n if (typeof value === 'string' && value.length === 66) {\n value = [value]\n }\n if (typeof value === 'string' && value.length > 66) {\n try {\n value = JSON.parse(value)\n } catch (error) {\n value = value.split(',')\n }\n }\n\n for (const seedId of value) {\n const { localId: seedLocalId, uid: seedUid } = getCorrectId(seedId)\n\n const relatedItem = await getItem({\n seedLocalId,\n seedUid,\n })\n\n if (!relatedItem) {\n console.error(\n `No related item found for list property: ${listProperty.propertyName}`,\n )\n continue\n }\n\n if (relatedItem.seedUid) {\n return multiPublishPayload\n }\n\n const versionUid = getVersionUid(relatedItem)\n\n const seedSchemaUid = await getSchemaUidForModel(\n listProperty.propertyDef!.ref as string,\n )\n\n let publishPayload: PublishPayload = {\n localId: relatedItem.seedLocalId,\n seedIsRevocable: true,\n versionSchemaUid: VERSION_SCHEMA_UID_OPTIMISM_SEPOLIA,\n seedUid: seedUid || ZERO_BYTES32,\n seedSchemaUid,\n versionUid,\n listOfAttestations: [],\n propertiesToUpdate: [\n {\n publishLocalId: originalSeedLocalId,\n propertySchemaUid: listProperty.schemaUid,\n },\n ],\n }\n\n const { itemBasicProperties } = getSegmentedItemProperties(relatedItem)\n\n publishPayload = await processBasicProperties(\n itemBasicProperties,\n publishPayload,\n )\n\n multiPublishPayload.push(publishPayload)\n }\n\n return multiPublishPayload\n}\n\ntype PublishPayload = {\n localId: string\n seedIsRevocable: boolean\n seedSchemaUid: string\n seedUid: string\n versionSchemaUid: string\n versionUid: string\n listOfAttestations: AttestationRequest[]\n propertiesToUpdate: any[]\n}\n\ntype MultiPublishPayload = PublishPayload[]\n\ntype UploadedTransaction = {\n txId: string\n itemPropertyLocalId?: string\n seedLocalId?: string\n versionLocalId?: string\n itemPropertyName?: string\n}\n\nexport const getPublishPayload = async (\n item: BaseItem<any>,\n uploadedTransactions: UploadedTransaction[],\n): Promise<MultiPublishPayload> => {\n\n let multiPublishPayload: MultiPublishPayload = []\n\n // Each PublishPayload is generated from a Seed that needs publishing\n\n // First we need to determine all Seeds to publish\n\n // That means the Seed of the Item, plus any Seeds pointed to by Relations\n\n let itemPublishData: PublishPayload = {\n localId: item.seedLocalId,\n seedUid: item.seedUid || ZERO_BYTES32,\n seedIsRevocable: true,\n seedSchemaUid: item.schemaUid,\n versionSchemaUid: VERSION_SCHEMA_UID_OPTIMISM_SEPOLIA,\n versionUid: getVersionUid(item),\n listOfAttestations: [],\n propertiesToUpdate: [],\n }\n\n const {\n itemBasicProperties,\n itemRelationProperties,\n itemListProperties,\n itemUploadProperties,\n } = getSegmentedItemProperties(item)\n\n if (itemUploadProperties.length === 1) {\n const uploadProperty = itemUploadProperties[0]\n const itemProperty = uploadProperty.itemProperty\n const transactionData = uploadedTransactions.find(\n (transaction) => transaction.seedLocalId === item.seedLocalId,\n )\n if (transactionData) {\n itemProperty.value = transactionData.txId\n await itemProperty.save()\n itemBasicProperties.push(itemProperty)\n }\n }\n\n for (const relationProperty of itemRelationProperties) {\n multiPublishPayload = await processRelationProperty(\n relationProperty,\n multiPublishPayload,\n uploadedTransactions,\n item.seedLocalId,\n )\n itemBasicProperties.push(relationProperty)\n }\n\n for (const listProperty of itemListProperties) {\n multiPublishPayload = await processListProperty(\n listProperty,\n multiPublishPayload,\n item.seedLocalId,\n )\n itemBasicProperties.push(listProperty)\n }\n \n itemPublishData = await processBasicProperties(\n itemBasicProperties,\n itemPublishData,\n )\n\n multiPublishPayload.push(itemPublishData)\n\n\n \n\n return multiPublishPayload\n}\n","import { ModelValues } from '@/types'\nimport { getModel } from '@/stores/modelClass'\nimport { createSeed } from './createSeed'\nimport { createVersion } from './createVersion'\nimport { createMetadata } from './createMetadata'\nimport { toSnakeCase } from 'drizzle-orm/casing'\nimport { eventEmitter } from '@/eventBus'\n\ntype CreateNewItemProps = Partial<ModelValues<any>> & {\n modelName: string\n}\n\ntype CreateNewItemReturnType = {\n modelName: string\n seedLocalId: string\n versionLocalId: string\n}\n\nexport const createNewItem = async ({\n modelName,\n ...propertyData\n}: CreateNewItemProps): Promise<CreateNewItemReturnType> => {\n if (!modelName) {\n throw new Error('A model name is required for createNewItem')\n }\n\n const seedType = toSnakeCase(modelName)\n\n const newSeedId = await createSeed({ type: seedType })\n\n const newVersionId = await createVersion({ seedLocalId: newSeedId, seedType: toSnakeCase(modelName) })\n\n const propertySchemas = getModel(modelName)?.schema\n\n for (const [propertyName, propertyValue] of Object.entries(propertyData)) {\n let propertyRecordSchema\n\n if (propertySchemas && propertySchemas[propertyName]) {\n propertyRecordSchema = propertySchemas[propertyName]\n }\n\n await createMetadata(\n {\n seedLocalId: newSeedId,\n versionLocalId: newVersionId,\n propertyName,\n propertyValue,\n modelName,\n },\n propertyRecordSchema,\n )\n }\n\n eventEmitter.emit('item.requestAll', { modelName })\n\n return {\n modelName,\n seedLocalId: newSeedId,\n versionLocalId: newVersionId,\n }\n} ","import { IItem, IItemProperty } from '@/interfaces'\nimport { itemMachineSingle } from '@/Item/service/itemMachineSingle'\nimport { internalPropertyNames } from '@/helpers/constants'\nimport { VersionsType } from '@/seedSchema/VersionSchema'\nimport { getModel } from '@/stores/modelClass'\n\nimport {\n CreatePropertyInstanceProps,\n ItemData,\n ItemFindProps,\n ModelSchema,\n ModelValues,\n NewItemProps,\n PropertyData\n} from '@/types'\n\nimport { immerable } from 'immer'\nimport { BehaviorSubject } from 'rxjs'\nimport { ActorRefFrom, Subscription, createActor } from 'xstate'\nimport { eventEmitter } from '@/eventBus'\nimport pluralize from 'pluralize'\nimport { orderBy, startCase } from 'lodash-es'\nimport { waitForEvent } from '@/events'\nimport { getItemData } from '@/db/read/getItemData'\nimport { getItemsData } from '@/db/read/getItems'\nimport { BaseItemProperty } from '@/ItemProperty/BaseItemProperty'\nimport { getItemProperties } from '@/db/read/getItemProperties'\nimport { getPublishUploads } from '@/db/read/getPublishUploads'\nimport { getPublishPayload } from '@/db/read/getPublishPayload'\nimport { createNewItem } from '@/db/write/createNewItem'\n\n\nexport abstract class BaseItem<T extends ModelValues<ModelSchema>> implements IItem<T> {\n\n protected static instanceCache: Map<string, { instance: BaseItem<any>; refCount: number }> = new Map();\n protected _subscription: Subscription | undefined;\n protected readonly _storageTransactionId: string | undefined;\n [immerable] = true;\n protected _propertiesSubject: BehaviorSubject<Record<string, IItemProperty<any>>> = new BehaviorSubject({});\n protected readonly _service: ActorRefFrom<typeof itemMachineSingle>;\n\n constructor(initialValues: NewItemProps<T>) {\n\n const {\n modelName,\n seedUid,\n schemaUid,\n seedLocalId,\n latestVersionLocalId,\n latestVersionUid,\n } = initialValues\n\n const ModelClass = getModel(modelName)\n\n if (\n ModelClass &&\n Object.keys(ModelClass?.schema).includes('storageTransactionId') &&\n initialValues.storageTransactionId\n ) {\n this._storageTransactionId = initialValues.storageTransactionId\n }\n\n this._service = createActor(itemMachineSingle, {\n input: {\n seedLocalId,\n seedUid,\n schemaUid,\n ModelClass,\n latestVersionLocalId,\n latestVersionUid,\n storageTransactionId: this._storageTransactionId,\n },\n })\n\n this._subscription = this._service.subscribe((snapshot) => {\n const { context } = snapshot\n\n if (\n !context ||\n !context.propertyInstances ||\n context.propertyInstances.size === 0\n ) {\n return\n }\n\n const propertiesObj: Record<string, IItemProperty<any>> = {}\n\n for (const [key, propertyInstance] of context.propertyInstances) {\n if (typeof key !== 'string' || internalPropertyNames.includes(key)) {\n propertiesObj[key.toString()] = propertyInstance\n continue\n }\n\n let transformedKey: string = key as string\n\n if (propertyInstance.alias) {\n transformedKey = propertyInstance.alias\n }\n\n if (!propertyInstance.alias && key.endsWith('Ids')) {\n transformedKey = key.slice(0, -3) // Remove 'Ids'\n transformedKey = pluralize(transformedKey)\n }\n\n if (!propertyInstance.alias && key.endsWith('Id')) {\n transformedKey = key.slice(0, -2) // Remove 'Id'\n }\n\n propertiesObj[transformedKey] = propertyInstance\n }\n\n this._propertiesSubject.next(propertiesObj)\n // eventEmitter.emit(`item.${modelName}.${seedUid || seedLocalId}.update`)\n })\n\n this._service.start()\n\n const definedKeys: string[] = ['ModelClass']\n\n const itemPropertyBase: Partial<CreatePropertyInstanceProps> = {\n seedLocalId,\n seedUid,\n versionLocalId: latestVersionLocalId,\n versionUid: latestVersionUid,\n modelName: modelName,\n }\n\n if (ModelClass && ModelClass.schema) {\n const schema = ModelClass.schema\n\n for (const [propertyName, propertyRecordSchema] of Object.entries(\n schema,\n )) {\n if (!propertyRecordSchema) {\n throw new Error(`Property ${propertyName} has no definition`)\n }\n\n this._createPropertyInstance({\n ...itemPropertyBase,\n propertyName,\n propertyValue: initialValues[propertyName as keyof T],\n })\n\n definedKeys.push(propertyName)\n\n if (\n propertyRecordSchema.dataType === 'Relation' &&\n !propertyName.endsWith('Id')\n ) {\n definedKeys.push(`${propertyName}Id`)\n }\n\n if (\n propertyRecordSchema.dataType === 'List' &&\n !propertyName.endsWith('Ids')\n ) {\n const singularPropertyName = pluralize.singular(propertyName)\n const propertyNameForSchema = `${singularPropertyName}${propertyRecordSchema.ref}Ids`\n definedKeys.push(propertyNameForSchema)\n }\n }\n }\n\n ; (Object.keys(initialValues) as Array<string & keyof Partial<T>>).forEach(\n (key) => {\n // If we already defined it, that means it was in the schema\n if (definedKeys.includes(key)) {\n return\n }\n\n this._createPropertyInstance({\n ...itemPropertyBase,\n propertyName: key,\n propertyValue: initialValues[key],\n })\n },\n )\n }\n\n static PlatformClass: typeof BaseItem\n\n static setPlatformClass(platformClass: typeof BaseItem) {\n this.PlatformClass = platformClass\n }\n\n static async create<T extends ModelValues<ModelSchema>>(\n props: Partial<ItemData>,\n ): Promise<BaseItem<any>> {\n if (!props.modelName && props.type) {\n props.modelName = startCase(props.type)\n }\n if (props.seedUid || props.seedLocalId) {\n const seedId = (props.seedUid || props.seedLocalId) as string\n if (this.instanceCache.has(seedId)) {\n const { instance, refCount } = this.instanceCache.get(seedId)!\n this.instanceCache.set(seedId, {\n instance,\n refCount: refCount + 1,\n })\n for (const [propertyName, propertyValue] of Object.entries(props)) {\n const propertyInstances = instance.getService().getSnapshot()\n .context.propertyInstances\n if (!propertyInstances || !propertyInstances.has(propertyName)) {\n continue\n }\n const propertyInstance = propertyInstances.get(propertyName)\n if (!propertyInstance) {\n continue\n }\n propertyInstance.getService().send({\n type: 'updateContext',\n propertyValue,\n })\n }\n return instance\n }\n if (!this.instanceCache.has(seedId)) {\n const newInstance = new this(props)\n this.instanceCache.set(seedId, {\n instance: newInstance,\n refCount: 1,\n })\n return newInstance\n }\n }\n if (!props.modelName) {\n throw new Error('Model name is required to create an item')\n }\n const { seedLocalId, versionLocalId, } = await createNewItem({\n modelName: props.modelName,\n ...props,\n })\n props.seedLocalId = seedLocalId\n props.latestVersionLocalId = versionLocalId\n const newInstance = new this(props)\n this.instanceCache.set(newInstance.seedUid || newInstance.seedLocalId, {\n instance: newInstance,\n refCount: 1,\n })\n return newInstance\n }\n\n static async find({\n modelName,\n seedLocalId,\n seedUid,\n }: ItemFindProps): Promise<IItem<any> | undefined> {\n if (!seedLocalId && !seedUid) {\n return\n }\n const itemData = await getItemData({\n modelName,\n seedLocalId,\n seedUid,\n })\n\n if (!itemData) {\n console.error('No item data found', { modelName, seedLocalId, seedUid })\n return\n }\n\n return BaseItem.create({\n ...itemData,\n modelName,\n })\n }\n\n static async all(\n modelName?: string,\n deleted?: boolean,\n ): Promise<BaseItem<any>[]> {\n const itemsData = await getItemsData({ modelName, deleted })\n const itemInstances: BaseItem<any>[] = []\n for (const itemData of itemsData) {\n itemInstances.push(\n await BaseItem.create({\n ...itemData,\n modelName,\n }),\n )\n }\n\n return orderBy(itemInstances, ['createdAt'], ['desc'])\n }\n\n protected _createPropertyInstance(props: Partial<CreatePropertyInstanceProps>) {\n if (this._storageTransactionId) {\n props.storageTransactionId = this._storageTransactionId\n }\n\n const propertyInstance = BaseItemProperty.create(props)\n\n if (!propertyInstance || !props.propertyName) {\n return\n }\n\n this._service.send({\n type: 'addPropertyInstance',\n propertyName: props.propertyName,\n propertyInstance,\n })\n\n Object.defineProperty(this, props.propertyName, {\n get: () => propertyInstance.value,\n set: (value) => (propertyInstance.value = value),\n enumerable: true,\n })\n }\n\n\n static async publish(item: IItem<any>): Promise<void> {\n await waitForEvent({\n req: {\n eventLabel: `item.${item.seedLocalId}.publish.request`,\n data: {\n seedLocalId: item.seedLocalId,\n },\n },\n res: {\n eventLabel: `item.${item.seedLocalId}.publish.success`,\n },\n })\n }\n\n subscribe = (callback: (itemProps: any) => void): Subscription => {\n return this._service.subscribe((snapshot) => {\n callback(snapshot.context)\n })\n }\n\n getService = (): ActorRefFrom<typeof itemMachineSingle> => {\n return this._service\n }\n\n getEditedProperties = async (): Promise<PropertyData[]> => {\n return await getItemProperties({\n seedLocalId: this.seedLocalId,\n edited: true,\n })\n }\n\n publish = async (): Promise<void> => {\n await waitForEvent({\n req: {\n eventLabel: `item.publish.request`,\n data: {\n seedLocalId: this.seedLocalId,\n },\n },\n res: {\n eventLabel: `item.${this.seedLocalId}.publish.success`,\n },\n })\n }\n\n getPublishUploads = async () => {\n return await getPublishUploads(this)\n }\n\n getPublishPayload = async (uploadedTransactions: any[]) => {\n return await getPublishPayload(this, uploadedTransactions)\n }\n\n get serviceContext() {\n const snapshot = this._service.getSnapshot()\n return (snapshot as any).context || {}\n }\n\n get seedLocalId(): string {\n return this.serviceContext.seedLocalId as string\n }\n\n get seedUid(): string | undefined {\n return this.serviceContext.seedUid\n }\n\n get schemaUid(): string {\n return this.serviceContext.schemaUid as string\n }\n\n get latestVersionUid(): VersionsType {\n return this.serviceContext.latestVersionUid as VersionsType\n }\n\n get latestVersionLocalId(): string {\n return this.serviceContext.latestVersionLocalId as string\n }\n\n get modelName(): string {\n return this.serviceContext.modelName as string\n }\n\n get properties(): Record<string, IItemProperty<any>> {\n return this._propertiesSubject.value\n }\n\n get attestationCreatedAt(): number {\n return this.serviceContext.attestationCreatedAt as number\n }\n\n get versionsCount(): number {\n return this.serviceContext.versionsCount as number\n }\n\n get lastVersionPublishedAt(): number {\n return this.serviceContext.lastVersionPublishedAt as number\n }\n\n unload(): void {\n this._subscription?.unsubscribe()\n this._service.stop()\n }\n}\n","import { PropertyMetadataKey, TProperty } from '../property'\nimport { TSchema, Type } from '@sinclair/typebox'\nimport { ModelConstructor, ModelValues } from '@/types'\nimport { BaseItem } from '@/Item/BaseItem'\n\nexport const TModelValues = Type.Record(Type.String(), Type.Any())\n\nexport const TModelSchema = Type.Record(Type.String(), TProperty)\nexport const TModelClass = Type.Object({\n schema: TModelSchema,\n create: Type.Function(\n [TModelValues],\n Type.Promise(Type.Record(Type.String(), Type.Any())),\n ),\n})\n\nexport const TModelConstructor = Type.Function([TModelSchema], TModelClass)\n\nexport abstract class IModelClass {\n static originalConstructor: new () => any\n\n static async create(values: ModelValues<any>): Promise<BaseItem<any>> {\n const item = await BaseItem.create(values)\n return item\n }\n\n static getOriginalClass(): new () => any {\n return this.originalConstructor\n }\n}\n\nexport const Model: ModelConstructor = <\n T extends { new(...args: any[]): IModelClass },\n>(\n constructor: T,\n) => {\n class ModelClass extends constructor {\n private static _schema: Record<string, TSchema> = {}\n static originalConstructor = constructor\n\n static _initializeSchema() {\n const properties =\n Reflect.getMetadata(PropertyMetadataKey, this.prototype) || []\n\n properties.forEach(\n ({\n propertyKey,\n propertyType,\n }: {\n propertyKey: string\n propertyType: TSchema\n }) => {\n // console.log(\n // `setting ${propertyKey} to ${JSON.stringify(propertyType)}`,\n // )\n this._schema[propertyKey] = propertyType\n },\n )\n }\n\n static async create(values: ModelValues<any>): Promise<BaseItem<any>> {\n const item = await BaseItem.create(values)\n return item\n }\n\n static getOriginalClass(): T {\n return this.originalConstructor\n }\n\n static get schema() {\n return this._schema\n }\n\n get schema() {\n return this.constructor.prototype._schema\n }\n }\n\n ModelClass._initializeSchema()\n\n return ModelClass as T & IModelClass\n}\n","import { isBrowser } from '@/helpers/environment'\nimport { BaseItem } from '@/Item/BaseItem'\n\nlet Item: typeof BaseItem | undefined\n\n\nexport const initItem = async () => {\n if (isBrowser()) {\n Item = (await import('../browser/Item/Item')).Item\n }\n\n if (!isBrowser()) {\n Item = (await import('../node/Item/Item')).Item\n }\n}\n\nexport { Item }\n","import {\n ModelSchema,\n ModelValues,\n NewItemProps,\n} from '@/types'\nimport { BaseItem } from '@/Item/BaseItem'\nimport { IItem } from '@/interfaces'\n\nexport class Item<T extends ModelValues<ModelSchema>> extends BaseItem<T> implements IItem<T> {\n\n constructor(initialValues: NewItemProps<T>,) {\n super(initialValues,)\n }\n\n}\n\nBaseItem.setPlatformClass(Item)","import { useCallback, useEffect, useState } from 'react'\nimport { ActorRef } from 'xstate'\nimport { orderBy } from 'lodash-es'\nimport { produce } from 'immer'\nimport { eventEmitter } from '@/eventBus'\nimport pluralize from 'pluralize'\nimport { getGlobalService } from '@/services/global'\nimport { useSelector } from '@xstate/react'\nimport debug from 'debug'\nimport { appState } from '@/seedSchema'\nimport { like } from 'drizzle-orm'\nimport { BaseDb } from '@/db/Db/BaseDb'\nimport { MachineIds } from '@/services/internal/constants'\n\nconst logger = debug('seedSdk:react:services')\n\nconst finalStrings = ['idle', 'ready', 'done', 'success', 'initialized']\n\nexport const getServiceName = (service: ActorRef<any, any>) => {\n let name = 'actor'\n if (service && service.uniqueKey) {\n name = service.uniqueKey\n }\n if (service && !service.uniqueKey && service.logic && service.logic.config) {\n name = getServiceUniqueKey(service)\n }\n return name\n}\n\nexport const getServiceValue = (\n service: ActorRef<any, any>,\n): string | undefined => {\n let value\n if (service && service.getSnapshot() && service.getSnapshot().value) {\n value = service.getSnapshot().value\n }\n if (getServiceName(service) === 'global') {\n if (\n value &&\n typeof value === 'object' &&\n Object.keys(value).length > 0 &&\n Object.keys(value)[0] === 'initialized'\n ) {\n value = 'ready'\n }\n }\n if (value && typeof value === 'object') {\n value = JSON.stringify(value)\n }\n return value\n}\n\nexport const getServiceUniqueKey = (service: ActorRef<any, any>) => {\n if (!service || !service.logic || !service.logic.config) {\n return\n }\n const config = service.logic.config\n if (!config.id) {\n return\n }\n let uniqueKey = config.id\n if (config.id.includes('@seedSdk/')) {\n uniqueKey = config.id.match(/^.*@seedSdk\\/(\\w+)[\\.\\w]*/)[1]\n }\n let snapshot\n try {\n snapshot = service.getSnapshot()\n } catch (error) {\n logger('Error:', error)\n return uniqueKey\n }\n if (snapshot) {\n const context = snapshot.context\n if (context && context.dbName) {\n uniqueKey = context.dbName\n }\n if (context && context.modelNamePlural) {\n uniqueKey = context.modelNamePlural\n }\n if (context && context.modelName) {\n uniqueKey = pluralize(context.modelName.toLowerCase())\n }\n }\n return uniqueKey\n}\n\nexport const useService = (service: ActorRef<any, any>) => {\n const [timeElapsed, setTimeElapsed] = useState(0)\n\n const getPercentComplete = (service: ActorRef<any, any>) => {\n let percentComplete = 0\n if (service.logic.states) {\n const stateNames = []\n const startupStates = []\n\n for (const [stateName, state] of Object.entries(service.logic.states)) {\n if (state.tags.includes('loading')) {\n stateNames.push(stateName)\n startupStates.push(state)\n }\n }\n\n const totalStates = startupStates.length\n const value = getServiceValue(service)\n if (finalStrings.includes(value)) {\n return 0\n }\n const stateIndex = stateNames.indexOf(value)\n percentComplete = (stateIndex / totalStates) * 100\n }\n return percentComplete\n }\n\n const updateTime = useCallback(\n (interval) => {\n const context = service.getSnapshot().context\n const status = service.getSnapshot().value\n if (\n status === 'done' ||\n status === 'success' ||\n status === 'idle' ||\n status === 'ready'\n ) {\n clearInterval(interval)\n return\n }\n setTimeElapsed((timeElapsed) => timeElapsed + 1)\n },\n [service],\n )\n\n const startInterval = useCallback(() => {\n const interval = setInterval(() => {\n updateTime(interval)\n }, 1000)\n return interval\n }, [updateTime, service])\n\n useEffect(() => {\n const interval = startInterval()\n return () => clearInterval(interval)\n }, [])\n\n return {\n name: getServiceName(service),\n timeElapsed,\n value: getServiceValue(service),\n percentComplete: getPercentComplete(service),\n uniqueKey: getServiceUniqueKey(service),\n }\n}\n\nexport const useIsDbReady = () => {\n const [isDbReady, setIsDbReady] = useState(false)\n\n const { internalStatus } = useGlobalServiceStatus()\n\n useEffect(() => {\n if (internalStatus === 'ready') {\n setIsDbReady(true)\n }\n }, [internalStatus])\n\n return isDbReady\n}\n\nexport const usePersistedSnapshots = () => {\n const [initialized, setInitialized] = useState(false)\n\n const hasSavedSnapshots = useHasSavedSnapshots()\n\n const { services, percentComplete } = useServices()\n\n // Helper function to save all actor snapshots to the database\n const save = useCallback(async () => {\n for (const actor of services) {\n const uniqueKey = getServiceUniqueKey(actor)\n logger(\n `would save to db with snapshot__${uniqueKey}:`,\n JSON.stringify(actor.getPersistedSnapshot()),\n )\n // await writeAppState(\n // `snapshot__${uniqueKey}`,\n // JSON.stringify(actor.getPersistedSnapshot()),\n // )\n }\n }, [services])\n\n // Helper function to load persisted snapshots from the database\n const load = useCallback(async () => {\n const appDb = BaseDb.getAppDb()\n\n if (!appDb) {\n return []\n }\n\n const persistedSnapshots = await appDb\n .select()\n .from(appState)\n .where(like(appState.key, 'snapshot__%'))\n return persistedSnapshots\n }, [])\n\n useEffect(() => {\n if (!hasSavedSnapshots || initialized) {\n return\n }\n const initialize = async () => {\n const persistedSnapshots = await load()\n console.log('persistedSnapshots:', persistedSnapshots)\n setInitialized(true)\n }\n\n initialize()\n\n return () => {\n save() // Save snapshots on unmount\n }\n }, [hasSavedSnapshots, initialized])\n}\n\nexport const useHasSavedSnapshots = () => {\n const [hasSavedSnapshots, setHasSavedSnapshots] = useState(false)\n\n const isDbReady = useIsDbReady()\n\n useEffect(() => {\n if (isDbReady) {\n const _checkForSnapshots = async (): Promise<void> => {\n const appDb = BaseDb.getAppDb()\n\n const rows = await appDb\n .select()\n .from(appState)\n .where(like(appState.key, 'snapshot__%'))\n\n if (rows && rows.length > 0) {\n setHasSavedSnapshots(true)\n }\n }\n\n _checkForSnapshots()\n }\n }, [isDbReady])\n\n return hasSavedSnapshots\n}\n\nexport const useServices = () => {\n const [actors, setActors] = useState<ActorRef<any, any>[]>([])\n const [percentComplete, setPercentComplete] = useState(5)\n\n const actorsMap = new Map<string, ActorRef<any, any>>()\n\n useEffect(() => {\n const globalServiceListener = (event) => {\n if (event && event.type === 'init') {\n return\n }\n if (\n event.actorRef &&\n event.actorRef.logic &&\n event.actorRef.logic.config\n ) {\n const service = event.actorRef\n const services = [service]\n\n if (service.logic.config.id === MachineIds.GLOBAL) {\n const context = service.getSnapshot().context\n const keys = Object.keys(context)\n for (const key of keys) {\n if (!key.startsWith('internal') && key.endsWith('Service')) {\n const allItemsService = context[key]\n services.push(allItemsService)\n }\n }\n }\n\n services.forEach((innerService) => {\n const uniqueKey = getServiceUniqueKey(innerService)\n if (!uniqueKey) {\n return\n }\n innerService.uniqueKey = uniqueKey\n actorsMap.set(uniqueKey, innerService)\n })\n\n let actorsArray = Array.from(actorsMap.values())\n actorsArray = orderBy(actorsArray, (a) => a.logic.config.id, ['asc'])\n\n setActors(\n produce(actors, (draft) => {\n return actorsArray\n }),\n )\n }\n }\n\n eventEmitter.addListener('inspect.globalService', globalServiceListener)\n\n return () => {\n eventEmitter.removeListener(\n 'inspect.globalService',\n globalServiceListener,\n )\n }\n }, [])\n\n useEffect(() => {\n const globalService = actors.find(\n (actor) => getServiceName(actor) === 'global',\n )\n const internalService = actors.find(\n (actor) => getServiceName(actor) === 'internal',\n )\n if (!globalService || !internalService) {\n return\n }\n if (\n getServiceValue(globalService) === 'initialized' &&\n getServiceValue(internalService) === 'ready'\n ) {\n const denominator = actors.length\n const finishedActors = actors.filter((actor) => {\n const value = getServiceValue(actor)\n return finalStrings.includes(value)\n })\n const numerator = finishedActors.length\n const percentComplete = (numerator / denominator) * 100\n setPercentComplete(percentComplete)\n }\n }, [actors])\n\n return {\n services: actors,\n percentComplete,\n }\n}\n\nexport const useGlobalServiceStatus = () => {\n const globalService = getGlobalService()\n\n const status = useSelector(globalService, (snapshot) => {\n return snapshot.value\n })\n\n const internalStatus = useSelector(\n globalService.getSnapshot().context.internalService,\n (snapshot) => {\n if (!snapshot) {\n return\n }\n return snapshot.value\n },\n )\n\n const internalService = useSelector(globalService, (snapshot) => {\n return snapshot.context.internalService\n })\n\n return {\n status,\n internalStatus,\n }\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\nimport { createNewItem } from '@/db/write/createNewItem'\nimport { Item } from '@/browser/Item'\nimport { eventEmitter } from '@/eventBus'\nimport { useImmer } from 'use-immer'\nimport { orderBy } from 'lodash-es'\nimport { getAreItemEventHandlersReady } from '@/events'\nimport debug from 'debug'\nimport { useGlobalServiceStatus } from '@/browser/react/services'\nimport { ModelValues } from '@/types'\nimport { Subscription } from 'xstate'\nimport { useSelector } from '@xstate/react'\nimport { BaseItem } from '@/Item/BaseItem'\n\nconst logger = debug('seedSdk:react:item')\n\ntype UseItemProps = {\n modelName: string\n seedLocalId?: string\n seedUid?: string\n}\n\ntype UseItemReturn<T extends ModelValues<T>> = {\n item: Item<T> | undefined\n itemData: ItemData<T>\n itemStatus: string | Record<string, unknown> | undefined\n}\n\ntype UseItem<T> = (props: UseItemProps) => UseItemReturn<T>\n\ntype ItemData<T> = Record<string, Partial<T>>\n\nexport const useItem: UseItem<any> = ({ modelName, seedLocalId, seedUid }) => {\n // const [itemSubscription, setItemSubscription] = useState<\n // Subscription | undefined\n // >()\n //\n // const queryClient = useQueryClient()\n //\n // const { data: item } = useQuery({\n // queryKey: ['item', modelName, seedLocalId, seedUid],\n // queryFn: async () =>\n // Item.find({\n // modelName,\n // seedLocalId,\n // seedUid,\n // }),\n // networkMode: 'offlineFirst',\n // })\n //\n // const updateItem = async (newItem: Item<any>) => {\n // queryClient.setQueryData(['item', modelName, seedLocalId, seedUid], newItem)\n // }\n //\n // useEffect(() => {\n // if (item && item.subscribe && !itemSubscription) {\n // const subscription = item.subscribe(async (_) => {\n // const newItem = await Item.find({ modelName, seedLocalId, seedUid })\n // if (!newItem) {\n // logger(\n // '[useItem] [itemSubscription] no item found',\n // modelName,\n // seedLocalId,\n // )\n // return\n // }\n // updateItem(newItem)\n // })\n // setItemSubscription(subscription)\n // }\n //\n // return () => {\n // itemSubscription?.unsubscribe()\n // }\n // }, [item, itemSubscription])\n //\n // return {\n // item,\n // itemData: {},\n // itemStatus: undefined,\n // }\n\n const [itemData, setItemData] = useImmer<ItemData<any>>({})\n const [item, setItem] = useState<Item<any> | undefined>()\n const [itemSubscription, setItemSubscription] = useState<\n Subscription | undefined\n >()\n\n const { status, internalStatus } = useGlobalServiceStatus()\n\n const isReadingDb = useRef(false)\n\n const itemStatus = useSelector(\n item?.getService(),\n (snapshot) => snapshot?.value,\n )\n\n const updateItem = useCallback(\n (newItem: Item<any>) => {\n setItemData((draft) => {\n Object.keys(newItem.properties).forEach((propertyName) => {\n const value = newItem[propertyName]\n draft[propertyName] = value\n })\n })\n },\n [setItemData],\n )\n\n const readFromDb = useCallback(async () => {\n if (\n isReadingDb.current ||\n internalStatus !== 'ready' ||\n (!seedUid && !seedLocalId)\n ) {\n return\n }\n isReadingDb.current = true\n const foundItem = await Item.find({\n modelName,\n seedLocalId,\n seedUid,\n })\n if (!foundItem) {\n logger('[useItem] [getItemFromDb] no item found', modelName, seedLocalId)\n isReadingDb.current = false\n return\n }\n setItem(() => foundItem)\n updateItem(foundItem)\n isReadingDb.current = false\n }, [internalStatus])\n\n const listenerRef = useRef(readFromDb)\n\n useEffect(() => {\n listenerRef.current = readFromDb\n }, [readFromDb])\n\n useEffect(() => {\n if (internalStatus === 'ready') {\n listenerRef.current()\n }\n }, [internalStatus, status])\n\n useEffect(() => {\n if (item && !itemSubscription) {\n const subscription = item.subscribe(async (_) => {\n const newItem = await Item.find({ modelName, seedLocalId, seedUid })\n if (!newItem) {\n logger(\n '[useItem] [itemSubscription] no item found',\n modelName,\n seedLocalId,\n )\n return\n }\n updateItem(newItem)\n setItem(() => newItem)\n })\n setItemSubscription(subscription)\n }\n\n return () => {\n itemSubscription?.unsubscribe()\n }\n }, [item, itemSubscription])\n\n useEffect(() => {\n const seedId = seedUid || seedLocalId\n\n eventEmitter.addListener(`item.${modelName}.${seedId}.update`, () => {\n listenerRef.current()\n })\n\n return () => {\n eventEmitter.removeListener(`item.${modelName}.${seedId}.update`)\n }\n }, [])\n\n return {\n item,\n itemData,\n itemStatus,\n }\n}\ntype UseItemsReturn = {\n items: BaseItem<any>[]\n isReadingDb: boolean\n}\ntype UseItemsProps = {\n modelName?: string\n deleted?: boolean\n}\ntype UseItems = (props: UseItemsProps) => UseItemsReturn\nexport const useItems: UseItems = ({ modelName, deleted=false }) => {\n const [items, setItems] = useImmer<BaseItem<any>[]>([])\n\n const { status, internalStatus } = useGlobalServiceStatus()\n\n const modelNameRef = useRef<string | undefined>(modelName)\n\n const isReadingDb = useRef(false)\n\n const readFromDb = useCallback(async () => {\n if (isReadingDb.current || internalStatus !== 'ready') {\n return\n }\n isReadingDb.current = true\n const allItems = await Item.all(modelNameRef.current, deleted)\n setItems(() => [])\n setItems(() => allItems)\n isReadingDb.current = false\n }, [internalStatus])\n\n const listenerRef = useRef(readFromDb)\n\n useEffect(() => {\n listenerRef.current = readFromDb\n }, [readFromDb])\n\n useEffect(() => {\n if (internalStatus === 'ready') {\n listenerRef.current()\n }\n }, [internalStatus, status])\n\n useEffect(() => {\n eventEmitter.addListener('item.requestAll', (event) => {\n if (\n !event ||\n !event.modelName ||\n event.modelName !== modelNameRef.current\n ) {\n return\n }\n listenerRef.current()\n })\n\n readFromDb()\n\n return () => {\n eventEmitter.removeListener('item.requestAll', readFromDb)\n }\n }, [])\n\n return {\n items: orderBy(\n items,\n [\n (item) =>\n item.lastVersionPublishedAt ||\n item.attestationCreatedAt ||\n item.createdAt,\n ],\n ['desc'],\n ),\n isReadingDb: isReadingDb.current,\n }\n}\n\nexport const useItemIsReady = () => {\n const [itemListenersReady, setItemListenersReady] = useState(false)\n\n const itemEventListenersHandler = useCallback((_) => {\n setItemListenersReady(true)\n }, [])\n\n useEffect(() => {\n const areReady = getAreItemEventHandlersReady()\n\n if (areReady) {\n itemEventListenersHandler(true)\n }\n\n eventEmitter.addListener(\n 'item.events.setupAllItemsEventHandlers',\n itemEventListenersHandler,\n )\n\n return () => {\n eventEmitter.removeListener('item.events.setupAllItemsEventHandlers')\n }\n }, [])\n\n return {\n isReady: itemListenersReady,\n }\n}\nexport const useCreateItem = <T>(modelName: string) => {\n const [isCreatingItem, setIsCreatingItem] = useState(false)\n\n const { isReady } = useItemIsReady()\n\n const createItem = useCallback(\n async (itemData) => {\n if (!isReady) {\n console.error(\n `[useCreateItem] [createItem] called before listeners are ready`,\n itemData,\n )\n return\n }\n if (isCreatingItem) {\n // TODO: should we setup a queue for this?\n console.error(\n `[useCreateItem] [createItem] already creating item`,\n itemData,\n )\n return\n }\n\n setIsCreatingItem(true)\n\n const { seedLocalId } = await createNewItem({ modelName, ...itemData })\n\n const newItem = await Item.find({ modelName, seedLocalId })\n\n eventEmitter.emit('item.requestAll', { modelName })\n\n setIsCreatingItem(false)\n },\n [isCreatingItem, isReady],\n )\n\n return {\n createItem,\n isCreatingItem,\n }\n}\n\ntype PublishItemResult = Error | undefined | void\n\ntype UsePublishItemReturn = {\n publishItem: (\n item: Item<any> | undefined,\n callback?: (result: PublishItemResult) => any,\n ) => void\n isPublishing: boolean\n}\n\ntype PublishItemProps =\n | [Item<any> | undefined]\n | [Item<any> | undefined, (result: PublishItemResult) => any | undefined]\n\ntype PublishItem = (...props: PublishItemProps) => Promise<any>\n\nexport const usePublishItem = (): UsePublishItemReturn => {\n const [isPublishing, setIsPublishing] = useState(false)\n\n const isLocked = useRef(false)\n\n const publishItem: PublishItem = useCallback(async (item, callback?) => {\n if (!item || isLocked.current) {\n return\n }\n isLocked.current = true\n setIsPublishing(true)\n try {\n const uploads = await item.getPublishUploads()\n const payload = await item.getPublishPayload(uploads)\n if (callback) {\n callback()\n }\n } catch (e) {\n if (callback) {\n callback(e as Error)\n }\n }\n setIsPublishing(false)\n isLocked.current = false\n }, [])\n\n return {\n publishItem,\n isPublishing,\n }\n}\n","import { CreatePropertyInstanceProps, PropertyType } from '@/types'\nimport { IItemProperty } from '@/interfaces/IItemProperty'\nimport { BaseItemProperty } from '@/ItemProperty/BaseItemProperty'\n\n\nclass ItemProperty extends BaseItemProperty<PropertyType> implements IItemProperty<PropertyType> {\n\n\n constructor(initialValues: Partial<CreatePropertyInstanceProps>) {\n super(initialValues)\n }\n\n}\n\nBaseItemProperty.setPlatformClass(ItemProperty)\n\nexport { ItemProperty }","import { useImmer } from 'use-immer'\nimport { Item } from '@/browser/Item'\nimport { useCallback, useEffect, useRef, useState } from 'react'\nimport { useSelector } from '@xstate/react'\nimport debug from 'debug'\nimport { eventEmitter } from '@/eventBus'\nimport { ItemProperty } from '@/browser/ItemProperty/ItemProperty'\nimport { useGlobalServiceStatus } from '@/browser/react/services'\nimport { IItemProperty } from '@/interfaces'\n\nconst logger = debug('seedSdk:react:property')\n\ntype UseItemPropertyProps = {\n propertyName: string\n seedLocalId?: string\n seedUid?: string\n}\n\ntype UseItemPropertyReturn = {\n property: IItemProperty<any> | undefined\n isInitialized: boolean\n value: any\n status: string\n}\n\ntype UseItemProperty = (props: UseItemPropertyProps | undefined) => UseItemPropertyReturn\n\nexport const useItemProperty: UseItemProperty = (props = {\n propertyName: '',\n seedLocalId: '',\n seedUid: '',\n}) => {\n\n const { propertyName, seedLocalId, seedUid } = props\n\n const [property, setProperty] = useState<IItemProperty<any> | undefined>()\n const [isInitialized, setIsInitialized] = useState(false)\n\n const { internalStatus } = useGlobalServiceStatus()\n\n const isReadingDb = useRef(false)\n\n const value = useSelector(property?.getService(), (snapshot) => {\n if (!snapshot || !snapshot.context) {\n return\n }\n return snapshot.context.renderValue || snapshot.context.propertyValue\n })\n\n const status = useSelector(\n property?.getService(),\n (snapshot) => snapshot?.value as string,\n )\n\n const readFromDb = useCallback(async () => {\n if (\n internalStatus !== 'ready' ||\n isReadingDb.current ||\n (!seedLocalId && !seedUid)\n ) {\n return\n }\n isReadingDb.current = true\n const foundProperty = await ItemProperty.find({\n propertyName,\n seedLocalId,\n seedUid,\n })\n if (!foundProperty) {\n logger(\n `[useItemPropertyTest] [readFromDb] no property found for Item.${seedLocalId}.${propertyName}`,\n )\n isReadingDb.current = false\n return\n }\n if (foundProperty.status === 'waitingForDb') {\n foundProperty.getService().send({ type: 'waitForDbSuccess' })\n }\n setProperty(foundProperty)\n setIsInitialized(true)\n isReadingDb.current = false\n }, [internalStatus, props])\n\n const listenerRef = useRef(readFromDb)\n\n useEffect(() => {\n listenerRef.current = readFromDb\n }, [readFromDb, props])\n\n useEffect(() => {\n if (internalStatus === 'ready') {\n readFromDb()\n }\n }, [internalStatus])\n\n useEffect(() => {\n eventEmitter.addListener(\n `property.${seedUid || seedLocalId}.${propertyName}.update`,\n () => {\n listenerRef.current()\n },\n )\n\n return () => {\n eventEmitter.removeListener(\n `property.${seedUid || seedLocalId}.${propertyName}.update`,\n )\n }\n }, [])\n\n return {\n property,\n isInitialized,\n value,\n status,\n }\n}\nexport const useItemProperties = (item?: Item<any>) => {\n const [propertyObj, setPropertyObj] = useImmer({})\n const [isListening, setIsListening] = useState(false)\n\n const updatePropertyObj = useCallback(\n (event) => {\n if (!item) {\n console.error('[XXXXXX] [updatePropertyObj] no item when expected')\n return\n }\n const { propertyName, propertyValue } = event\n if (!propertyName) {\n return\n }\n setPropertyObj((draft) => {\n draft[propertyName] = propertyValue\n })\n },\n [item],\n )\n\n useEffect(() => {\n if (!item) {\n return\n }\n\n const eventKey = `item.${item.seedLocalId}.property.update`\n\n eventEmitter.addListener(eventKey, updatePropertyObj)\n\n return () => {\n eventEmitter.removeListener(eventKey, updatePropertyObj)\n }\n }, [item])\n\n return {\n properties: propertyObj,\n }\n}\n","import { useCallback, useEffect, useState } from 'react'\nimport { Subscription } from 'xstate'\nimport { getGlobalService } from '@/services/global'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:react:db')\n\nexport const useDbsAreReady = () => {\n const [dbsAreReady, setDbsAreReady] = useState(false)\n\n const update = useCallback(() => {\n if (dbsAreReady) {\n return\n }\n setDbsAreReady(true)\n }, [])\n\n useEffect(() => {\n let globalSubscription: Subscription | undefined\n let internalSubscription: Subscription | undefined\n\n const _waitForDbs = async (): Promise<void> => {\n const globalService = getGlobalService()\n const internalService =\n globalService.getSnapshot().context.internalService\n if (!internalService) {\n logger('[useDbsAreReady] [useEffect] no internalService')\n\n globalSubscription = globalService.subscribe(({ context }) => {\n if (!internalSubscription && context && context.internalService) {\n globalSubscription?.unsubscribe()\n internalSubscription = context.internalService.subscribe(\n (snapshot) => {\n if (snapshot.value === 'ready') {\n update()\n internalSubscription?.unsubscribe()\n }\n },\n )\n }\n })\n\n return\n }\n const currentState = internalService.getSnapshot().value\n if (currentState === 'ready') {\n update()\n return\n }\n internalSubscription = internalService.subscribe((snapshot) => {\n if (snapshot.value === 'ready') {\n update()\n internalSubscription?.unsubscribe()\n }\n })\n }\n\n _waitForDbs()\n\n return () => {\n if (globalSubscription) {\n globalSubscription.unsubscribe()\n }\n\n if (internalSubscription) {\n internalSubscription.unsubscribe()\n }\n }\n }, [])\n\n return {\n dbsAreReady,\n }\n}\n","import { BaseDb } from '@/db/Db/BaseDb'\nimport { seeds } from '@/seedSchema'\nimport { eq, or } from 'drizzle-orm'\n\ntype DeleteItemProps = {\n seedLocalId?: string\n seedUid?: string\n}\ntype DeleteItem = (props: DeleteItemProps) => Promise<void>\nexport const deleteItem: DeleteItem = async ({ seedLocalId, seedUid }) => {\n const appDb = BaseDb.getAppDb()\n\n await appDb\n .update(seeds)\n .set({\n _markedForDeletion: 1,\n })\n .where(or(eq(seeds.localId, seedLocalId), eq(seeds.uid, seedUid)))\n}\n","import { useCallback, useEffect, useState } from 'react'\nimport { Item } from '@/browser/Item/Item'\nimport { eventEmitter } from '@/eventBus'\nimport { deleteItem } from '@/db/write/deleteItem'\n\nexport const useDeleteItem = () => {\n const [isDeletingItem, setIsDeletingItem] = useState(false)\n\n const destroy = useCallback(\n async (item: Item<any>) => {\n if (!item) {\n return\n }\n setIsDeletingItem(true)\n const { modelName } = item.getService().getSnapshot().context\n await deleteItem({ seedLocalId: item.seedLocalId })\n eventEmitter.emit('item.requestAll', { modelName })\n setIsDeletingItem(false)\n },\n [isDeletingItem],\n )\n\n useEffect(() => { }, [])\n\n return {\n deleteItem: destroy,\n isDeletingItem,\n }\n}\n","export const withSeed = (config: any, webpack: any, isServer: boolean) => {\n // If you need to include directories outside of the project root\n // config.module.rules.push({\n // test: /\\.ts$/,\n // include: [path.resolve(process.cwd(), 'schema.ts')],\n // use: 'ts-loader',\n // })\n\n config.plugins.push(\n // new webpack.DefinePlugin({\n // __dirname: JSON.stringify(__dirname),\n // }),\n new webpack.NormalModuleReplacementPlugin(/node:/, (resource) => {\n resource.request = resource.request.replace(/^node:/, '')\n }),\n )\n\n // config.externals.push({\n // 'fsevents': 'commonjs2 fsevents',\n // })\n\n // console.log('__dirname:', __dirname)\n // console.log('process.cwd():', process.cwd())\n\n // console.log('crypto-browserify exists:', fs.existsSync(path.resolve(process.cwd(), './node_modules/crypto-browserify')))\n // console.log('path-browserify exists:', fs.existsSync(path.resolve(process.cwd(), './node_modules/path-browserify')))\n\n if (!isServer) {\n config.resolve.alias['fs'] = '@zenfs/core'\n config.resolve.alias['node:fs'] = '@zenfs/core'\n config.resolve.alias['node:path'] = 'path-browserify'\n config.resolve.alias['path'] = 'path-browserify'\n\n // config.resolve.alias['fs'] = path.resolve(\n // process.cwd(),\n // './node_modules/@zenfs/core',\n // )\n // config.resolve.alias['node:fs'] = path.resolve(\n // process.cwd(),\n // './node_modules/@zenfs/core',\n // )\n // config.resolve.alias['@schema'] = path.resolve(process.cwd(), 'schema.ts')\n // // config.resolve.alias['crypto'] = path.resolve(process.cwd(), './node_modules/crypto-browserify')\n // // config.resolve.alias['node:crypto'] = path.resolve(process.cwd(), './node_modules/crypto-browserify')\n // config.resolve.alias['node:path'] = path.resolve(\n // process.cwd(),\n // './node_modules/path-browserify',\n // )\n // config.resolve.alias['path'] = path.resolve(\n // process.cwd(),\n // './node_modules/path-browserify',\n // )\n }\n\n if (isServer) {\n config.externals.push('@sqlite.org/sqlite-wasm')\n config.externals.push('nunjucks')\n config.externals.push('chokidar')\n config.externals.push('arweave')\n }\n\n // config.module.rules.push({\n // test: /seed\\.config\\.mjs$/,\n // use: [\n // {\n // loader: 'babel-loader',\n // options: {\n // plugins: ['@babel/plugin-syntax-dynamic-import'],\n // },\n // },\n // ],\n // })\n\n return config\n}\n","import { isBrowser } from '../environment'\nimport { BaseEasClient } from './BaseEasClient'\n\nlet EasClient: typeof BaseEasClient | undefined\n\nexport const initEasClient = async () => {\n if (isBrowser()) {\n EasClient = (await import('../../browser/helpers/EasClient')).EasClient\n }\n\n if (!isBrowser()) {\n EasClient = (await import('../../node/helpers/EasClient')).EasClient\n }\n}\n\nexport { EasClient }\n","import { isBrowser } from '../environment'\nimport { BaseQueryClient } from './BaseQueryClient'\n\nlet QueryClient: typeof BaseQueryClient | undefined\n\nexport const initQueryClient = async () => {\n if (isBrowser()) {\n QueryClient = (await import('../../browser/helpers/QueryClient')).QueryClient\n }\n\n if (!isBrowser()) {\n QueryClient = (await import('../../node/helpers/QueryClient')).QueryClient\n }\n}\n\nexport { QueryClient }","import { isBrowser } from '@/helpers/environment'\nimport { BaseItemProperty } from '@/ItemProperty/BaseItemProperty'\n\nlet ItemProperty: typeof BaseItemProperty | undefined\n\nexport const initItemProperty = async () => {\n\n if (isBrowser()) {\n ItemProperty = (await import('../browser/ItemProperty/ItemProperty')).ItemProperty\n }\n\n if (!isBrowser()) {\n ItemProperty = (await import('../node/ItemProperty/ItemProperty')).ItemProperty\n }\n}\n\nexport { ItemProperty }","import { eventEmitter } from '@/eventBus'\nimport debug from 'debug'\n\nconst logger = debug('seedSdk:services:events')\n\nconst handleServiceSaveState = (event: any) => {\n const { state, serviceId } = event\n logger(`[browser] [service.saveState.request] serviceId: ${serviceId}`)\n localStorage.setItem(`seed_sdk_service_${serviceId}`, JSON.stringify(state))\n}\n\nexport const setupServicesEventHandlers = () => {\n eventEmitter.addListener('service.saveState.request', handleServiceSaveState)\n}\n","import { getGlobalService } from '@/services/global'\n\nimport { saveAppState } from '@/db/write/saveAppState'\n\ntype SaveServiceEvent = {\n modelName: string\n}\n\nexport const saveServiceHandler = async (event: SaveServiceEvent) => {\n const globalService = getGlobalService()\n\n if (!globalService || !globalService.getSnapshot().context) {\n return\n }\n\n const { modelName } = event\n\n const nameOfService: string = `${modelName}Service`\n\n const service = globalService.getSnapshot().context[nameOfService]\n\n if (!service) {\n console.log(`[saveServiceHandler] service not found: ${nameOfService}`)\n return\n }\n\n await saveAppState(\n `snapshot__${modelName}`,\n JSON.stringify(service.getPersistedSnapshot()),\n )\n}\n","import { eventEmitter } from '@/eventBus'\nimport { saveServiceHandler } from './allItems'\n\nlet areReady = false\n\nexport const setupServiceHandlers = () => {\n eventEmitter.addListener('service.save', saveServiceHandler)\n areReady = true\n}\n\nexport const getAreServiceHandlersReady = () => {\n return areReady\n}\n","// import { initDb } from \"@/db/Db\";\nimport { initArweaveClient, setArweaveDomain } from \"@/helpers/ArweaveClient\";\nimport { initEasClient } from \"@/helpers/EasClient\";\nimport { initQueryClient } from \"@/helpers/QueryClient\";\nimport { initItem } from \"@/Item\";\nimport { initItemProperty } from \"@/ItemProperty\";\nimport { ClientManagerContext, FromCallbackInput } from \"@/types\";\nimport { fromCallback, EventObject, waitFor } from \"xstate\";\nimport debug from 'debug'\nimport { areFsListenersReady } from \"@/events/files\";\nimport { setModel } from \"@/stores/modelClass\";\nimport { setupFsListeners } from \"@/events/files\";\nimport { setupServicesEventHandlers } from \"@/services/events\";\nimport { setupAllItemsEventHandlers } from \"@/events/item\";\nimport { setupServiceHandlers } from \"@/events/services\";\nimport { eventEmitter } from \"@/eventBus\";\nimport { getGlobalService, } from \"@/services/global/globalMachine\";\nimport { GlobalState } from '@/services/internal/constants'\n\nconst logger = debug('seedSdk:ClientManager:initialize')\n\nexport const initialize = fromCallback<\nEventObject, \nFromCallbackInput<ClientManagerContext>\n>(({sendBack, input: {context, event}}) => {\n logger('initialize from ClientManager')\n const { isInitialized } = context\n const { options, } = event\n\n if (isInitialized) {\n sendBack({type: 'initialized'})\n return\n }\n\n const _initialize = async () => {\n const { config, addresses } = options\n\n await initItem()\n await initItemProperty()\n await initEasClient()\n await initArweaveClient()\n await initQueryClient()\n // await initDb()\n\n const { models, endpoints, arweaveDomain, } = config\n\n const {files} = endpoints\n\n if (arweaveDomain) {\n setArweaveDomain(arweaveDomain)\n }\n\n for (const [key, value] of Object.entries(models)) {\n setModel(key, value)\n }\n setupFsListeners()\n setupAllItemsEventHandlers()\n setupServicesEventHandlers()\n setupServiceHandlers()\n if (areFsListenersReady()) {\n eventEmitter.emit('fs.init')\n }\n if (!areFsListenersReady()) {\n console.error('fs listeners not ready during init')\n }\n\n const globalService = getGlobalService()\n\n globalService.send({\n type: 'init',\n endpoints,\n models,\n addresses,\n arweaveDomain,\n filesDir: files,\n })\n\n const { models: internalModels } = await import('@/db/configs/seed.schema.config')\n for (const [key, value] of Object.entries(internalModels)) {\n setModel(key, value)\n }\n\n await waitFor(globalService, (snapshot) => {\n logger('snapshot.value', snapshot.value)\n return snapshot.value === GlobalState.INITIALIZED\n })\n logger('globalService initialized')\n }\n\n _initialize().then(() => {\n sendBack({type: 'initialized'})\n })\n})\n","import { FromCallbackInput } from \"@/types\";\nimport { fromCallback } from \"xstate\";\nimport { ClientManagerContext } from \"@/types\";\nimport { EventObject } from \"xstate\";\nimport debug from \"debug\";\nimport { appState } from \"@/seedSchema\";\n\nconst logger = debug('seedSdk:client:writeToDb')\n\nexport const saveAppState = fromCallback<\nEventObject, \nFromCallbackInput<ClientManagerContext>\n>(\n ({sendBack, input: {key, value}}) => {\n\n const _saveAppState = async () => {\n const { BaseDb } = await import('@/db/Db/BaseDb')\n if (!BaseDb) {\n throw new Error('BaseDb not found')\n }\n const appDb = BaseDb.getAppDb()\n if (!appDb) {\n throw new Error('App DB not found')\n }\n\n console.log(`key: ${key} value: ${value}`)\n\n appDb.insert(appState)\n .values({\n key: key,\n value: JSON.stringify(value),\n })\n .onConflictDoUpdate({\n target: appState.key,\n set: {\n value: JSON.stringify(value),\n },\n })\n \n }\n\n _saveAppState().then(() => {\n sendBack({\n type: 'saveAppStateSuccess',\n key,\n value,\n })\n })\n \n })\n","import { assign } from \"xstate\";\nimport { saveAppState } from \"../actors/saveAppState\";\n\nexport const setAddresses = assign(({event, spawn}) => {\n const { addresses } = event\n spawn(saveAppState, {\n input: {\n key: 'addresses',\n value: addresses,\n },\n })\n return {\n addresses,\n isSaving: true,\n }\n})\n","import { ClientManagerContext } from \"@/types\"\nimport { assign, setup } from \"xstate\"\nimport { initialize } from \"./actors/initialize\"\nimport { setAddresses } from \"./actions/setAddresses\"\n\nexport const clientManagerMachine = setup({\n types: {\n context: {} as ClientManagerContext,\n input: {} as ClientManagerContext | undefined,\n },\n actions: {\n setAddresses,\n },\n actors: {\n initialize,\n },\n}).createMachine({\n id: 'clientManager',\n initial: 'uninitialized',\n context: ({ input }) => input as ClientManagerContext,\n states: {\n uninitialized: {\n on: {\n init: {\n target: 'initializing',\n },\n },\n },\n initializing: {\n on: {\n initialized: {\n target: 'idle',\n },\n },\n invoke: {\n src: 'initialize',\n input: ({ event, context }) => ({ event, context }),\n },\n },\n idle: {\n entry: assign({\n isInitialized: true,\n }),\n on: {\n saveAppStateSuccess: {\n actions: assign(({ event }) => {\n const { key, value } = event\n return {\n isSaving: false\n }\n }),\n },\n setAddresses: {\n actions: ['setAddresses'],\n },\n },\n },\n },\n})\n","import debug from 'debug'\nimport { createActor, waitFor } from 'xstate'\nimport { clientManagerMachine } from '@/client/clientManagerMachine'\n// import { SeedConstructorOptions } from '@/types/index'\n// import { BaseDb } from '@/db/Db/BaseDb'\n// import { appState } from '@/seedSchema'\n// import { eq } from 'drizzle-orm'\n// import { CLIENT_NOT_INITIALIZED } from '@/helpers/constants'\n\nconst logger = debug('seedSdk:client')\n\nexport const clientManager = createActor(clientManagerMachine, {\n input: {\n isInitialized: false,\n }\n})\n\nconst subscription = clientManager.subscribe(( snapshot ) => {\n logger('ClientManager snapshot.value:', snapshot.value)\n logger('ClientManager snapshot.context.isInitialized:', snapshot.context.isInitialized)\n})\n\nclientManager.start()\n\n// const ensureInitialized = () => {\n// if (!clientManager.getSnapshot().context.isInitialized) {\n// throw new Error(CLIENT_NOT_INITIALIZED);\n// }\n// }\n\nexport const ClientManager = {\n isInitialized: () => {\n return clientManager.getSnapshot().context.isInitialized\n },\n getService: () => {\n // ensureInitialized();\n // return clientManager;\n },\n // init: async (options: SeedConstructorOptions) => {\n init: async (options: any) => {\n clientManager.send({ type: 'init', options });\n await waitFor(clientManager, (snapshot) => snapshot.context.isInitialized);\n },\n setAddresses: async (addresses: string[]) => {\n // ensureInitialized();\n // logger('setAddresses', addresses);\n // clientManager.send({ type: 'setAddresses', addresses });\n // await waitFor(clientManager, (snapshot) => !snapshot.context.isSaving);\n // logger('setAddresses success', addresses);\n },\n getAddresses: async () => {\n // ensureInitialized();\n // const db = await BaseDb.getAppDb();\n // const results = await db.select().from(appState).where(eq(appState.key, 'addresses'));\n // return JSON.parse(results[0]?.value);\n },\n stop: () => {\n // ensureInitialized();\n // clientManager.stop();\n },\n unload: () => {\n // ensureInitialized();\n // clientManager.stop();\n // subscription.unsubscribe();\n },\n}\n","import { enableMapSet } from 'immer'\n\nexport {\n Model,\n Property,\n ImageSrc,\n List,\n Text,\n Json,\n Relation,\n} from './schema'\n\n// export { type IItem, type IItemProperty } from './interfaces'\nexport { Item } from './Item'\n// export { ItemProperty } from './ItemProperty'\n// export { Db } from './db/Db'\n\nexport {\n useItems,\n useItem,\n useItemProperties,\n useCreateItem,\n useItemProperty,\n useDeleteItem,\n useGlobalServiceStatus,\n usePublishItem,\n usePersistedSnapshots,\n useServices,\n useService,\n} from './browser/react'\n\n// export { getCorrectId, BaseArweaveClient, BaseEasClient, BaseFileManager, BaseQueryClient, } from './helpers'\nexport { getCorrectId, } from './helpers'\n\n// export { getGlobalService } from './services/global/globalMachine'\n\nexport {\n eventEmitter,\n} from './eventBus'\n\nenableMapSet()\n\nexport { withSeed } from './node/webpack'\n\n\nexport { client } from './client'\n"],"names":["waitForDb","initialize","logger","types.AttestationFieldsFragmentDoc","types.SchemaFieldsFragmentDoc","types.GetTransactionTagsDocument","types.GetSchemasDocument","types.GetSchemaByNameDocument","types.GetSeedsDocument","types.GetSeedIdsDocument","types.GetStorageTransactionIdDocument","types.GetVersionsDocument","types.GetPropertiesDocument","types.GetAllPropertiesForAllVersionsDocument","types.GetFilesMetadataDocument","types.GetArweaveTransactionsDocument","types.GetImageSeedsDocument","types.GetImageVersionsDocument","types.GetSchemaUidsDocument","models","modelsTable","waitForFiles","saveAppState","areReady","inspect","IDLE","getVersionData","toSnakeCase","getPropertyData","_a","Item"],"mappings":"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AAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,cAAc,EAAC,EAAC,WAAW,EAAC,CAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAA+F;AAC/oF,MAAM,qBAAqB,GAAG,EAAC,MAAM,EAAC,UAAU,EAAC,aAAa,EAAC,CAAC,EAAC,MAAM,EAAC,qBAAqB,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,eAAe,EAAC,EAAC,qBAAqB,EAAC,CAAC,EAAC,MAAM,EAAC,oBAAoB,EAAC,UAAU,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,uBAAuB,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,YAAY,EAAC,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,cAAc,EAAC,EAAC,WAAW,EAAC,CAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,iBAAiB,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,YAAY,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAA6E;AAC15D,MAAM,wBAAwB,GAAG,EAAC,MAAM,EAAC,UAAU,EAAC,aAAa,EAAC,CAAC,EAAC,MAAM,EAAC,qBAAqB,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,kBAAkB,EAAC,EAAC,qBAAqB,EAAC,CAAC,EAAC,MAAM,EAAC,oBAAoB,EAAC,UAAU,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,uBAAuB,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,eAAe,EAAC,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,cAAc,EAAC,EAAC,WAAW,EAAC,CAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAC,QAAQ,EAAC,CAAC,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,gBAAgB,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,mBAAmB,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,oBAAoB,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,mBAAmB,EAAC,EAAC,eAAe,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,iBAAiB,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,SAAS,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,YAAY,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAmF;AAC/sE,MAAM,qBAAqB,GAAG,EAAC,MAAM,EAAC,UAAU,EAAC,aAAa,EAAC,CAAC,EAAC,MAAM,EAAC,qBAAqB,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,eAAe,EAAC,EAAC,qBAAqB,EAAC,CAAC,EAAC,MAAM,EAAC,oBAAoB,EAAC,UAAU,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,aAAa,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,kBAAkB,EAAC,EAAC,EAAC,EAAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,YAAY,EAAC,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,EAAC,WAAW,EAAC,CAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,OAAO,EAAC,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,EAAC,EAAC,CAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,EAAC,EAAC,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,EAAC,EAAC,cAAc,EAAC,EAAC,MAAM,EAAC,cAAc,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,MAAM,EAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAAC,EAAC,CAAC,EAA6E;;ACxoGvlC;AAIA;;;;;;;;;;AAUG;AACH,MAAM,SAAS,GAAG;IACd,gQAAgQ,EAAEC,4BAAkC;IACpS,iLAAiL,EAAEC,uBAA6B;IAChN,8KAA8K,EAAEC,0BAAgC;IAChN,6KAA6K,EAAEC,kBAAwB;IACvM,kLAAkL,EAAEC,uBAA6B;IACjN,kWAAkW,EAAEC,gBAAsB;IAC1X,kKAAkK,EAAEC,kBAAwB;IAC5L,mOAAmO,EAAEC,+BAAqC;IAC1Q,0MAA0M,EAAEC,mBAAyB;IACrO,8MAA8M,EAAEC,qBAA2B;IAC3O,8NAA8N,EAAEC,sCAA4C;IAC5Q,gNAAgN,EAAEC,wBAA8B;IAChP,2iBAA2iB,EAAEC,8BAAoC;IACjlB,gYAAgY,EAAEC,qBAA2B;IAC7Z,gNAAgN,EAAEC,wBAA8B;IAChP,mLAAmL,EAAEC,qBAA2B;CACnN;AAiFK,SAAU,OAAO,CAAC,MAAc,EAAA;AACpC,IAAA,OAAQ,SAAiB,CAAC,MAAM,CAAC,IAAI,EAAE;AACzC;;AC/GO,MAAM,WAAW,GAAG,OAAO,eAAe;;;;;;;;;;AAUhD,CAAA,CAAC;AAEK,MAAM,kBAAkB,GAAG,OAAO,eAAe;;;;;;;;;;AAUvD,CAAA,CAA6C;AAEvC,MAAM,SAAS,GAAG,OAAO,eAAe;;;;;;;;;;;;;;;;;;AAkB9C,CAAA,CAAoD;AAE9C,MAAM,YAAY,GAAG,OAAO,eAAe;;;;;;AAMjD,CAAA,CAAsD;AAEb,OAAO,eAAe;;;;;;;;;;AAU/D,CAAA;AAEM,MAAM,YAAY,GAAG,OAAO,eAAe;;;;;;;;;AASjD,CAAA,CAAuD;AAEjD,MAAM,cAAc,GAAG,OAAO,eAAe;;;;;;;;;AASnD,CAAA,CAAyD;AAEnD,MAAM,mCAAmC,GAAG,OAAO,eAAe;;;;;;;;;AASxE,CAAA,CAAwD;;ACrFlD,MAAM,kBAAkB,GAAG,CAAC,KAAa,KAAY;AAC1D,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,qCAAA,EAAwC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAE,CAAA,CAChE;;IAEH,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAClC,CAAC;AAoKM,MAAM,kBAAkB,GAAG,YAA8B;AAC9D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;YAC7B,UAAU,CAAC,YAAW;AACpB,gBAAA,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE;gBAC5C,OAAO,CAAC,SAAS,CAAC;aACnB,EAAE,GAAG,CAAC;AACT,SAAC,CAAC;;IAGJ,MAAM,gBAAgB,GAAG,MAAM;AAC5B,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;SACb,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;SACnC,KAAK,CAAC,CAAC,CAAC;IAEX,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;AACtD,QAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;;AAG5D,IAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC;AAEzC,IAAA,MAAM,kBAAkB,GAAG,aAAa,CAAC,KAAK;IAE9C,IAAI,CAAC,kBAAkB,EAAE;AACvB,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;;AAGvC,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC;AACvC,CAAC;;ACtND,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B;AAE7C,MAAM,SAAS,GAAG,MAAqC;AAC5D,IAAA,OAAO,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;AACvC,CAAC;AAEM,MAAM,QAAQ,GAAG,CAAC,SAAiB,KAAgC;AACxE,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;AAClC,CAAC;AAEM,MAAM,aAAa,GAAG,MAAe;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAEM,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,KAAqB,KAAI;AACnE,IAAA,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC;AAClC,CAAC;;ACEM,MAAM,eAAe,GAAoB,YAAW;AACzD,IAAA,MAAMC,QAAM,GAAG,SAAS,EAAE;IAC1B,MAAM,YAAY,GAAG,EAA+B;AAEpD,IAAA,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAkB;AAE3D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,EAAE,GAA8B,EAAE;AAExC,IAAA,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAACA,QAAM,CAAC,EAAE;QACnD,MAAM,eAAe,GAAG,MAAM;AAC3B,aAAA,MAAM,CAAC;YACN,EAAE,EAAEC,MAAW,CAAC,EAAE;YAClB,IAAI,EAAEA,MAAW,CAAC,IAAI;YACtB,GAAG,EAAE,SAAS,CAAC,GAAG;SACnB;aACA,IAAI,CAACA,MAAW;AAChB,aAAA,QAAQ,CAAC,SAAS,EAAE,EAAE,CAACA,MAAW,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC;aACzD,KAAK,CAAC,EAAE,CAACA,MAAW,CAAC,IAAI,EAAE,SAAS,CAAC;aACrC,KAAK,CAAC,CAAC,CAAC;QAEX,MAAM,UAAU,GAAW,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE;QAEpD,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CACX,uCAAuC,SAAS,CAAA,oBAAA,CAAsB,CACvE;YACD;;AAGF,QAAA,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;AAE/D,QAAA,YAAa,CAAC,IAAI,CAAC,UAAU,CAAC;QAE9B,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,SAAS,EAAE;YACnD;;QAGF,MAAM,YAAY,GAAG,CAAW,QAAA,EAAA,WAAW,CAAC,SAAS,CAAC,EAAE;QAExD,EAAE,CAAC,IAAI,CAAC;AACN,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,CAAW,QAAA,EAAA,WAAW,CAAC,SAAS,CAAC,CAAE,CAAA;AAC5C,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,yBAAyB,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;;AAGzD,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;AAE9C,IAAA,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;QAChD,QAAQ,EAAE,CAAC,CAAA,mBAAA,CAAqB,CAAC;QACjC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;AAC7B,YAAA,KAAK,EAAE;gBACL,EAAE;AACH,aAAA;SACF,CAAC;AACL,KAAA,CAAC;IAEF,OAAO;QACL,YAAY;QACZ,yBAAyB;QACzB,YAAY;KACb;AACH,CAAC;;ACnFM,MAAM,WAAW,GAAgB,OACtC,QAA6B,KAC3B;AACF,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,OAAO,GAAG,MAAM;SACnB,MAAM,CAAC,KAAK;SACZ,MAAM,CAAC,QAAQ;SACf,SAAS,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,KAAI;AAC7C,QAAA,IAAI,MAAM,CAAC,GAAG,EAAE;AACd,YAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;;AAEtB,QAAA,OAAO,GAAG;KACX,EAAE,EAAc,CAAC;AAElB,IAAA,OAAO,OAAO;AAChB,CAAC;;ACTM,MAAM,wBAAwB,GAAyB,OAAO,EACnE,SAAS,EACT,YAAY,EACZ,WAAW,GACZ,KAA4B;AAC3B,IAAA,MAAM,qBAAqB,GAAG,WAAW,CAAC,YAAY,CAAC;AACvD,IAAA,MAAM,kBAAkB,GACtB,CAAC,SAAS,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,WAAW;AAEjE,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;AAE9C,IAAA,IAAI,WAAW,GAAgC;AAC7C,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE;AACF,gBAAA,MAAM,EAAE,SAAS;AAClB,aAAA;AACF,SAAA;KACF;IAED,IAAI,WAAW,EAAE;AACf,QAAA,WAAW,GAAG;AACZ,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE;AACN,oBAAA,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,qBAAqB,CAAE,CAAA;AAClD,iBAAA;AACF,aAAA;SACF;;AAGH,IAAA,IAAI,CAAC,WAAW,IAAI,kBAAkB,EAAE;AACtC,QAAA,WAAW,GAAG;AACZ,YAAA,KAAK,EAAE;AACL,gBAAA,WAAW,EAAE;AACX,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE;AACJ,4BAAA,MAAM,EAAE,qBAAqB;AAC9B,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;;AAGH,IAAA,MAAM,mBAAmB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACvD,QAAA,QAAQ,EAAE,CAAC,CAAoB,iBAAA,EAAA,YAAY,EAAE,CAAC;AAC9C,QAAA,OAAO,EAAE,YAAY,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC;AAChE,QAAA,WAAW,EAAE,cAAc;AAC5B,KAAA,CAAC;IAEF,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,QAAA,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAW;;AAEnD,CAAC;;AChED,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAkB;AAEvD,MAAM,+BAA+B,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAI;AACrE,IAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CAAC;AAC3C,IAAA,4BAA4B,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC;AAChE,CAAC;AAEM,MAAM,+BAA+B,GAAG,CAAC,UAAkB,KAAI;AACpE,IAAA,MAAM,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC;IAC7C,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;QACpD;;AAEF,IAAA,OAAO,4BAA4B,CAAC,GAAG,CAAC,aAAa,CAAC;AACxD,CAAC;AAEM,MAAM,eAAe,GAAG,YAAW;AACxC,IAAA,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,CAAC;AACtD,QAAA,YAAY,EAAE,SAAS;AACvB,QAAA,WAAW,EAAE,SAAS;AACvB,KAAA,CAAC;IACF,IAAI,gBAAgB,EAAE;AACpB,QAAA,+BAA+B,CAAC;AAC9B,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,SAAS,EAAE,gBAAgB;AAC5B,SAAA,CAAC;;AAEJ,IAAA,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC;AACpD,QAAA,YAAY,EAAE,OAAO;AACrB,QAAA,WAAW,EAAE,SAAS;AACvB,KAAA,CAAC;IACF,IAAI,cAAc,EAAE;AAClB,QAAA,+BAA+B,CAAC;AAC9B,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,SAAS,EAAE,cAAc;AAC1B,SAAA,CAAC;;AAEN,CAAC;;ACDD,MAAM,uBAAuB,GAAG;IAC9B,oEAAoE;CACrE;AAGD,MAAM,sBAAsB,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAI;AACjE,IAAA,MAAM,GAAG,GAAG;AACV,QAAA;AACE,YAAA,EAAE,EAAE,EAA+B;AACpC,SAAA;KACF;AAED,IAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AAClC,QAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;AACb,YAAA,eAAe,EAAE;AACf,gBAAA,QAAQ,EAAE,SAAS;AACpB,aAAA;AACF,SAAA,CAAC;;AAGJ,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;IAE9C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;QACjD,QAAQ,EAAE,CAAC,CAAA,oBAAA,CAAsB,CAAC;QAClC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;AAC3B,YAAA,KAAK,EAAE;AACL,gBAAA,QAAQ,EAAE;AACR,oBAAA,EAAE,EAAE,SAAS;AACd,iBAAA;AACD,gBAAA,QAAQ,EAAE;AACR,oBAAA,EAAE,EAAE,UAAU;AACf,iBAAA;gBACD,GAAG;AACJ,aAAA;SACF,CAAC;AACL,KAAA,CAAC;AAEF,IAAA,OAAO,SAAS;AAClB,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB;AAClD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB;AACpD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU;AAEzC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB;AACrD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB;AAErD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB;AActD,MAAM,gBAAgB,GAAqB,OAAO,EAAE,SAAS,EAAE,KAAI;AACjE,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;IAEjD,MAAM,uBAAuB,GAAe,MAAM;AAC/C,SAAA,MAAM;SACN,IAAI,CAAC,KAAK;SACV,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAEtC,IAAA,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU;IAE1C,IAAI,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,QAAA,KAAK,MAAM,GAAG,IAAI,uBAAuB,EAAE;AACzC,YAAA,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAC7B,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;YAC1C,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC;;;IAI7C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE3E,IAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,QAAA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE;;IAGvC,MAAM,YAAY,GAAwB,EAAE;AAE5C,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC;AACxB,QAAA,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,QAAA,MAAM,WAAW,GAAG,UAAU,EAAE;QAChC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC;QAE1C,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/D,YAAY,CAAC,IAAI,CAAC;AAChB,YAAA,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,IAAI,CAAC,EAAE;YACZ,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;AACrC,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrB,YAAA,oBAAoB,EAAE,IAAI,CAAC,WAAW,GAAG,IAAI;YAC7C,cAAc;AACf,SAAA,CAAC;QAEF,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC;;AAG5C,IAAA,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC;AAEnD,IAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE;AAClC,CAAC;AAUD,MAAM,mBAAmB,GAAwB,OAAO,EAAE,YAAY,EAAE,KAAI;AAC1E,IAAA,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC;AAE7D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,0BAA0B,GAAmB,MAAM;AACtD,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;SACb,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAE5C,IAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU;IAE7C,IAAI,0BAA0B,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE;AACvE,QAAA,KAAK,MAAM,GAAG,IAAI,0BAA0B,EAAE;AAC5C,YAAA,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAChC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;YAC7C,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;;;IAIjD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CACrC,CAAC,OAAO,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAClD;AAED,IAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAA,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE;;AAG7C,IAAA,IAAI,mBAAmB,GAAG,CAAA;;;UAGlB;AAER,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC;QAC9B,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC;AACnD,QAAA,MAAM,cAAc,GAAG,UAAU,EAAE;QACnC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC;QAEnD,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAQ,CAAC;QAClD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAQ,CAAC;QACjD,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAElE,QAAA,MAAM,YAAY,GAAG,CAAK,EAAA,EAAA,cAAc,CAAO,IAAA,EAAA,OAAO,CAAC,EAAE,CAAO,IAAA,EAAA,OAAO,CAAO,IAAA,EAAA,WAAW,CAAO,IAAA,EAAA,QAAQ,CAAM,GAAA,EAAA,IAAI,CAAC,GAAG,EAAE,CAAA,EAAA,EAAK,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA,GAAA,EAAM,cAAc,CAAA,EAAA,CAAI;QAE/K,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,mBAAmB,IAAI,YAAY,GAAG,IAAI;;QAG5C,IAAI,CAAC,KAAK,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,mBAAmB,IAAI,YAAY,GAAG,GAAG;;QAG3C,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC;;IAGrD,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAE7C,OAAO,EAAE,WAAW,EAAE;AACxB,CAAC;AAED,MAAM,4CAA4C,GAAG,OACnD,4BAAyC,EACzC,WAAwB,KACtB;AACF,IAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAChC,4BAA4B,CAAC,eAAe,CAC7C,CAAC,CAAC,CAAC,CAAC,KAAK;IACW,SAAS,CAAC,eAAe,CAAC,IAAI;AACnD,IAAA,MAAM,aAAa,GAAG,eAAe,CAAC,KAAK;AAE3C,IAAA,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAwB;AAE7D,IAAA,KAAK,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACtE,IAAI,WAAW,EAAE,WAAW,IAAI,WAAW,CAAC,WAAW,KAAK,aAAa,EAAE;AACzE,YAAA,qBAAqB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC;;;AAIzD,IAAA,IAAI,qBAAqB,CAAC,IAAI,KAAK,CAAC,EAAE;QACpC;;AAGF,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,KAAK,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,qBAAqB,CAAC,OAAO,EAAE,EAAE;QAC1E,MAAM,0BAA0B,GAAG,MAAM;AACtC,aAAA,MAAM;aACN,IAAI,CAAC,QAAQ;AACb,aAAA,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,EACxC,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,EACzC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC,MAAM,CAAC,CAC7D,CACF;QAEH,IAAI,0BAA0B,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE;YACvE;;QAGF,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CACrC,4BAA4B,CAAC,MAAM,CAC1B;QACX,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC;AACjD,QAAA,MAAM,UAAU,GAAG,4BAA4B,CAAC,MAAM;QACtD,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;AAE1D,QAAA,MAAM,eAAe,GAAG,UAAU,EAAE;QACpC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,YAAY,EAAE,aAAa;YAC3B,aAAa;YACb,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,WAAW;YACX,OAAO;YACP,cAAc;YACd,UAAU;AACV,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,gBAAgB,EAAE,CAAG,EAAA,aAAa,GAAG,WAAW,CAAC,cAAc,CAAE,CAAA;AACjE,YAAA,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC;AAC1C,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrB,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACtB,SAAA,CAAC;;AAEN,CAAC;AAWD,IAAI,YAAY,GAAG,KAAK;AAExB,MAAM,qBAAqB,GAA0B,OAAO,EAC1D,cAAc,EACd,SAAS,GACV,KAAI;IACH,IAAI,YAAY,EAAE;QAChB;;IAEF,YAAY,GAAG,IAAI;AAEnB,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC;AAElE,IAAA,MAAM,MAAM,GAAG,SAAS,EAAE;AAE1B,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,2BAA2B,GAAmB,MAAM;AACvD,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;SACb,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAE7C,IAAA,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAU;IAErD,IAAI,2BAA2B,IAAI,2BAA2B,CAAC,MAAM,GAAG,CAAC,EAAE;AACzE,QAAA,KAAK,MAAM,GAAG,IAAI,2BAA2B,EAAE;AAC7C,YAAA,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACxC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC;;;IAIlD,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CACzC,CAAC,QAAQ,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC5D;AAED,IAAA,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,QAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE;;AAG/C,IAAA,IAAI,qBAAqB,GAAG,CAAA;;;;;;UAMpB;AAER,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC;AACjC,QAAA,MAAM,eAAe,GAAG,UAAU,EAAE;AACpC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;AAE9D,QAAA,IAAI,iBAAiB,GAAG,QAAQ,CAAC,IAAI;QAErC,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,OAAO,CAAC,IAAI,CACV,oEAAoE,EACpE,QAAQ,CACT;YACD;;QAGF,IAAI,UAAU,GAAG,KAAK;AACtB,QAAA,IAAI,YAAY;AAChB,QAAA,IAAI,WAAW;AACf,QAAA,IAAI,YAAY;QAEhB,IAAI,MAAM,GAAG,KAAK;AAClB,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ;AAEnC,QAAA,+BAA+B,CAAC;AAC9B,YAAA,IAAI,EAAE,iBAAiB;YACvB,SAAS;AACV,SAAA,CAAC;AAEF,QAAA,IACE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChC,YAAA,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC;AACpC,YAAA,iBAAiB,KAAK,wBAAwB;YAC9C,iBAAiB,KAAK,iCAAiC,EACvD;YACA,UAAU,GAAG,IAAI;YAEjB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACjC,MAAM,GAAG,IAAI;gBACb,YAAY,GAAG,MAAM;AAErB,gBAAA,MAAM,MAAM,GAAG,4BAA4B,CAAC,iBAAiB,CAAC;gBAE9D,IAAI,MAAM,EAAE;AACV,oBAAA,iBAAiB,GAAG,MAAM,CAAC,YAAY;AACvC,oBAAA,WAAW,GAAG,MAAM,CAAC,SAAS;;gBAGhC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAC/B,oBAAA,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;AAC5B,iBAAC,CAAC;;YAGJ,IAAI,CAAC,MAAM,EAAE;gBACX,IAAI,uBAAuB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACpD;;AAEF,gBAAA,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;;;AAIvC,QAAA,IAAI,aAAa,GAAG,QAAQ,CAAC,KAAK;AAElC,QAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AACrC,YAAA,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;AAG/C,QAAA,IAAI,UAAU,IAAI,CAAC,MAAM,EAAE;AACzB,YAAA,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAChC,CAAC,IAAiB,KAAK,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,CAClD;AACD,YAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE;gBACvE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;AACpD,gBAAA,YAAY,GAAG,WAAW,CAAC,QAAQ;;;AAIvC,QAAA,IAAI,UAAU,IAAI,MAAM,EAAE;YACxB,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAiB,KACtD,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CACjC;YACD,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,gBAAA,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;AACxD,gBAAA,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ;;;AAI3C,QAAA,MAAM,YAAY,GAAG,SAAS,CAAC,iBAAiB,CAAC;AACjD,QAAA,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC;AACjD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI;AACjC,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;QAClC,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;AAC1D,QAAA,MAAM,oBAAoB,GAAG,QAAQ,CAAC,WAAW,GAAG,IAAI;QACxD,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC;QACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAQ,CAAC;QAClD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAQ,CAAC;AAGlD,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AACtC,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;AACpC,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM;AAErC,QAAA,IAAI,iBAAiB,KAAK,wBAAwB,EAAE;AAClD,YAAA,MAAM,4CAA4C,CAAC,QAAQ,EAAE,WAAW,CAAC;;AAG3E,QAAA,MAAM,YAAY,GAAG,CAAA,EAAA,EAAK,eAAe,CAAO,IAAA,EAAA,QAAQ,CAAC,EAAE,CAAA;4BACnC,QAAQ,CAAC,QAAQ,CAAA,IAAA,EAAO,YAAY,CAAA;4BACpC,aAAa,CAAA,IAAA,EAAO,WAAW,CAAA,IAAA,EAAO,UAAU,CAAA;4BAChD,cAAc,CAAA,IAAA,EAAO,OAAO,CAAA,IAAA,EAAO,WAAW,CAAA;4BAC9C,SAAS,CAAA,GAAA,EAAM,YAAY,GAAG,CAAI,CAAA,EAAA,YAAY,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;2BAC3D,WAAW,GAAG,CAAA,CAAA,EAAI,WAAW,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;2BACzC,YAAY,GAAG,CAAA,CAAA,EAAI,YAAY,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;AAC3C,yBAAA,EAAA,IAAI,CAAC,GAAG,EAAE,CAAK,EAAA,EAAA,oBAAoB,MAAM,cAAc,CAAA;2BACZ,MAAM,CAAA;2BACJ,MAAM,CAAA,CAAA,CAAG;QAE7E,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAChC,YAAA,qBAAqB,IAAI,YAAY,GAAG,IAAI;;QAG9C,IAAI,CAAC,KAAK,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,qBAAqB,IAAI,YAAY,GAAG,GAAG;;QAG7C,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;;AAGxD,IAAA,IAAI,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC7C,OAAO,EAAE,YAAY,EAAE;;AAGzB,IAAA,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACxC,QAAA,qBAAqB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG;;IAGlE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAE/C,YAAY,GAAG,KAAK;IAEpB,OAAO,EAAE,YAAY,EAAE;AACzB,CAAC;AAED,MAAM,0BAA0B,GAAG,YAAW;AAC5C,IAAoB,eAAe,CAAC,cAAc;AAClD,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;IAE9C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE;AACvD,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE;AACF,gBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AAChC,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AAEF,IAAA,MAAM,gBAAgB,CAAC,EAAE,SAAS,EAAE,CAAC;IAErC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;AAC7D,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE;AACN,gBAAA,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AAChC,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AAEF,IAAA,MAAM,mBAAmB,CAAC,EAAE,YAAY,EAAE,CAAC;AAE3C,IAAA,MAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAExD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE;AACjE,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE;AACN,gBAAA,EAAE,EAAE,kBAAkB;AACvB,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AAEF,IAAA,MAAM,qBAAqB,CAAC;QAC1B,cAAc;QACd,SAAS;AACV,KAAA,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAuB,QAAQ,CACvD,OAAO,CAAC,KAAI;AACV,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,EAAE,YAAY,EAAE,yBAAyB,EAAE,GAAG,MAAM,eAAe,EAAE;AAE3E,IAAA,IACE,CAAC,YAAY;QACb,CAAC,YAAY,CAAC,OAAO;AACrB,QAAA,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EACjC;AACA,QAAA,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,CAA6B,CAAC;;IAGhD,MAAM,UAAU,GAAa,EAAE;AAE/B,IAAA,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,OAAO,EAAE;QAC9C,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC;QAEpE,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,WAAW,CAAC,MAAM,CAAE,CAAA,CAAC;;AAGrE,QAAA,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AAE/B,QAAA,MAAM;aACH,MAAM,CAAC,SAAS;AAChB,aAAA,MAAM,CAAC;YACN,OAAO,EAAE,UAAU,CAAC,EAAE;YACtB,GAAG,EAAE,WAAW,CAAC,EAAE;SACpB;AACA,aAAA,mBAAmB,EAAE;;AAI1B,IAAA,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE;AAE5C,IAAA,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC;AAC7C,QAAA,UAAU,EAAE,UAAU;QACtB,SAAS;AACV,KAAA,CAAC;;AAIF,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CAAC;QAC1C,SAAS;AACV,KAAA,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;IAE9C,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;QACpD,QAAQ,EAAE,CAAC,CAAA,uBAAA,CAAyB,CAAC;QACrC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;AAC9B,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE;AACN,oBAAA,EAAE,EAAE,QAAQ;AACb,iBAAA;AACF,aAAA;SACF,CAAC;AACL,KAAA,CAAC;AAEF,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,mBAAmB,CAAC;QAChD,YAAY;AACb,KAAA,CAAC;IAEF,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;QACtD,QAAQ,EAAE,CAAC,CAAA,yBAAA,CAA2B,CAAC;QACvC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE;AAChC,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE;AACN,oBAAA,EAAE,EAAE,WAAW;AAChB,iBAAA;AACF,aAAA;SACF,CAAC;AACL,KAAA,CAAC;AAEF,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,qBAAqB,CAAC;QAC7C,cAAc;QACd,SAAS;AACV,KAAA,CAAC;IAEF,MAAM,0BAA0B,EAAE;AAElC,IAAA,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,EAAE;QACvC,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC;;AAEvD,CAAC,EACD,KAAK,EACL;AACE,IAAA,OAAO,EAAE,IAAI;AACb,IAAA,QAAQ,EAAE,KAAK;AAChB,CAAA,CACF;;ACzmBM,MAAM,SAAS,GAAG,MAAc;AACrC,IAAA,OAAO,CAAC,UAAU,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW;AACjG;AAEO,MAAM,aAAa,GAAG,MAAc;IACzC,OAAO,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa;AAChF,CAAC;AAEM,MAAM,UAAU,GAAG,MAAc;AACtC,IAAA,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;AACxG,CAAC;AAEM,MAAM,cAAc,GAAG,MAAa;IACzC,IAAI,SAAS,EAAE,EAAE;AACf,QAAA,OAAO,SAAS;;IAGlB,IAAI,UAAU,EAAE,EAAE;AAChB,QAAA,OAAO,UAAU;;IAGnB,IAAI,aAAa,EAAE,EAAE;AACnB,QAAA,OAAO,cAAc;;AAGvB,IAAA,OAAO,MAAM;AACf,CAAC;;ACpBD,MAAMlB,QAAM,GAAG,KAAK,CAAC,2CAA2C,CAAC;AAE1D,MAAMD,YAAU,GAAG,YAAY,CAGpC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAI;AAC5C,IAAA,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,GAAG,GAAG,OAAO;IAEjF,IAAI,CAAC,eAAe,EAAE;AACpB,QAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;;IAGhD,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;;AAGvC,IAAA,IAAI,WAAW,GAAG,cAAc,EAAE;AAElC,IAAA,IAAI,oBAA8C;AAGlD,IAAA,MAAM,eAAe,GAAG,YAA0B;QAChD;;;AAGF,KAAC;AAED,IAAA,MAAM,aAAa,GAAG,YAA0B;AAC9C,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;YAC7B,oBAAoB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC5D,gBAAAC,QAAM,CAAC,iCAAiC,EAAE,QAAQ,CAAC,KAAK,CAAC;AACzD,gBAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE;AAC9B,oBAAA,OAAO,EAAE;;AAEb,aAAC,CAAC;YACFA,QAAM,CAAC,+BAA+B,CAAC;YACvC,eAAe,CAAC,IAAI,CAAC;AACnB,gBAAA,IAAI,EAAE,MAAM;gBACZ,SAAS;gBACT,SAAS;gBACT,aAAa;AACd,aAAA,CAAC;AACJ,SAAC,CAAC;AACJ,KAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,YAA0B;AACtD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;QAE/B,MAAM,IAAI,GAAG,MAAM;AAChB,aAAA,MAAM;aACN,IAAI,CAAC,QAAQ;aACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAE3C,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,OAAO,EAAE,EAAE;SACZ;QAED,MAAM,kBAAkB,GAAa,EAAE;QAEvC,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,gBAAA,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;AACnD,gBAAA,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACrD,gBAAA,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC;;;AAGtC,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC5D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC3C,gBAAA,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,UAAU;;;AAG7C,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,6CAA6C;AACnD,YAAA,GAAG,UAAU;AACd,SAAA,CAAC;AACJ,KAAC;AAED,IAAA,MAAM,QAAQ,GAAG,YAA0B;QACzC,MAAM,eAAe,EAAE;AACzB,KAAC;AAED,IAAA,eAAe,EAAE,CAAC,IAAI,CAAC,MAAK;QAC1BA,QAAM,CAAC,yCAAyC,CAAC;AACnD,KAAC,CAAC;AAEF,IAAA,aAAa;SACV,IAAI,CAAC,MAAK;QACT,OAAO,qBAAqB,EAAE;AAChC,KAAC;SACA,IAAI,CAAC,MAAK;QACT,OAAO,QAAQ,EAAE;AACnB,KAAC;SACA,IAAI,CAAC,MAAK;QACTA,QAAM,CAAC,sCAAsC,CAAC;AAC9C,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,0CAA0C,EAAE,CAAC;QAC9D,oBAAoB,EAAE,WAAW,EAAE;AACrC,KAAC,CAAC;;;;IAMJ,QAAQ,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,WAAW,EAAE,CAAC;AAEhE,IAAA,OAAO,MAAK;QACV,oBAAoB,EAAE,WAAW,EAAE;AAErC,KAAC;AACH,CAAC,CAAC;;ACnHF,MAAMA,QAAM,GAAG,KAAK,CAAC,kDAAkD,CAAC;AAEjE,MAAM,iBAAiB,GAAG,YAAY,CAG3C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAI;AAC5C,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK;IAE3B,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAClC;;AAGF,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;IAE1B,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;QAC/B;;IAGF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,mBAAmB,CAAC,KAAK,mBAAmB,KAAK,SAAS,CAC7D;IAED,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,CAAA,UAAA,CAAY,CAAC;;AAGjD,IAAAA,QAAM,CAAC,4CAA4C,EAAE,KAAK,CAAC;AAE3D,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAE1D,IAAA,OAAO,MAAO,GAAC;AACjB,CAAC,CAAC;;AC9BF,MAAMA,QAAM,GAAG,KAAK,CAAC,8CAA8C,CAAC;AAE7D,MAAM,aAAa,GAAG,YAAY,CAGvC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,UAAEiB,QAAM,EAAE,GAAG,OAAO;AAE1B,IAAA,MAAM,cAAc,GAAG,YAAW;AAChC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;QAE/B,IAAI,CAACA,QAAM,EAAE;YACX;;QAGF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,OACnC,kCAAiC,CAClC;AAED,QAAA,MAAM,SAAS,GAAG;AAChB,YAAA,GAAG,UAAU;AACb,YAAA,GAAGA,QAAM;SACV;QAED,IAAI,aAAa,GAAG,KAAK;AACzB,QAAA,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAMlC;AAEH,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACtD,YAAAjB,QAAM,CACJ,0DAA0D,EAC1D,SAAS,CACV;AAED,YAAA,IAAI,UAAU;YAEd,MAAM,gBAAgB,GAAG,MAAM;AAC5B,iBAAA,MAAM;iBACN,IAAI,CAACkB,MAAW;iBAChB,KAAK,CAAC,EAAE,CAACA,MAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAEzC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtD,MAAM,KAAK,CAAC,MAAM,CAACA,MAAW,CAAC,CAAC,MAAM,CAAC;AACrC,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA,CAAC;AAEF,gBAAAlB,QAAM,CAAC,iDAAiD,EAAE,SAAS,CAAC;gBACpE,MAAM,WAAW,GAAG,MAAM;AACvB,qBAAA,MAAM,CAAC;oBACN,EAAE,EAAEkB,MAAW,CAAC,EAAE;oBAClB,IAAI,EAAEA,MAAW,CAAC,IAAI;oBACtB,GAAG,EAAE,SAAS,CAAC,GAAG;iBACnB;qBACA,IAAI,CAACA,MAAW;AAChB,qBAAA,QAAQ,CAAC,SAAS,EAAE,EAAE,CAACA,MAAW,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC;qBACzD,KAAK,CAAC,EAAE,CAACA,MAAW,CAAC,IAAI,EAAE,SAAS,CAAC;qBACrC,KAAK,CAAC,CAAC,CAAC;AAEX,gBAAA,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC;;YAG7B,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;AACnD,gBAAA,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC;;YAGlC,IAAI,CAAC,UAAU,EAAE;gBACf,aAAa,GAAG,KAAK;gBACrB;;AAGF,YAAA,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE;gBACnC,IAAI,EAAE,UAAU,CAAC,EAAE;AACnB,gBAAA,SAAS,EAAE,CAAW,QAAA,EAAA,WAAW,CAAC,SAAS,CAAC,CAAE,CAAA;AAC/C,aAAA,CAAC;;QAGJ,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,OAAO,KAAK;;QAGd,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAC/D,CAAC,EAAE,SAAS,EAAE,KAAK,SAAS,CAC7B;AAED,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;QAE9C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;YAC/C,QAAQ,EAAE,CAAC,CAAA,iBAAA,CAAmB,CAAC;YAC/B,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;AAC7B,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,EAAE,EAAE,UAAU;AACf,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;QAEF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,gBAAA,CAAkB,CAAC;;AAGrC,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC5B,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAC7D,CAAC,EAAE,SAAS,EAAE,KAAK,SAAS,KAAK,MAAM,CAAC,MAAM,CAC/C,EAAE,IAAI;YAEP,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,EAA+B,MAAM,CAAC,MAAM,CAAE,CAAA,CAAC;;AAGjE,YAAA,MAAM;iBACH,MAAM,CAAC,SAAS;AAChB,iBAAA,MAAM,CAAC;gBACN,OAAO;gBACP,GAAG,EAAE,MAAM,CAAC,EAAE;aACf;AACA,iBAAA,mBAAmB,EAAE;;AAE5B,KAAC;AAED,IAAA,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,aAAa,KAAI;AACtC,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC;AAGtD,QAAA,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAACD,QAAM,CAAC,EAAE;YACvD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,SAAS,CAAA,OAAA,CAAS,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;;AAEvC,QAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;QAClC;AACF,KAAC,CAAC;AAEF,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC,CAAC;;AC7IF,MAAMjB,QAAM,GAAG,KAAK,CAAC,wCAAwC,CAAC;AAEvD,MAAM,WAAW,GAAG,YAAY,CAGrC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,KAAI;AAC7C,IAAA,MAAM,EAAE,MAAM,GAAG,GAAG,OAAO;AAC3B,IAAA,IAAI,EAAE,SAAS,GAAG,GAAG,OAAO;AAG5B,IAAAA,QAAM,CAAC,iCAAiC,EAAE,OAAO,CAAC;AAClD,IAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,OAAO,CAAC;AACvD,IAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC;IACnD,IAAI,SAAS,EAAE,EAAE;QACf,SAAS,GAAG,kBAAkB;;AAEhC,IAAA,MAAM,WAAW,GAAG,CAAG,EAAA,SAAS,KAAK;AACrC,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,MAAM,UAAU;AAEnD,IAAA,QAAQ,CAAC;AACP,QAAA,IAAI,EAAE,4BAA4B;QAClC,QAAQ;QACR,SAAS;QACT,WAAW;AACZ,KAAA,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,YAA0B;;;;;;;;;;;;;;AAc/C,KAAC;AAED,IAAA,YAAY,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;QAC1C;AACF,KAAC,CAAC;AACJ,CAAC,CAAC;;ACjDF,MAAMA,QAAM,GAAG,KAAK,CAAC,wCAAwC,CAAC;AAEvD,MAAM,WAAW,GAAG,YAAY,CAGrC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAAA,QAAM,CAAC,iCAAiC,EAAE,OAAO,CAAC;AAElD,IAAA,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO;AAErC,IAAA,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC;;IAGtD,IAAI,YAAY,GAAG,KAAK;AAGxB,IAAA,MAAM,YAAY,GAAG,YAA0B;QAC7C,IAAI,YAAY,EAAE;YAChB;;QAEF,YAAY,GAAG,IAAI;QAEnB,IAAI,SAAS,EAAE,EAAE;AACf,YAAA,MAAM,OAAO,kBAAiB,CAAC;;AAGjC,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AAChB,YAAA,MAAM,OAAO,kBAAc,CAAC;;QAG9B,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC;QACxD,IAAI,IAAI,EAAE;YACR,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,GAAG,CAAC;;QAEhD,YAAY,GAAG,KAAK;AACtB,KAAC;AAED,IAAA,YAAY,EAAE,CAAC,IAAI,CAAC,MAAK;QACvB;AACF,KAAC,CAAC;AAEJ,CAAC,CAAC;;ACzCK,MAAM,QAAQ,GAAG,YAAY,CAGlC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO;AAEvC,IAAA,MAAM,YAAY,GAAG;QACnB,SAAS;AACT,QAAA,CAAA,EAAG,SAAS,CAAK,GAAA,CAAA;AACjB,QAAA,CAAA,EAAG,SAAS,CAAU,QAAA,CAAA;AACtB,QAAA,CAAA,EAAG,SAAS,CAAwB,sBAAA,CAAA;KACrC;AAED,IAAA,MAAM,SAAS,GAAG,YAA6B;;QAE7C,IAAI,MAAM,GAAG,KAAK;AAElB,QAAA,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,QAAQ,CAAC;AACP,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA,CAAC;AACF,gBAAA,OAAO,KAAK;;;AAGhB,QAAA,OAAO,MAAM;AACf,KAAC;AAED,IAAA,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,aAAa,KAAI;QACjC,IAAI,aAAa,EAAE;YACjB,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;YAC9D;;AAEF,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;AACxC,KAAC,CAAC;AACJ,CAAC,CAAC;;ACjCF,MAAMA,QAAM,GAAG,KAAK,CAAC,oCAAoC,CAAC;AAInD,MAAM,OAAO,GAAG,YAAY,CAGjC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO;AAE7C,IAAAA,QAAM,CAAC,6BAA6B,EAAE,OAAO,CAAC;IAE9C,IAAI,aAAa,GAAG,KAAK;AAGzB,IAAA,MAAM,cAAc,GAAG,YAA0B;AAC/C,QAAA,MAAM,WAAW,GAAG,CAAI,CAAA,EAAA,WAAW,qBAAqB;QAExD,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC;AAE7D,QAAA,IAAI,CAAC,aAAa,IAAI,SAAS,EAAE,EAAE;YACjC,MAAM,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC;;AAE9D,KAAC;AAED,IAAA,MAAM,QAAQ,GAAG,YAA0B;QACzC,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC;AACjD,KAAC;AAED,IAAA,cAAc;SACX,IAAI,CAAC,MAAK;AACT,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;YAChB,OAAO,QAAQ,EAAE;;QAEnB,IAAI,aAAa,EAAE;YACjB,OAAO,QAAQ,EAAE;;AAErB,KAAC;SACA,IAAI,CAAC,MAAK;AACT,QAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;QAC3C,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC;AAClD,KAAC,CAAC;AAEJ,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC,CAAC;;ACjDa,KAAK,CAAC,yCAAyC;AAEvD,MAAMmB,cAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AAErC,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AAChB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACjD;;AAGF,IAAA,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;AAE/B,IAAA,MAAM,aAAa,GAAG,YAA0B;AAC9C,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAW;gBACtC,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CACpD,CAAG,EAAA,WAAW,CAAqB,mBAAA,CAAA,CACpC;gBACD,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,QAAQ,CAAC;AACvB,oBAAA,OAAO,EAAE;;aAEZ,EAAE,IAAI,CAAC;AACV,SAAC,CAAC;AACJ,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACjD;AACF,KAAC,CAAC;AACJ,CAAC,CAAC;;ACjBF,MAAMnB,QAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC;AAEnD,MAAM,EACJ,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,GACV,GAAG,OAAO;AAEX,MAAM,SAAS,GAAG,KAAK,CAAC;AACtB,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAA+B;AACxC,QAAA,KAAK,EAAE,EAA2C;AACnD,KAAA;AACD,IAAA,MAAM,EAAE;QACN,WAAW;QACX,QAAQ;QACR,WAAW;QACX,OAAO;sBACPmB,cAAY;AACb,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;IACf,EAAE,EAAE,UAAU,CAAC,EAAE;AACjB,IAAA,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAyB;AACjD,IAAA,EAAE,EAAE;QACF,CAAC,6BAA6B,GAAG;YAC/B,OAAO,EAAE,MAAM,CAAC;AACd,gBAAA,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAI;AACtB,oBAAAnB,QAAM,CAAC,mDAAmD,EAAE,KAAK,CAAC;AAClE,oBAAA,OAAO,IAAI;iBACZ;aACF,CAAC;AACH,SAAA;AACD,QAAA,cAAc,EAAE;YACd,MAAM,EAAE,CAAI,CAAA,EAAA,eAAe,CAAE,CAAA;YAC7B,OAAO,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAI;AAC/B,oBAAAA,QAAM,CAAC,oCAAoC,EAAE,KAAK,CAAC;AACnD,oBAAAA,QAAM,CAAC,sCAAsC,EAAE,OAAO,CAAC;oBACvD,OAAO,KAAK,CAAC,QAAQ;iBACtB;aACF,CAAC;AACH,SAAA;AACF,KAAA;;;;;AAKD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE;AACF,gBAAA,KAAK,EAAE,eAAe;AACvB,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,iBAAiB;AAC9B,gBAAA,eAAe,EAAE,CAAC;AACnB,aAAA;AACF,SAAA;QACD,CAAC,eAAe,GAAG;AACjB,YAAA,EAAE,EAAE;gBACF,CAAC,4BAA4B,GAAG;oBAC9B,OAAO,EAAE,MAAM,CAAC;wBACd,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,QAAQ;wBACvC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;wBACzC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,WAAW;qBAC9C,CAAC;AACH,iBAAA;gBACD,CAAC,sBAAsB,GAAG,gBAAgB;AAC3C,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,aAAa;AAClB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,oBAAoB;AACjC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;QACD,CAAC,gBAAgB,GAAG;AAClB,YAAA,EAAE,EAAE;gBACF,CAAC,mBAAmB,GAAG;AACrB,oBAAA,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,MAAM,CAAC;wBACd,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,IAAI;qBAChC,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,aAAa;AAClB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;QACD,CAAC,UAAU,GAAG;AACZ,YAAA,EAAE,EAAE;gBACF,CAAC,qBAAqB,GAAG;AACvB,oBAAA,MAAM,EAAE,SAAS;;AAElB,iBAAA;gBACD,CAAC,kBAAkB,GAAG;AACpB,oBAAA,MAAM,EAAE,iBAAiB;;AAE1B,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,UAAU;AACf,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,eAAe;AAC5B,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;;QAED,CAAC,iBAAiB,GAAG;AACnB,YAAA,EAAE,EAAE;gBACF,CAAC,6BAA6B,GAAG;AAC/B,oBAAA,MAAM,EAAE,SAAS;oBACjB,OAAO,EAAE,MAAM,CAAC;AACd,wBAAA,QAAQ,EAAE,IAAI;qBACf,CAAC;AACH,iBAAA;gBACD,CAAC,oBAAoB,GAAG,OAAO;AAChC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,cAAc;AACnB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;QACD,CAAC,SAAS,GAAG;AACX,YAAA,EAAE,EAAE;gBACF,CAAC,iBAAiB,GAAG,iBAAiB;gBACtC,CAAC,oBAAoB,GAAG;AACtB,oBAAA,MAAM,EAAE,OAAO;AAChB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,SAAS;AACd,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,wBAAwB;AACrC,gBAAA,eAAe,EAAE,GAAG;AACrB,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA,CAAC;;AC9KK,MAAM,aAAa,GAAG,YAAY,CAIvC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IAEnC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO;AACvD,IAAA,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO;AAE1B,IAAA,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC1D,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;;IAGhE,IAAI,CAAC,QAAQ,EAAE;QACb,IAAI,SAAS,EAAE,EAAE;YACf,QAAQ,GAAG,GAAG;;AAGhB,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;;;AAIjE,IAAA,MAAM,cAAc,GAAG,YAA0B;AAC/C,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,iCAAiC;YACvC,SAAS;YACT,SAAS;YACT,QAAQ;YACR,aAAa,EAAE,aAAa,IAAI,YAAY;AAC7C,SAAA,CAAC;AACJ,KAAC;AAED,IAAA,cAAc,EAAE,CAAC,IAAI,CAAC,MAAK;QACzB;AACF,KAAC,CAAC;AACJ,CAAC,CACF;;ACnCM,MAAM,SAAS,GAAG,YAAY,CAGnC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO;IAE5B,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;;AAGzC,IAAA,MAAM,UAAU,GAAG,YAA0B;QAE3C,IAAI,SAAS,EAAE,EAAE;AACf,YAAA,MAAM,OAAO,kBAAiB,CAAC;;AAGjC,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AAChB,YAAA,MAAM,OAAO,kBAAc,CAAC;;QAG9B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC9C,IAAI,KAAK,EAAE;AACT,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAC,CAAC;;AAGzC,KAAC;AAED,IAAA,UAAU,EAAE,CAAC,IAAI,CAAC,MAAK;QACrB;AACF,KAAC,CAAC;AAEJ,CAAC,CAAC;;ACjCF,MAAMA,QAAM,GAAG,KAAK,CAAC,mCAAmC,CAAC;AAEzD;;;AAGG;AACI,MAAM,iBAAiB,GAAG,OAAO,OAAe,KAAI;IACzD,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC;IAC/D,IAAI,aAAa,EAAE;QACjB;;IAGF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACvC,IAAI,eAAe,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC;IACjE,IAAI,CAAC,eAAe,EAAE;AACpB,QAAA,MAAM,iBAAiB,CAAC,SAAS,CAAC;;IAGpC,eAAe,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC;IAC7D,IAAI,eAAe,EAAE;AACnB,QAAA,MAAM,eAAe,CAAC,oBAAoB,CAAC,OAAO,CAAC;;AAEvD,CAAC;AAwED,MAAM,mBAAmB,CAAA;IAKrB,WAAY,CAAA,QAAkB,EAAE,UAAkB,EAAA;QAF1C,IAAa,CAAA,aAAA,GAAY,KAAK;QAGlC,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAGhC,IAAA,MAAM,YAAY,CAAC,GAAW,EAAE,aAAqB,EAAA;AACnD,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;AACjC,QAAA,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;YACrD,OAAO,CAAC,KAAK,CAAC,CAAA,0BAAA,EAA6B,GAAG,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC;AAC3D,SAAC,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,CAAA,CAAE,CAAC;YACzC;;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AAEhD,QAAA,MAAM,iBAAiB,CAAC,YAAY,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAE7C,MAAM,KAAK,GAAG,0BAA0B;QAExC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AAEnC,QAAA,IAAI,eAAe;QAEnB,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC7B,YAAA,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;;QAG5B,IAAI,eAAe,EAAE;AACnB,YAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;YACxC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;AAC1D,YAAA,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;AAC7B,gBAAA,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB;;gBAEF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,gBAAA,IAAI,2BAA2B;gBAC/B,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,oBAAA,2BAA2B,GAAG,UAAU,CAAC,CAAC,CAAC;;AAE7C,gBAAA,IACE,eAAe;oBACf,2BAA2B;oBAC3B,2BAA2B,KAAK,eAAe,EAC/C;AACA,oBAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;;;;AAK7D,QAAA,IAAI;AACF,YAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;YACxC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC;AACpD,YAAAA,QAAM,CAAC,CAAA,mCAAA,EAAsC,aAAa,CAAA,CAAE,CAAC;;QAC7D,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;AACxC,YAAA,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC;AACzC,YAAAA,QAAM,CAAC,CAAA,kCAAA,EAAqC,aAAa,CAAA,CAAE,CAAC;;;AAKhE,IAAA,MAAM,KAAK,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC;YACpD;;AAGJ,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AAEzB,QAAA,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE;YAC9D,IAAI,OAAO,GAAG,KAAK;AAEnB,YAAA,OAAO,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,gBAAA,IAAI;AACA,oBAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,CAAA,CAAE,CAAC;oBAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;AACzC,oBAAA,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAA,CAAE,CAAC;AAC9C,oBAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;oBACpC,OAAO,GAAG,IAAI;AACd,oBAAA,MAAM;;gBACR,OAAO,KAAK,EAAE;oBACZ,OAAO,CAAC,KAAK,CAAC,CAAA,kBAAA,EAAqB,OAAO,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC;oBACrD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,GAAG,CAAC,CAAC;;;YAIvD,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,CAA4B,yBAAA,EAAA,IAAI,CAAC,UAAU,CAAc,WAAA,EAAA,OAAO,CAAE,CAAA,CAAC;;;AAIzF,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;AAC1B,QAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;;AAG3C,IAAA,OAAO,CAAC,OAAe,EAAA;QACnB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YACpC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACpC,YAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,CAAA,CAAE,CAAC;;aACpD;AACH,YAAA,OAAO,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAA,CAAE,CAAC;;;IAIzD,eAAe,GAAA;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;;IAGlD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5B,QAAA,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC;;AAEhE;AAGM,MAAM,cAAc,GAAG,OAAO,GAAW,KAAI;AAClD,IAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;AACjC,IAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB,CAAC;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEO,MAAM,iBAAiB,GAAG,OAAO,SAAmB,KAAI;IAC7D,IAAI,oBAAoB,GAAG,KAAK;AAEhC,IAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AAChC,QAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;QACxC,oBAAoB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;;IAG3D,IAAI,CAAC,oBAAoB,EAAE;QACzB,UAAU,CAAC,YAAW;AACpB,YAAA,MAAM,iBAAiB,CAAC,SAAS,CAAC;SACnC,EAAE,GAAG,CAAC;;AAEX,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC;AAE7B,MAAM,WAAW,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAa,KAAI;AACnE,IAAA,IAAI,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC;AAC9C,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAY,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5E,IAAA,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAY,KAAK,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC;IAC7D,MAAM,eAAe,GAAG,IAAI,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5D,IAAA,MAAM,eAAe,CAAC,KAAK,EAAE;;AAE7B,IAAA,MAAM,iBAAiB,CAAC,QAAQ,CAAC;IACjCA,QAAM,CAAC,6BAA6B,CAAC;AACvC,CAAC;;AC/QM,MAAM,kBAAkB,GAAG,OAAO,eAAe;;;;;;;;;AASvD,CAAA,CAAC;AAEsC,OAAO,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgC7D,CAAA;;AC/BM,MAAM,WAAW,GAAgB,OAAO,KAAK,KAAI;AACtD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,IAAI,oBAAwC;IAC5C,IAAI,KAAK,EAAE;AACT,QAAA,oBAAoB,GAAG,KAAK,CAAC,oBAAoB;;IAGnD,MAAM,YAAY,GAAU,EAAE;IAE9B,IAAI,oBAAoB,EAAE;AACxB,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AACpE,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;;IAGrE,MAAM,YAAY,GAAG,MAAM;AACxB,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;AACb,SAAA,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IAE9B,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9C;;AAGF,IAAA,OAAO,YAAY,CAAC,CAAC,CAAC;AACxB,CAAC;;ACnCM,MAAM,YAAY,GAAG,OAC1B,cAAqC,EACrC,cAAqC,KACnC;AACF,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM;SACH,MAAM,CAAC,QAAQ;AACf,SAAA,GAAG,CAAC;AACH,QAAA,GAAG,cAAc;AACjB,QAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB;AACA,SAAA,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;;ACbM,MAAM,oBAAoB,GAAG,OAAO,eAAe;;;;;;;;;;AAUzD,CAAA,CAAuC;;ACX3B,MAAAoB,cAAY,GAAG,OAAO,GAAW,EAAE,KAAa,KAAI;AAC/D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM;SACH,MAAM,CAAC,QAAQ;AACf,SAAA,MAAM,CAAC;QACN,GAAG;QACH,KAAK;KACN;AACA,SAAA,kBAAkB,CAAC;QAClB,MAAM,EAAE,QAAQ,CAAC,GAAG;AACpB,QAAA,GAAG,EAAE;YACH,KAAK;AACN,SAAA;AACF,KAAA,CAAC;AACN;;ACXO,MAAM,iBAAiB,GAAG,YAAW;IAC1C,IAAI,SAAS,EAAE,EAAE;QACC,CAAC,MAAM,OAAO,6BAAqC,CAAC,EAAE,aAAa;;AAGrF,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;QACA,CAAC,MAAM,OAAO,6BAAkC,CAAC,EAAE,aAAa;;AAEpF,CAAC;AAGD,IAAI,MAAM,GAAG,aAAa;AAEnB,MAAM,UAAU,GAAG,MAA0B;IAClD,IACE,OAAO,MAAM,KAAK,WAAW;AAC7B,QAAA,CAAC,OAAO;SACP,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AACrC,YAAA,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC5C;QACA;;IAGF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACzC,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC5C,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,QAAQ,EAAE,OAAO;AAClB,aAAA,CAAC;;QAGJ,OAAO,OAAO,CAAC,IAAI,CAAC;AAClB,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,QAAQ,EAAE,OAAO;AAClB,SAAA,CAAC;;;;;;;AASJ,IAAA,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC5C,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AAC1B,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,OAAO;AAClB,SAAA,CAAC;;IAGJ,OAAO,OAAO,CAAC,IAAI,CAAC;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,QAAQ,EAAE,OAAO;AAClB,KAAA,CAAC;AACJ,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,SAAiB,KAAU;IAC1D,MAAM,GAAG,SAAS;AACpB,CAAC;;AC1CD,MAAMpB,QAAM,GAAG,KAAK,CAAC,wBAAwB,CAAC;AAGvC,MAAM,8BAA8B,GAAG,OAAO,EACnD,SAAS,EACT,OAAO,GACR,KAAI;AAEH,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;QAChB;;AAGF,IAAA,MAAM,WAAW,CAAC,SAAS,CAAC;IAE5B,YAAY,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,CAAC;IACxD,YAAY,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,SAAS,EAAE,CAAC;AAClE,CAAC;AAEM,MAAM,oCAAoC,GAAG,YAAW;AAC7D,IAAA,IAAI,SAA+B;AAEnC,IAAA,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE;AACzB,QAAA,SAAS,GAAG,MAAM,kBAAkB,EAAE;;AAGxC,IAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;AAC1B,QAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE;QACxC,MAAM,eAAe,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe;QAC3E,IAAI,eAAe,EAAE;AACnB,YAAA,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,QAAQ,KAAI;AAC1C,gBAAA,OAAO,QAAQ,CAAC,KAAK,KAAK,OAAO;AACnC,aAAC,CAAC;AACF,YAAA,SAAS,GAAG,MAAM,kBAAkB,EAAE;;;IAI1C,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC;;AAGF,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;IAE9C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACrD,QAAA,QAAQ,EAAE,CAAC,kBAAkB,EAAE,GAAG,SAAS,CAAC;QAC5C,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACpC,YAAA,KAAK,EAAE;AACL,gBAAA,QAAQ,EAAE;AACR,oBAAA,EAAE,EAAE,SAAS;AACd,iBAAA;AACD,gBAAA,MAAM,EAAE;AACN,oBAAA,EAAE,EAAE;AACF,wBAAA,EAAE,EAAE;AACF,4BAAA,MAAM,EACJ,oEAAoE;AACvE,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;AACL,KAAA,CAAC;AAEF,IAAA,MAAM,eAAe,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AACpD,IAAA,MAAM,eAAe,CAAC,oBAAoB,CAAC,aAAa,CAAC;AACzD,IAAA,MAAM,eAAe,CAAC,oBAAoB,CAAC,aAAa,CAAC;AACzD,IAAA,MAAM,eAAe,CAAC,oBAAoB,CAAC,eAAe,CAAC;AAE3D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,CAAC,IAAI,CAAC,6DAA6D,CAAC;AAC3E,QAAA,OAAO,EAAE;;IAGX,MAAM,yBAAyB,GAAG,MAAM;AACnC,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;SACb,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC;AAEpD,IAAA,IAAI,oBAAoB,GAAG,IAAI,GAAG,EAAU;IAE5C,IAAI,yBAAyB,IAAI,yBAAyB,CAAC,MAAM,KAAK,CAAC,EAAE;QACvE,MAAM,WAAW,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAAC,KAAK;QACtD,IAAI,WAAW,EAAE;YACf,MAAM,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AACzD,YAAA,oBAAoB,GAAG,IAAI,GAAG,CAAC,yBAAyB,CAAC;;;IAI7D,MAAM,cAAc,GAAG,EAAE;AAEzB,IAAA,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AACzC,QAAA,IAAI,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAC3C;;AAEF,QAAA,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;;AAGpC,IAAA,MAAM,OAAO,GAAG,UAAU,EAAE;IAE5B,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,CAAC,IAAI,CACV,8DAA8D,CAC/D;AACD,QAAA,OAAO,EAAE;;AAGX,IAAA,MAAM,aAAa,GAAG,iBAAiB,CAAC,gBAAgB,EAAE;IAE1D,MAAM,wBAAwB,GAAG,EAAE;AAEnC,IAAA,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE;AAE1C,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,CAAW,QAAA,EAAA,YAAY,CAAO,IAAA,EAAA,aAAa,CAAS,OAAA,CAAA,CACrD;AAED,YAAA,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;AACtB,gBAAAA,QAAM,CACJ,CAAA,2EAAA,EAA8E,aAAa,CAAA,CAAE,CAC9F;AAED,gBAAA,oBAAoB,CAAC,GAAG,CAAC,aAAa,CAAC;AAEvC,gBAAA,MAAMoB,cAAY,CAChB,sBAAsB,EACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CACjD;gBAED;;YAGF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACxD,gBAAA,QAAQ,EAAE,CAAC,oBAAoB,EAAE,aAAa,CAAC;gBAC/C,OAAO,EAAE,YACP,aAAa,CAAC,OAAO,CAAC,oBAAoB,EAAE;oBAC1C,aAAa;iBACd,CAAC;AACL,aAAA,CAAC;AAEF,YAAA,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE;AAElC,YAAA,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACjD,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE;AAClC,oBAAA,IAAI,IAAI,KAAK,iBAAiB,EAAE;AAC9B,wBAAA,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC;AACvC,4BAAA,oBAAoB,EAAE,aAAa;AACpC,yBAAA,CAAC;wBAEF,IAAI,cAAc,EAAE;4BAClB,MAAM,YAAY,CAAC,cAAc,EAAE;AACjC,gCAAA,WAAW,EAAE,KAAK;AACnB,6BAAA,CAAC;;;;;AAMV,YAAA,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC;;QAI5C,OAAO,KAAK,EAAE;YACdpB,QAAM,CAAC,KAAK,CAAC;;;AAIjB,IAAA,OAAO,CAAC,GAAG,CAAC,mEAAmE,EAAE,wBAAwB,CAAC;IAE1G,MAAM,eAAe,CAAC,gBAAgB,CAAC;AACrC,QAAA,cAAc,EAAE,wBAAwB;AACxC,QAAA,WAAW,EAAE,YAAY;QACzB,oBAAoB;AACrB,KAAA,CAAC;IAEF,MAAM,eAAe,CAAC,eAAe,CAAC;AACpC,QAAA,KAAK,EAAE,GAAG;AACV,QAAA,MAAM,EAAE,GAAG;AACZ,KAAA,CAAC;AACJ,CAAC;;ACxMD,IAAI,aAAa,GAAG,KAAK;AAGzB,MAAM,aAAa,GAAG,OAAQ,CAAC,KAAK;IAClC,IAAK,aAAa,EAAG;QACnB,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACxD;;AAGF,IAAA,IAAI;QAEF,IAAI,SAAS,EAAE,EAAE;AACf,YAAA,MAAM,OAAO,2BAA+B,CAAC;;AAG/C,QAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AAChB,YAAA,MAAM,OAAO,2BAA4B,CAAC;;AAG5C,QAAA,MAAM,eAAe,CAAC,oBAAoB,EAAE;QAE5C,aAAa,GAAG,IAAI;QAEpB,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;IACxD,OAAQ,CAAC,EAAG;QACZ,IAAK,CAAC,aAAa,EAAG;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,CAAC,CAAC;AACnD,YAAA,YAAY,CAAC,IAAI,CAAC,kBAAkB,EAAE;AACpC,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA,CAAC;;;;AAIR,CAAC;AAED,IAAIqB,UAAQ,GAAG,KAAK;AAEb,MAAM,gBAAgB,GAAG,MAAK;AACnC,IAAA,YAAY,CAAC,WAAW,CACtB,wBAAwB,EACxB,8BAA8B,CAC/B;AACD,IAAA,YAAY,CAAC,WAAW,CACtB,8BAA8B,EAC9B,oCAAoC,CACrC;AACD,IAAA,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,CAAC;IAClDA,UAAQ,GAAG,IAAI;AACjB,CAAC;AAEM,MAAM,mBAAmB,GAAG,MAAK;AACtC,IAAA,OAAOA,UAAQ;AACjB,CAAC;AAEM,MAAM,eAAe,GAAG,MAAK;AAClC,IAAA,OAAO,aAAa;AACtB,CAAC;;ACnDD,MAAMrB,QAAM,GAAG,KAAK,CAAC,qCAAqC,CAAC;AAEpD,MAAM,WAAW,GAAG,YAAY,CAGrC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,GAAG,GAAG,OAAO;IAEtDA,QAAM,CAAC,gDAAgD,CAAC;AAExD,IAAA,MAAM,YAAY,GAAG,YAA6B;QAChDA,QAAM,CAAC,sDAAsD,CAAC;AAE9D,QAAAA,QAAM,CACJ,sDAAsD,EACtD,mBAAmB,EAAE,CACtB;AACD,QAAAA,QAAM,CACJ,kDAAkD,EAClD,eAAe,EAAE,CAClB;QAED,IAAI,SAAS,EAAE,EAAE;AACf,YAAA,MAAM,YAAY,CAAC;AACjB,gBAAA,GAAG,EAAE;AACH,oBAAA,UAAU,EAAE,wBAAwB;oBACpC,IAAI,EAAE,EAAE,SAAS,EAAE;AACpB,iBAAA;AACD,gBAAA,GAAG,EAAE;AACH,oBAAA,UAAU,EAAE,wBAAwB;AACrC,iBAAA;AACF,aAAA,CAAC;;AAIJ,QAAA,MAAM,WAAW,GAAG,CAAA,EAAG,QAAQ,IAAI,kBAAkB,wBAAwB;QAG7E,IAAI,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC;QAEjE,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;AACxC,YAAA,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;;QAG5C,IAAI,aAAa,EAAE;YACjB,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;YAC1DA,QAAM,CAAC,gDAAgD,CAAC;AACxD,YAAA,OAAO,IAAI;;AAGb,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;AAGxC,QAAA,OAAO,KAAK;;;;;;;;;;;;;;;AAiBd,KAAC;;;;;AAMD,IAAA,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,YAAY,KAAI;QACnC,IAAI,YAAY,EAAE;AAChB,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;;QAErD;AACF,KAAC,CAAC;AAEF,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC,CAAC;;ACxFF,MAAMA,QAAM,GAAG,KAAK,CAAC,6CAA6C,CAAC;AAE5D,MAAM,UAAU,GAAG,YAAY,CAGpC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IAErC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO;IAEvD,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;AAG7D,IAAA,MAAM,WAAW,GAAG,YAA0B;;AAE5C,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;QAE/B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC;;QAErC,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QACtD,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAEtD,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;AAE9C,QAAAA,QAAM,CAAC,cAAc,EAAE,YAAY,CAAC;AAEpC,QAAA,MAAM,EACJ,OAAO,EACP,OAAO,EACP,WAAW,EACX,MAAM,EACN,WAAW,EACX,IAAI,GACL,GAAG,cAAc,CAAC,QAAQ,CAAC;AAE5B,QAAAA,QAAM,CAAC,SAAS,EAAE,OAAO,CAAC;AAC1B,QAAAA,QAAM,CAAC,SAAS,EAAE,OAAO,CAAC;AAC1B,QAAAA,QAAM,CAAC,aAAa,EAAE,WAAW,CAAC;AAClC,QAAAA,QAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;AACxB,QAAAA,QAAM,CAAC,aAAa,EAAE,WAAW,CAAC;AAClC,QAAAA,QAAM,CAAC,MAAM,EAAE,IAAI,CAAC;QAEpBA,QAAM,CAAC,sBAAsB,CAAC;AAE9B,QAAA,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;AAEvD,QAAAA,QAAM,CAAC,aAAa,EAAE,WAAW,CAAC;;AAGlC,QAAA,MAAM;aACH,MAAM,CAAC,QAAQ;AACf,aAAA,MAAM,CAAC;AACN,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,KAAK,EAAE,oBAAoB;SAC5B;AACA,aAAA,kBAAkB,CAAC;YAClB,MAAM,EAAE,QAAQ,CAAC,GAAG;AACpB,YAAA,GAAG,EAAE;AACL,gBAAA,KAAK,EAAE,oBAAoB;AAC1B,aAAA;AACF,SAAA,CAAC;;AAEJ,QAAA,MAAM;aACH,MAAM,CAAC,QAAQ;AACf,aAAA,MAAM,CAAC;AACN,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,KAAK,EAAE,oBAAoB;SAC5B;AACA,aAAA,kBAAkB,CAAC;YAClB,MAAM,EAAE,QAAQ,CAAC,GAAG;AACpB,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,oBAAoB;AAC5B,aAAA;AACF,SAAA,CAAC;AACJ,QAAA,MAAM;aACH,MAAM,CAAC,QAAQ;AACf,aAAA,MAAM,CAAC;AACN,YAAA,GAAG,EAAE,eAAe;YACpB,KAAK,EAAE,aAAa,IAAI,aAAa;SACtC;AACA,aAAA,kBAAkB,CAAC;YAClB,MAAM,EAAE,QAAQ,CAAC,GAAG;AACpB,YAAA,GAAG,EAAE;gBACH,KAAK,EAAE,aAAa,IAAI,aAAa;AACtC,aAAA;AACF,SAAA,CAAC;QACFA,QAAM,CAAC,+CAA+C,CAAC;AACzD,KAAC;AAEH,IAAA,WAAW,EAAE,CAAC,IAAI,CAAC,MAAK;QACtBA,QAAM,CAAC,mDAAmD,CAAC;QAC3D,OAAO,QAAQ,CAAC,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;AAC3D,KAAC,CAAC;AAEF,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC,CAAC;;AChGa,KAAK,CAAC,4CAA4C;AAE1D,MAAM,SAAS,GAAG,YAAY,CAGnC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO;AAEhC,IAAA,IAAI,YAAsC;AAE1C,IAAA,MAAM,UAAU,GAAG,YAA0B;QAC3C,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK,OAAO,EAAE;YAChD;;AAEF,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;YAC7B,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACjD,gBAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE;oBAC9B,OAAO,OAAO,EAAE;;AAGlB,gBAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACnE,aAAC,CAAC;AACJ,SAAC,CAAC;AACJ,KAAC;AAED,IAAA,UAAU,EAAE,CAAC,IAAI,CAAC,MAAK;AACrB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;AACrD,KAAC,CAAC;AAEF,IAAA,OAAO,MAAK;QACV,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,WAAW,EAAE;;AAE9B,KAAC;AACH,CAAC,CAAC;;ACrCa,KAAK,CAAC,+CAA+C;AAE7D,MAAM,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AAErC,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;AAChB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QACnC;;AAGF,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO;AAE7B,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK;AAEhC,IAAA,MAAM,aAAa,GAAG,YAA0B;AAC9C,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAW;gBACtC,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,UAAU,CACpD,CAAG,EAAA,QAAQ,CAAwB,sBAAA,CAAA,CACpC;gBACD,IAAI,aAAa,EAAE;oBACjB,aAAa,CAAC,QAAQ,CAAC;AACvB,oBAAA,OAAO,EAAE;;aAEZ,EAAE,IAAI,CAAC;AACV,SAAC,CAAC;AACJ,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QACnC;AACF,KAAC,CAAC;AACJ,CAAC,CAAC;;ACnBF,MAAMA,QAAM,GAAG,KAAK,CAAC,mCAAmC,CAAC;AAEzD,MAAM,WAAEsB,SAAO,EAAE,GAAG,sBAAsB,CAAC;AACzC,IAAA,SAAS,EAAE,KAAK;AACjB,CAAA,CAAC;AAEF,MAAM,QACJC,MAAI,EACJ,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,cAAc,GACf,GAAG,aAAa;AAEjB;AACO,MAAM,eAAe,GAAG,KAAK,CAAC;AACnC,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAAqC;AAC9C,QAAA,KAAK,EAAE,EAAiD;AACzD,KAAA;AACD,IAAA,MAAM,EAAE;QACN,SAAS;QACT,aAAa;QACb,YAAY;QACZ,WAAW;QACX,SAAS;QACT,UAAU;AACX,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;IACf,EAAE,EAAE,UAAU,CAAC,QAAQ;AACvB,IAAA,OAAO,EAAEA,MAAI;AACb,IAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAI;QACrB,OAAO;AACL,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,QAAQ,EAAE,KAAK;SAChB;KACF;AACD,IAAA,MAAM,EAAE;QACN,CAACA,MAAI,GAAG;AACN,YAAA,EAAE,EAAE;AACF,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,IAAI,EAAE;AACJ,oBAAA,MAAM,EAAE,gBAAgB;AACxB,oBAAA,OAAO,EAAE;AACP,wBAAA,MAAM,CAAC;4BACL,YAAY,EAAE,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,KAAI;gCAClC,OAAO,KAAK,CAAC,SAAS,EAAE;AACtB,oCAAA,KAAK,EAAE;AACL,wCAAA,MAAM,EAAE,WAAW;wCACnB,SAAS,EAAE,OAAO,EAAE,QAAQ;AAC7B,qCAAA;AACF,iCAAA,CAAC;6BACH;yBACF,CAAC;AACH,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,qCAAqC;AAClD,gBAAA,eAAe,EAAE,CAAC;AACnB,aAAA;AACF,SAAA;QACD,CAAC,gBAAgB,GAAG;AAClB,YAAA,EAAE,EAAE;gBACF,CAAC,iCAAiC,GAAG;AACnC,oBAAA,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,MAAM,CAAC;wBACd,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;wBACzC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;wBACzC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,QAAQ;wBACvC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,aAAa;qBAClD,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,eAAe;AACpB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,kBAAkB;AAC/B,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;YACD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,EAAE,EAAE;AACF,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,MAAM,EAAE,cAAc;AACvB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,WAAW;AAChB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,EAAE,EAAE;AACF,gBAAA,aAAa,EAAE;AACb,oBAAA,MAAM,EAAE,cAAc;AACvB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,cAAc;AACnB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACF,SAAA;QACD,CAAC,cAAc,GAAG;AAChB,YAAA,EAAE,EAAE;gBACF,CAAC,+BAA+B,GAAG;AACjC,oBAAA,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACpC,iBAAA;AACD,gBAAA,kBAAkB,EAAE;AAClB,oBAAA,MAAM,EAAE,iBAAiB;AAC1B,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,aAAa;AAClB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,uBAAuB;AACpC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;YACD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,SAAA;QACD,CAAC,cAAc,GAAG;AAChB,YAAA,EAAE,EAAE;gBACF,CAAC,+BAA+B,GAAG;AACjC,oBAAA,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,MAAK;wBACZvB,QAAM,CAAC,uCAAuC,CAAC;qBAChD;AACF,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,WAAW;AAChB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACF,SAAA;;QAED,CAAC,aAAa,GAAG;AACf,YAAA,EAAE,EAAE;gBACF,CAAC,8BAA8B,GAAG,OAAO;AAC1C,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,sBAAsB;AACnC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;YACD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;YACL,KAAK,EAAE,MAAK;AACV,gBAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC;gBAC5CA,QAAM,CAAC,+BAA+B,CAAC;aACxC;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,sBAAsB;AACnC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACF,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,EAAE,EAAE;AACF,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACtC,iBAAA;AACF,aAAA;YACD,KAAK,EAAE,MAAK;gBACVA,QAAM,CAAC,+BAA+B,CAAC;aACxC;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,+BAA+B;AAC5C,gBAAA,eAAe,EAAE,IAAI;AACtB,aAAA;YACD,IAAI,EAAE,CAAC,OAAO,CAAC;AAChB,SAAA;AACF,KAAA;AACF,CAAA,CAAC;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AC9LO,MAAMD,YAAU,GAAG,YAAY,CAGpC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,OAAO;AAEhE,IAAA,MAAM,QAAQ,GAAU;AACtB,QAAA,UAAU,EAAE;AACV,YAAA,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;AACjB,YAAA,GAAG,EAAE,IAAI;AACV,SAAA;KACF;AAED,IAAA,IAAI,kBAAsC;AAC1C,IAAA,IAAI,eAAmC;AACvC,IAAA,IAAI,cAAmD;AACvD,IAAA,IAAI,KAAK;AAET,IAAA,MAAM,WAAW,GAAG,YAAW;AAC7B,QAAA,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BzB,QAAA,kBAAkB,GAAG,SAAS,CAAC,WAAW,EAAE;AAC5C,QAAA,eAAe,GAAG,SAAS,CAAC,kBAAmB,CAAC;AAEhD,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;AAE9C,QAAA,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AAChD,YAAA,QAAQ,EAAE,CAAC,CAAa,UAAA,EAAA,SAAS,EAAE,CAAC;YACpC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;AAC7B,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,CAAW,QAAA,EAAA,WAAW,CAAC,SAAS,CAAC,CAAE,CAAA;AAC5C,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;AAEF,QAAA,IACE,CAAC,YAAY;YACb,CAAC,YAAY,CAAC,OAAO;AACrB,YAAA,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EACjC;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,CAAA,CAAE,CAAC;;QAGrD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAE3C,QAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,8BAAA,EAAiC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAE,CAAA,CAC/D;;QAGH,MAAM,WAAW,GAAG,MAAM;AACvB,aAAA,MAAM,CAAC;YACN,EAAE,EAAEmB,MAAW,CAAC,EAAE;YAClB,IAAI,EAAEA,MAAW,CAAC,IAAI;YACtB,GAAG,EAAE,SAAS,CAAC,GAAG;SACnB;aACA,IAAI,CAACA,MAAW;AAChB,aAAA,QAAQ,CAAC,SAAS,EAAE,EAAE,CAACA,MAAW,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC;aACzD,KAAK,CAAC,EAAE,CAACA,MAAW,CAAC,IAAI,EAAE,SAAS,CAAC;aACrC,KAAK,CAAC,CAAC,CAAC;AAEX,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,UAAU,EAAE;YACf,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;YAC9C;;AAGF,QAAA,MAAM;aACH,MAAM,CAAC,SAAS;AAChB,aAAA,MAAM,CAAC;YACN,OAAO,EAAE,UAAU,CAAC,EAAE;YACtB,GAAG,EAAE,WAAW,CAAC,EAAE;SACpB;AACA,aAAA,mBAAmB,EAAE;AAExB,QAAA,MAAM,SAAS,GAAG,MAAM,kBAAkB,EAAE;AAE5C,QAAA,cAAc,GAAG;AACf,YAAA,KAAK,EAAE;AACL,gBAAA,QAAQ,EAAE;AACR,oBAAA,EAAE,EAAE,SAAS;AACd,iBAAA;AACD,gBAAA,QAAQ,EAAE;oBACR,MAAM,EAAE,WAAW,CAAC,EAAE;AACvB,iBAAA;AACD,gBAAA,eAAe,EAAE;oBACf,QAAQ,EAAE,WAAW,CAAC,EAAE;AACzB,iBAAA;AACF,aAAA;SACF;AACH,KAAC;IAED,MAAM,iBAAiB,GAAG,MAAK;AAC7B,QAAA,WAAW,EAAE,CAAC,IAAI,CAAC,MAAK;AACtB,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,mBAAmB;gBACzB,SAAS;gBACT,kBAAkB;gBAClB,eAAe;gBACf,cAAc;AACf,aAAA,CAAC;YACF,QAAS,CAAC,UAAW,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YACtC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AACpD,SAAC,CAAC;AACJ,KAAC;IAED,IAAI,cAAc,EAAE;AAClB,QAAA,iBAAiB,EAAE;;AAGrB,IAAA,MAAM,cAAc,GAAG,CAAC,KAAK,KAAI;AAC/B,QAAA,iBAAiB,EAAE;AACrB,KAAC;AAED,IAAA,YAAY,CAAC,WAAW,CAAC,cAAc,EAAE,cAAc,CAAC;AAExD,IAAA,OAAO,MAAK;AACV,QAAA,YAAY,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC;AAC7D,KAAC;AACH,CAAC,CAAC;;ACvMK,MAAM,WAAW,GAAG,YAAY,CAIrC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACnC,IAAA,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,OAAO;AAE1C,IAAA,MAAM,YAAY,GAAG,YAA0B,GAAI;AAEnD,IAAA,YAAY,EAAE,CAAC,IAAI,CAAC,MAAK;AACvB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;AAC1C,KAAC,CAAC;AAEF,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC,CACF;;ACTc,KAAK,CAAC,mCAAmC;AAEjD,MAAM,UAAU,GAAG,YAAY,CAIpC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACnC,IAAA,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,OAAO;IAE7C,IAAI,CAAC,cAAc,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;;AAG5C,IAAA,IAAI,SAAoC;AAExC,IAAA,MAAM,WAAW,GAAG,YAAW;AAC7B,QAAA,MAAM,QAAQ,GAAG,CAAC,WAAW,SAAS,CAAA,CAAE,CAAC;AAEzC,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;AAE9C,QAAA,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;YAC3C,QAAQ;AACR,YAAA,OAAO,EAAE,YAAY,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC;AAClE,SAAA,CAAC;AAEF,QAAA,SAAS,GAAG,OAAO,CAAC,SAAS;AAC/B,KAAC;AAED,IAAA,WAAW,EAAE,CAAC,IAAI,CAAC,MAAK;QACtB,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;AACpD,KAAC,CAAC;AAEF,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC,CACF;;ACpCM,MAAM,aAAa,GAAG,YAAY,CAIvC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACnC,IAAA,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO;IAExC,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;;AAG5C,IAAA,IAAI,YAAuC;AAE3C,IAAA,MAAM,cAAc,GAAG,YAAW;AAChC,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;AAE9C,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;AAEhD,QAAA,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AAC3C,YAAA,QAAQ,EAAE,CAAC,CAAc,WAAA,EAAA,SAAS,EAAE,CAAC;YACrC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;AAC9B,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,EAAE,EAAE,OAAO;AACZ,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;AAEF,QAAA,YAAY,GAAG,OAAO,CAAC,YAAY;AACrC,KAAC;AAED,IAAA,cAAc,EAAE,CAAC,IAAI,CAAC,MAAK;QACzB,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;AAC1D,KAAC,CAAC;AAEF,IAAA,OAAO,MAAQ,GAAC;AAClB,CAAC,CACF;;ACxBM,MAAM,iBAAiB,GAAG,YAAY,CAG3C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;AAEzC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAwB;AACzD,IAAA,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAyB;AACjE,IAAA,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB;AACvD,IAAA,MAAM,2BAA2B,GAAG,IAAI,GAAG,EAAuB;AAClE,IAAA,MAAM,6BAA6B,GAAG,IAAI,GAAG,EAAyB;AACtE,IAAA,MAAM,8BAA8B,GAAG,IAAI,GAAG,EAAkB;AAEhE,IAAA,MAAM,kBAAkB,GAAG,YAAW;;AAEpC,QAAA,KAAK,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CACrD,UAA6B,CAAC,MAAM,CACtC,EAAE;YACD,IAAI,WAAW,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5D,gBAAA,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC;;;AAIpD,QAAA,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAM,CAAC;;AAGjD,QAAA,KAAK,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE;YACrE,MAAM,iBAAiB,GAAG,MAAM;AAC7B,iBAAA,MAAM,CAAC;gBACN,EAAE,EAAEA,MAAW,CAAC,EAAE;gBAClB,IAAI,EAAEA,MAAW,CAAC,IAAI;gBACtB,GAAG,EAAE,SAAS,CAAC,GAAG;aACnB;iBACA,IAAI,CAACA,MAAW;AAChB,iBAAA,QAAQ,CAAC,SAAS,EAAE,EAAE,CAACA,MAAW,CAAC,EAAE,EAAE,SAAS,CAAC,OAAO,CAAC;iBACzD,KAAK,CAAC,EAAE,CAACA,MAAW,CAAC,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC;iBAChD,KAAK,CAAC,CAAC,CAAC;YAEX,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;AACrD,gBAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC;AACzC,gBAAA,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG;;gBAExC,IAAI,eAAe,IAAI,eAAe,KAAK,UAAU,CAAC,SAAS,EAAE;oBAC/D,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,CAAC;;;;AAKnE,QAAA,MAAM,QAAQ,GAAG,CAAC,oBAAoB,SAAS,CAAA,CAAE,CAAC;AAElD,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;QAE9C,MAAM,EAAE,WAAW,EAAE,yBAAyB,EAAE,GAC9C,MAAM,WAAW,CAAC,UAAU,CAAC;YAC3B,QAAQ;YACR,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;AAC9B,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,EAAE,EAAE;AACF,4BAAA,EAAE,EAAE;gCACF,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;AAC/C,6BAAA;AACF,yBAAA;AACF,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACR,wBAAA,EAAE,EAAE,SAAS;AACd,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;AAEJ,QAAA,MAAM,cAAc,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAEvE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACrE,YAAA,QAAQ,EAAE,CAAC,CAAqB,kBAAA,EAAA,SAAS,EAAE,CAAC;YAC5C,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE;AAC9B,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,EAAE,EAAE,cAAc;AACnB,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACR,wBAAA,EAAE,EAAE,SAAS;AACd,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;;AAGF,QAAA,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;AACrC,YAAA,MAAM,0BAA0B,GAC9B,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;AACpD,YAAA,0BAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;YACxC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,0BAA0B,CAAC;;;AAI1E,QAAA,KAAK,MAAM,CACT,OAAO,EACP,eAAe,EAChB,IAAI,wBAAwB,CAAC,OAAO,EAAE,EAAE;YACvC,MAAM,qBAAqB,GAAG,eAAe,CAAC,IAAI,CAChD,CAAC,CAAc,EAAE,CAAc,KAAI;AACjC,gBAAA,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;AACtC,aAAC,CACF;AACD,YAAA,wBAAwB,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC;YAC5D,2BAA2B,CAAC,GAAG,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;AAClE,YAAA,8BAA8B,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC;;;QAI1E,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CACrC,2BAA2B,CAAC,MAAM,EAAE,CACrC,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC;QAE9B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACrD,YAAA,QAAQ,EAAE,CAAC,CAAmB,gBAAA,EAAA,SAAS,EAAE,CAAC;YAC1C,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,mCAAmC,EAAE;AACrD,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,EAAE,EAAE,oBAAoB;AACzB,qBAAA;AACD,oBAAA,QAAQ,EAAE;AACR,wBAAA,EAAE,EAAE,SAAS;AACd,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;AAEF,QAAA,KAAK,MAAM,mBAAmB,IAAI,aAAa,EAAE;YAC/C,MAAM,kBAAkB,GAAG,8BAA8B,CAAC,GAAG,CAC3D,mBAAmB,CAAC,MAAM,CAC3B;YACD,MAAM,4BAA4B,GAChC,6BAA6B,CAAC,GAAG,CAAC,kBAAmB,CAAC,IAAI,EAAE;AAC9D,YAAA,4BAA4B,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtD,YAAA,6BAA6B,CAAC,GAAG,CAC/B,kBAAmB,EACnB,4BAA4B,CAC7B;;AAEL,KAAC;AAED,IAAA,kBAAkB,EAAE,CAAC,IAAI,CAAC,MAAK;AAC7B,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,0BAA0B;YAChC,6BAA6B;YAC7B,wBAAwB;YACxB,iBAAiB;YACjB,qBAAqB;AACtB,SAAA,CAAC;QACF;AACF,KAAC,CAAC;AACJ,CAAC,CAAC;;AClLK,MAAM,YAAY,GAAG,YAAY,CAItC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACnC,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,UAAU,EACV,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK;;;;AAIN,MAAA,GAAG,OAAO;AAEX,IAAA,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE;AAC/B,QAAA,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;;AAGvD,IAAA,MAAM,aAAa,GAAG,YAAW;;AAE/B,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AAC7C,YAAA,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CACzC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAC5C;AAED,YAAA,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;gBAChC;;;YAIF,MAAM,iBAAiB,GAAsC,EAAE;AAC/D,YAAA,eAAe,CAAC,OAAO,CAAC,CAAC,OAAoB,KAAI;gBAC/C,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;AACzD,gBAAA,IACE,CAAC,eAAe;AAChB,oBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;wBACpC,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,EAC5C;AACA,oBAAA,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO;;AAE/C,aAAC,CAAC;;AAEN,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;AACzC,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI;AACrD,QAAA,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE;YACnC,SAAS;AACV,SAAA,CAAC;AACF,QAAA,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE;YAChC,SAAS;AACV,SAAA,CAAC;AACF,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,aAAa;AACnB,YAAA,KAAK,EAAE;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,YAAY,EAAE;AACZ,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;AAChB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC,CACF;;AC7DM,MAAM,cAAc,GAAG,KAAK,CAAC;AAClC,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAAqC;AAC9C,QAAA,KAAK,EAAE,EAAiD;AACzD,KAAA;AACD,IAAA,MAAM,EAAE;oBACNnB,YAAU;QACV,WAAW;QACX,UAAU;QACV,aAAa;QACb,iBAAiB;QACjB,YAAY;AACb,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;IACf,EAAE,EAAE,UAAU,CAAC,SAAS;AACxB,IAAA,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAA+B;AACvD,IAAA,EAAE,EAAE;AACF,QAAA,WAAW,EAAE;YACX,OAAO,EAAE,MAAM,CAAC;gBACd,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,KAAK;aAClC,CAAC;AACH,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE;YACJ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAI;AAC3B,gBAAA,YAAY,CAAC,IAAI,CAAC,2BAA2B,EAAE;AAC7C,oBAAA,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE;oBAClC,SAAS,EAAE,GAAG,UAAU,CAAC,SAAS,CAAI,CAAA,EAAA,OAAO,CAAC,SAAS,CAAE,CAAA;AAC1D,iBAAA,CAAC;aACH;AACF,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,EAAE,EAAE;AACF,gBAAA,WAAW,EAAE;AACX,oBAAA,MAAM,EAAE,cAAc;oBACtB,OAAO,EAAE,MAAM,CAAC;AACd,wBAAA,cAAc,EAAE,IAAI;qBACrB,CAAC;AACH,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE;AACF,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,MAAM,EAAE,eAAe;oBACvB,OAAO,EAAE,MAAM,CAAC;wBACd,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;wBACzC,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,kBAAkB;wBAC3D,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,eAAe;wBACrD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,cAAc;qBACpD,CAAC;AACH,iBAAA;AACD,gBAAA,cAAc,EAAE,MAAM;AACvB,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,EAAE,EAAE;AACF,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,MAAM,EAAE,kBAAkB;oBAC1B,OAAO,EAAE,MAAM,CAAC;wBACd,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;qBAC1C,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,EAAE,EAAE;AACF,gBAAA,oBAAoB,EAAE;AACpB,oBAAA,MAAM,EAAE,sBAAsB;oBAC9B,OAAO,EAAE,MAAM,CAAC;wBACd,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,YAAY;qBAChD,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,eAAe;AACpB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,EAAE,EAAE;AACF,gBAAA,wBAAwB,EAAE;AACxB,oBAAA,MAAM,EAAE,iBAAiB;oBACzB,OAAO,EAAE,MAAM,CAAC;wBACd,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,iBAAiB;wBACzD,wBAAwB,EAAE,CAAC,EAAE,KAAK,EAAE,KAClC,KAAK,CAAC,wBAAwB;wBAChC,0BAA0B,EAAE,CAAC,EAAE,KAAK,EAAE,KACpC,KAAK,CAAC,0BAA0B;wBAClC,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,qBAAqB;wBACjE,6BAA6B,EAAE,CAAC,EAAE,KAAK,EAAE,KACvC,KAAK,CAAC,6BAA6B;qBACtC,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,mBAAmB;AACxB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,EAAE,EAAE;AACF,gBAAA,mBAAmB,EAAE,MAAM;AAC3B,gBAAA,WAAW,EAAE;oBACX,OAAO,EAAE,MAAM,CAAC;wBACd,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAI;AAC5B,4BAAA,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE;gCAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AAC5C,oCAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACxB,wCAAA,OAAO,KAAK;;oCAEd,QACE,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc;wCACjD,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU;AAE7C,iCAAC,CAAC;gCACF,IAAI,SAAS,EAAE;oCACb,OAAO,OAAO,CAAC,KAAK;;gCAEtB,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;;AAEvC,4BAAA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC7B,gCAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;;yBAEtB;qBACF,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,cAAc;AACnB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAClD,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA,CAAC;;ACzJK,MAAM,gBAAgB,GAAG,YAAY,CAG1C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,iBAAiB,GAAG,YAAW;AACnC,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;AAC9B,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,KAAK;AACd,KAAC;AAED,IAAA,iBAAiB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;QACnC,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;;AAEjD,KAAC,CAAC;AACJ,CAAC,CAAC;;AChBK,MAAM,oBAAoB,GAAG,YAAY,CAG9C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,qBAAqB,GAAG,YAAW;;AAEvC,QAAA,OAAO,IAAI;AACb,KAAC;AAED,IAAA,qBAAqB,EAAE,CAAC,IAAI,CAAC,MAAK;AAChC,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;AACnD,KAAC,CAAC;AACJ,CAAC,CAAC;;ACVK,MAAM,oBAAoB,GAAyB;IACxD,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAI;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;AAE7C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjC,YAAA,IAAI,GAAG,KAAK,MAAM,EAAE;gBAClB;;YAEF,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;;QAE9B,OAAO;AACL,YAAA,GAAG,UAAU;SACd;AACH,KAAC,CAAC;CACH;;ACZM,MAAM,yBAAyB,GAAG,YAAY,CAGnD,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;AAE3B,IAAA,MAAM,0BAA0B,GAAG,YAAW;AAC5C,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAE1D,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,KAAK;;AAGd,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;QAE/B,MAAM,UAAU,GAAG,MAAM;AACtB,aAAA,MAAM,CAAC;YACN,SAAS,EAAEmB,MAAW,CAAC,IAAI;YAC3B,SAAS,EAAE,SAAS,CAAC,GAAG;SACzB;aACA,IAAI,CAACA,MAAW;AAChB,aAAA,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAEA,MAAW,CAAC,EAAE,CAAC;aACzD,KAAK,CAAC,EAAE,CAACA,MAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAEzC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;AACpD,YAAA,OAAO,KAAK;;QAGd,MAAM,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;AAEhD,QAAyB,MAAM,IAAI,CAAC,mBAAmB;QAEvD,MAAM,EAAE,YAAY,EAAE,yBAAyB,EAAE,GAAG,MAAM,eAAe,CAExE,CAAC;;;;;;;;;;;;;AAeF,QAAA,MAAM,kBAAkB,GAAG;AACzB,YAAA,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,IAAI,CAAC,SAAS;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,gBAAgB;YAChB,UAAU,EAAE,IAAI,CAAC,gBAAgB;AACjC,YAAA,kBAAkB,EAAE,EAAE;SACvB;AAED,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,GAAG,kBAAkB;AACtB,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI;AACb,KAAC;AAED,IAAA,0BAA0B,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;QAC5C,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC;;AAE1D,KAAC,CAAC;AACJ,CAAC,CAAC;;AC1EF,MAAMlB,QAAM,GAAG,KAAK,CAAC,wCAAwC,CAAC;AAUvD,MAAM,MAAM,GAAG,YAAY,CAGhC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO;AAE3B,IAAA,MAAM,OAAO,GAAG,YAAW;AACzB,QAAA,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;QAE1D,IAAI,CAAC,IAAI,EAAE;AACT,YAAAA,QAAM,CAAC,sBAAsB,EAAE,OAAO,CAAC;AACvC,YAAA,OAAO,KAAK;;AAGd,QAAA,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE;AAEzD,QAAA,KAAK,MAAM,YAAY,IAAI,gBAAgB,EAAE;AAC3C,YAAA,IAAI,YAAY,CAAC,WAAW,KAAK,OAAO,EAAE;;QAM5C,MAAM,WAAW,GAAG,EAAE;AAEtB,QAAA,KAAK,MAAM,kBAAkB,IAAI,gBAAgB,EAAE;AACjD,YAAA,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY;YACpD,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAEpD,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;gBAClD;;AAGF,YAAA,IACE,cAAc,CAAC,WAAW,CAAC,YAAY;AACvC,gBAAA,cAAc,CAAC,WAAW,CAAC,YAAY,KAAK,UAAU,EACtD;gBACA,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO;AACjE,gBAAA,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa;gBACzC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC;;AAGpD,YAAA,IACE,cAAc,CAAC,WAAW,CAAC,WAAW,KAAK,aAAa;AACxD,gBAAA,cAAc,CAAC,WAAW,CAAC,eAAe,EAC1C;;AAIJ,QAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,IAAI;;;;;;;;;AAWb,QAAA,OAAO,KAAK;AACd,KAAC;AAED,IAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;QACzB,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;;AAEvC,KAAC,CAAC;AACJ,CAAC,CAAC;;AC5EF,MAAM,EACJ,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,SAAS,EACT,UAAU,EACV,IAAI,GACL,GAAG,oBAAoB;AAEjB,MAAM,cAAc,GAAG,KAAK,CAAC;AAClC,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAA2B;AACpC,QAAA,KAAK,EAAE,EAA2B;AACnC,KAAA;AACD,IAAA,MAAM,EAAE;QACN,gBAAgB;QAChB,oBAAoB;QACpB,MAAM;QACN,yBAAyB;AAC1B,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;AACf,IAAA,EAAE,EAAE,SAAS;AACb,IAAA,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK;AAC7B,IAAA,EAAE,EAAE;AACF,QAAA,aAAa,EAAE,oBAAoB;AACpC,KAAA;AACD,IAAA,MAAM,EAAE;QACN,CAAC,oBAAoB,GAAG;AACtB,YAAA,EAAE,EAAE;gBACF,uBAAuB,EAAE,CAAC,wBAAwB,CAAC;AACpD,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,kBAAkB;AACvB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;QACD,CAAC,wBAAwB,GAAG;AAC1B,YAAA,EAAE,EAAE;gBACF,2BAA2B,EAAE,CAAC,SAAS,CAAC;AACzC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,sBAAsB;AAC3B,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;QACD,CAAC,SAAS,GAAG;AACX,YAAA,EAAE,EAAE;gBACF,gBAAgB,EAAE,CAAC,8BAA8B,CAAC;AACnD,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;QACD,CAAC,8BAA8B,GAAG;AAChC,YAAA,EAAE,EAAE;gBACF,gCAAgC,EAAE,CAAC,SAAS,CAAC;AAC9C,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,2BAA2B;AAChC,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;QACD,CAAC,UAAU,GAAG,EAAE;QAChB,CAAC,IAAI,GAAG,EAAE;AACX,KAAA;AACF,CAAA,CAAC;;ACxEK,MAAM,kBAAkB,GAAG,YAAY,CAG5C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAI;AAC5C,IAAA,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO;IAEtC,IAAI,CAAC,kBAAkB,EAAE;AACvB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;QAC7C;;AAGF,IAAA,MAAM,mBAAmB,GAAG,YAA6B;AACvD,QAAA,MAAMoB,cAAY,CAChB,CAA8B,4BAAA,CAAA,EAC9B,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,CAC1D;AAED,QAAA,OAAO,IAAI;AACb,KAAC;AAED,IAAA,mBAAmB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;QACrC,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC;;AAEnD,KAAC,CAAC;AACJ,CAAC,CAAC;;ACTF,MAAM,EACJ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,eAAe,EACf,mBAAmB,GACpB,GAAG,WAAW;AAEf,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC;AACzC,IAAA,SAAS,EAAE,KAAK;AACjB,CAAA,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,CAAC;AAC1B,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAA0B;AACnC,QAAA,KAAK,EAAE,EAAsC;AAC9C,KAAA;AACD,IAAA,MAAM,EAAE;oBACNrB,YAAU;QACV,aAAa;QACb,iBAAiB;QACjB,kBAAkB;AACnB,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;IACf,EAAE,EAAE,UAAU,CAAC,MAAM;AACrB,IAAA,OAAO,EAAE,aAAa;IACtB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAA6B;AACrD,IAAA,EAAE,EAAE;QACF,kBAAkB,EAAE,CAAI,CAAA,EAAA,eAAe,CAAE,CAAA;AACzC,QAAA,kBAAkB,EAAE,CAAuB,qBAAA,CAAA;QAC3C,qBAAqB,EAAE,CAAI,CAAA,EAAA,eAAe,CAAE,CAAA;AAC7C,KAAA;AACD,IAAA,MAAM,EAAE;QACN,CAAC,aAAa,GAAG;AACf,YAAA,EAAE,EAAE;AACF,gBAAA,IAAI,EAAE;AACJ,oBAAA,MAAM,EAAE,YAAY;AACpB,oBAAA,OAAO,EAAE;AACP,wBAAA,MAAM,CAAC;AACL,4BAAA,aAAa,EAAE,KAAK;AACpB,4BAAA,qBAAqB,EAAE,KAAK;4BAC5B,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,MAAM;4BACnC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;4BACzC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,QAAQ;4BACvC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAI;gCACpC,OAAO,KAAK,CAAC,eAAe,EAAE;oCAC5B,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC7B,oCAAA,KAAK,EAAE;wCACL,SAAS,EAAE,KAAK,CAAC,SAAS;wCAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wCACxB,SAAS,EAAE,KAAK,CAAC,SAAS;wCAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;AACnC,qCAAA;AACF,iCAAA,CAAC;6BACH;yBACF,CAAC;AACH,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,YAAY;AACzB,gBAAA,eAAe,EAAE,CAAC;AACnB,aAAA;AACD,YAAA,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7B,SAAA;QACD,CAAC,YAAY,GAAG;AACd,YAAA,EAAE,EAAE;gBACF,CAAC,+BAA+B,GAAG;oBACjC,OAAO,EAAE,MAAM,CAAC;wBACd,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;wBACzC,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,WAAW;wBAC7C,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;AACzC,wBAAA,aAAa,EAAE,IAAI;qBACpB,CAAC;AACH,iBAAA;gBACD,CAAC,0CAA0C,GAAG,mBAAmB;gBACjE,CAAC,6CAA6C,GAAG;AAC/C,oBAAA,OAAO,EAAE;wBACP,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAI;4BAC1B,MAAM,gBAAgB,GAGlB,EAAE;AACN,4BAAA,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAClD,KAAK,CAAC,MAAM,CACb,EAAE;AACD,gCAAA,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,EAAE;AACpC,oCAAA,QAAQ,EAAE,SAAS;AACnB,oCAAA,KAAK,EAAE;wCACL,SAAS;wCACT,UAAU;wCACV,WAAW,EAAG,UAA8B,CAAC,MAAM;AACnD,wCAAA,KAAK,EAAE,EAAE;AACV,qCAAA;AACF,iCAAA,CAAC;AACF,gCAAA,gBAAgB,CAAC,CAAG,EAAA,SAAS,SAAS,CAAC,GAAG,OAAO;;AAGnD,4BAAA,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAChD,KAAK,CAAC,OAAO,CACd,EAAE;AACD,gCAAA,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,EAAE;oCAC1C,QAAQ;AACT,iCAAA,CAAC;gCACF,OAAO,CAAC,KAAK,EAAE;AACf,gCAAA,gBAAgB,CAAC,CAAG,EAAA,SAAS,SAAS,CAAC,GAAG,OAAO;;AAEnD,4BAAA,OAAO,gBAAgB;AACzB,yBAAC,CAAC;AACF,wBAAA,KAAK,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;AAC3C,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnD,gBAAA,IAAI,EAAE;AACJ,oBAAA,WAAW,EAAE,uBAAuB;AACpC,oBAAA,eAAe,EAAE,EAAE;AACpB,iBAAA;AACD,gBAAA,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7B,aAAA;AACF,SAAA;QACD,CAAC,mBAAmB,GAAG;AACrB,YAAA,EAAE,EAAE;gBACF,CAAC,kCAAkC,GAAG;AACpC,oBAAA,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,MAAM,CAAC;AACd,wBAAA,qBAAqB,EAAE,IAAI;qBAC5B,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,eAAe;AACpB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACrC,gBAAA,IAAI,EAAE;AACJ,oBAAA,WAAW,EAAE,2BAA2B;AACzC,iBAAA;AACD,gBAAA,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;AAC7B,aAAA;AACF,SAAA;QACD,CAAC,WAAW,GAAG;;;;;AAKb,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,sBAAsB;AACnC,gBAAA,eAAe,EAAE,EAAE;AACpB,aAAA;AACD,YAAA,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;;AAE7B,SAAA;QACD,CAAC,eAAe,GAAG;AACjB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,CAAC;AACL,oBAAA,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KACnC,KAAK,CAAC,cAAc,EAAE;AACpB,wBAAA,EAAE,EAAE,gBAAgB;AACpB,wBAAA,KAAK,EAAE;4BACL,OAAO,EAAE,KAAK,CAAC,WAAW;AAC3B,yBAAA;qBACF,CAAC;iBACL,CAAC;AACH,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,iBAAiB;AAC/B,aAAA;YACD,IAAI,EAAE,CAAC,YAAY,CAAC;AACrB,SAAA;AACD,QAAA,oBAAoB,EAAE;AACpB,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,EAAE,EAAE;AACF,gBAAA,yBAAyB,EAAE,WAAW;AACvC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,oBAAoB;AACzB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,EAAE;AACJ,gBAAA,WAAW,EAAE,wBAAwB;AACtC,aAAA;YACD,IAAI,EAAE,CAAC,YAAY,CAAC;AACrB,SAAA;AACF,KAAA;;;;;;;;AAQF,CAAA,CAAC;AAEF,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,EAAE;AAC/C,IAAA,KAAK,EAAE,EAAE;;AAET,IAAA,OAAO,EAAE,CAAC,SAAS,KAAI;AACrB,QAAA,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDtD;AACF,CAAA,CAAC;AAEF,aAAa,CAAC,KAAK,EAAE;AAErB,MAAM,gBAAgB,GAAG,MAA0C,aAAa;;AC3QzE,MAAM,yBAAyB,GAA8B,OAAO,EACzE,WAAW,GACZ,KAAI;AACH,IAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE;AACxC,IAAA,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACnC,QAAA,IACE,CAAC,QAAQ;YACT,CAAC,QAAQ,CAAC,OAAO;AACjB,YAAA,CAAC,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EACpC;YACA;;AAEJ,KAAC,CAAC;IACF,aAAa,CAAC,IAAI,CAAC;AACjB,QAAA,IAAI,EAAE,oBAAoB;QAC1B,WAAW;AACZ,KAAA,CAAC;AACJ,CAAC;;ACvBD,IAAI,QAAQ,GAAG,KAAK;AAEb,MAAM,0BAA0B,GAAG,MAAK;;;;;;;;;;AAU7C,IAAA,YAAY,CAAC,WAAW,CAAC,eAAe,EAAE,oBAAoB,CAAC;AAC/D,IAAA,YAAY,CAAC,WAAW,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;AAC3E,IAAA,YAAY,CAAC,WAAW,CACtB,8BAA8B,EAC9B,yBAAyB,CAC1B;;;IAGD,QAAQ,GAAG,IAAI;AACjB,CAAC;AAEM,MAAM,4BAA4B,GAAG,MAAK;AAC/C,IAAA,OAAO,QAAQ;AACjB,CAAC;;ACVM,MAAM,YAAY,GAAiB,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAI;AAC/D,IAAA,MAAM,OAAO,GAAG,UAAU,EAAE;AAE5B,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,QAAA,MAAM,eAAe,GAAG,CAAC,KAA8B,KAAI;YACzD,IAAI,CAAC,KAAK,EAAE;gBACV;;AAEF,YAAA,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK;AACnC,YAAA,IAAI,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE;gBACpC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC;gBAC5D,OAAO,CAAC,KAAK,CAAC;;AAElB,SAAC;QAED,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC;AAEzD,QAAA,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;YAChC,GAAG,GAAG,CAAC,IAAI;YACX,OAAO;AACR,SAAA,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;;ACjCM,MAAM,mBAAmB,GAAG,YAAY,CAG7C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAI;AAC5C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,KAAM;IAC/B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO;IAEpD,IAAI,CAAC,UAAU,EAAE;AACf,QAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;;AAGzC,IAAA,MAAM,SAAS,GAAG,UAAU,CAAC,mBAAmB,CAAC,IAAI;AAErD,IAAA,MAAM,8BAA8B,GAAG,YAA6B;QAClE,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACtD,YAAA,OAAO,CAAC,IAAI,CACV,0FAA0F,CAC3F;AACD,YAAA,OAAO,KAAK;;AAGd,QAAA,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE;AAC5B,YAAA,OAAO,KAAK;;AAGd,QAAgB,MAAM,YAAY,CAAC;AACjC,YAAA,GAAG,EAAE;AACH,gBAAA,UAAU,EAAE,cAAc;AAC1B,gBAAA,IAAI,EAAE;oBACJ,SAAS;oBACT,OAAO;oBACP,WAAW;AACX,oBAAA,MAAM,EAAE,qBAAqB;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,UAAU,EAAE,CAAA,KAAA,EAAQ,SAAS,CAAA,CAAA,EAAI,WAAW,CAAW,SAAA,CAAA;AACxD,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEb,KAAC;AAED,IAAA,8BAA8B,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,KAAI;QACvD,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;YAChD;;;;;;;;;;AAWF,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;AAClD,KAAC,CAAC;AACJ,CAAC,CAAC;;ACnIK,MAAM,oBAAoB,GAAG,OAClC,SAAiB,KACE;AACnB,IAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,IAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;AAE9C,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE;AAExC,IAAA,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACpD,QAAA,QAAQ,EAAE,CAAC,CAAoB,iBAAA,EAAA,SAAS,EAAE,CAAC;QAC3C,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE;AAC7B,YAAA,KAAK,EAAE;AACL,gBAAA,WAAW,EAAE;AACX,oBAAA,IAAI,EAAE;AACJ,wBAAA,IAAI,EAAE;AACJ,4BAAA,MAAM,EAAE,QAAQ;AACjB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF,CAAC;AACL,KAAA,CAAC;IAEF,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,OAAO,WAAW,CAAC,EAAE;AACvB,CAAC;;ACrBM,MAAM,UAAU,GAAG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAmB,KAAqB;AACtF,IAAA,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC;IAElD,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,IAAI,CAAA,CAAE,CAAC;;AAG5D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,cAAc,GAAG,UAAU,EAAE;IAEnC,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;AAC/B,QAAA,OAAO,EAAE,cAAc;QACvB,IAAI;AACJ,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,SAAS;AACV,KAAA,CAAC;AAEF,IAAA,OAAO,cAAc;AACvB,CAAC;;AClBM,MAAM,aAAa,GAAkB,OAAO,EACjD,WAAW,EACX,OAAO,EACP,QAAQ,EACR,GAAG,GACJ,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,iBAAiB,GAAG,UAAU,EAAE;IAEtC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AAClC,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,WAAW;QACX,OAAO,EAAE,OAAO,IAAI,MAAM;QAC1B,QAAQ;QACR,GAAG,EAAE,GAAG,IAAI,MAAM;AACnB,KAAA,CAAC;AAEF,IAAA,OAAO,iBAAiB;AAC1B,CAAC;;AC3BM,MAAM,cAAc,GAAG,YAAY,CAGxC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;AAElD,IAAA,IAAI,cAAsB;AAE1B,IAAA,MAAM,eAAe,GAAG,YAA0B;QAChD,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;;QAG1C,cAAc,GAAG,MAAM,UAAU,CAAC;AAChC,YAAA,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE;YAC7B,OAAO,EAAE,OAAO,IAAI,MAAM;AAC3B,SAAA,CAAC;AAEF,QAAA,MAAM,aAAa,CAAC;AAClB,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,QAAQ,EAAE,SAAS,CAAC,WAAW,EAAE;YACjC,GAAG,EAAE,UAAU,IAAI,MAAM;AAC1B,SAAA,CAAC;AACJ,KAAC;AAED,IAAA,eAAe,EAAE,CAAC,IAAI,CAAC,MAAK;AAC1B,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AAC7C,KAAC,CAAC;AACJ,CAAC,CAAC;;ACxBK,MAAM,gBAAgB,GAAG,YAAY,CAG1C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,OAAO;AAE1D,IAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAwB;;;;AAK1D,IAAA,KAAK,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAC1D,UAA6B,CAAC,MAAM,CACtC,EAAE;QACD,IAAI,gBAAgB,EAAE;AACpB,YAAA,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC;;;IAI1D,QAAQ,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,CAAC;IAElE,IAAI,CAAC,UAAU,EAAE;;QAEf;;AAGF,IAAA,MAAM,iBAAiB,GAAG,YAA0B;AAClD,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;;QAG9C,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AACtD,YAAA,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC;YACvC,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE;AAChC,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;wBACN,EAAE,EAAE,CAAC,UAAU,CAAC;AACjB,qBAAA;AACD,oBAAA,eAAe,EAAE;AACf,wBAAA,GAAG,EAAE;;AAEH,4BAAA,QAAQ,EACN,8EAA8E;AACjF,yBAAA;AACF,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;;QAGF,MAAM,qBAAqB,GAEvB,EAAE;AACN,QAAA,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;YAClC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE;AACzE,YAAA,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACjC,YAAA,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,kBAAkB;AAC/D,SAAC,CAAC;;QAGF,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACtD,YAAA,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC3D,gBAAA,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW;AACtC,aAAC,CAAC;AACF,YAAA,qBAAqB,CAAC,QAAQ,CAAC,GAAG,MAAM;AAC1C,SAAC,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;;;;AAIxD,SAAC,CAAC;;AAGF,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,8BAA8B;AACpC,YAAA,qBAAqB,EAAE,qBAAqB;AAC7C,SAAA,CAAC;AACJ,KAAC;AAED,IAAA,iBAAiB,EAAE,CAAC,IAAI,CAAC,MAAK;AAC5B,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;AAC/C,KAAC,CAAC;AACJ,CAAC,CAAC;;ACzFK,MAAM,MAAM,GAAG,YAAY,CAGhC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO;AAErC,IAAA,MAAM,OAAO,GAAG,YAAW;QACzB,IAAI,CAAC,iBAAiB,EAAE;YACtB;;QAGF,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE;YACzD,IAAI,gBAAgB,EAAE;AACpB,gBAAA,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,WAAW;AACzD,gBAAA,IACE,oBAAoB;AACpB,oBAAA,oBAAoB,CAAC,WAAW;AAChC,oBAAA,oBAAoB,CAAC,WAAW,KAAK,aAAa,EAClD;AACA,oBAAA,gBAAgB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;;;AAI9D,KAAC;AAED,IAAA,OAAO,EAAE,CAAC,IAAI,CAAC,MAAK;AAClB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;AACrC,KAAC,CAAC;AACJ,CAAC,CAAC;;ACrBK,MAAM,iBAAiB,GAAG,KAAK,CAAC;AACrC,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAA6B;AACtC,QAAA,KAAK,EAAE,EAAE;AACV,KAAA;AACD,IAAA,MAAM,EAAE;mBACND,WAAS;oBACTC,YAAU;QACV,mBAAmB;QACnB,cAAc;QACd,gBAAgB;QAChB,MAAM;AACP,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;IACf,EAAE,EAAE,UAAU,CAAC,IAAI;AACnB,IAAA,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAgC;AACxD,IAAA,EAAE,EAAE;AACF,QAAA,4BAA4B,EAAE;YAC5B,OAAO,EAAE,MAAM,CAAC;gBACd,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,qBAAqB;aAClE,CAAC;AACH,SAAA;AACD,QAAA,wBAAwB,EAAE;YACxB,OAAO,EAAE,MAAM,CAAC;gBACd,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,kBAAkB;aAC5D,CAAC;AACH,SAAA;AACD,QAAA,gBAAgB,EAAE;YAChB,OAAO,EAAE,MAAM,CAAC;AACd,gBAAA,mBAAmB,EAAE,IAAI,CAAC,GAAG,EAAE;aAChC,CAAC;AACH,SAAA;AACD,QAAA,WAAW,EAAE;YACX,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAI;AACrC,gBAAA,IAAI,EAAE,iBAAiB,EAAE,GAAG,OAAO;gBACnC,IAAI,CAAC,iBAAiB,EAAE;AACtB,oBAAA,iBAAiB,GAAG,IAAI,GAAG,EAA8B;;AAE3D,gBAAA,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,KAAK;gBAE7C,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;oBACxC,OAAO;wBACL,CAAC,YAAY,GAAG,aAAa;qBAC9B;;gBAEH,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAC5C,YAAY,CACS;AAEvB,gBAAA,gBAAgB,CAAC,KAAK,GAAG,aAAa;AACtC,gBAAA,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC;;gBAErD,OAAO;oBACL,iBAAiB;iBAClB;AACH,aAAC,CAAC;AACH,SAAA;AACD,QAAA,mBAAmB,EAAE;YACnB,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAI;gBACrC,MAAM,iBAAiB,GACrB,OAAO,CAAC,iBAAiB,IAAI,IAAI,GAAG,EAA8B;gBACpE,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC;gBACjE,OAAO;oBACL,iBAAiB;iBAClB;AACH,aAAC,CAAC;AACH,SAAA;AACD,QAAA,MAAM,EAAE,YAAY;AACrB,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE;AACF,gBAAA,gBAAgB,EAAE,cAAc;AACjC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,WAAW;AACjB,aAAA;AACF,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE;AACF,gBAAA,eAAe,EAAE;AACf,oBAAA,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,MAAM,CAAC;wBACd,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,cAAc;wBACnD,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,eAAe;wBACrD,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;wBACzC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,YAAY;qBAChD,CAAC;AACH,iBAAA;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,MAAM,CAAC;wBACd,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,cAAc;wBACnD,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,eAAe;wBACrD,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,SAAS;qBAC1C,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACF,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,EAAE,EAAE;AACF,gBAAA,0BAA0B,EAAE,MAAM;AAClC,gBAAA,0BAA0B,EAAE,YAAY;AACzC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,qBAAqB;AAC1B,gBAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpD,aAAA;AACF,SAAA;AACD,QAAA,gBAAgB,EAAE;AAChB,YAAA,EAAE,EAAE;AACF,gBAAA,qBAAqB,EAAE,MAAM;AAC9B,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,gBAAgB;AACrB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,kBAAkB,EAAE;AAClB,YAAA,EAAE,EAAE;AACF,gBAAA,sBAAsB,EAAE,MAAM;AAC/B,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,iBAAiB;AACtB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,SAAS,EAAE;AACT,YAAA,EAAE,EAAE;AACF,gBAAA,aAAa,EAAE,MAAM;AACtB,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,QAAQ;AACb,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,EAAE,OAAO;AACd,SAAA;AACF,KAAA;AACF,CAAA,CAAC;;ACzJK,MAAM,iBAAiB,GAAG,CAAC,EAAC,WAAW,EAAE,OAAO,EAA2C,KAAI;AACpG,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,YAAY,GAAU,EAAE;IAE9B,IAAI,WAAW,EAAE;AACf,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;;IAG1D,IAAI,OAAO,EAAE;AACX,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;AAGlD,IAAA,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC;IAEjD,OAAO,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CACrC;AACG,SAAA,MAAM,CAAC;AACN,QAAA,GAAG,eAAe;AAClB,QAAA,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;;;;;AAKb,UAAA,CAAA,CAAC,CAAC,EAAE,CAAC,QAAQ;KACjB;SACA,IAAI,CAAC,QAAQ;SACb,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAC/B;AACH,CAAC;;AC1BM,MAAM,iBAAiB,GAAsB,OAAO,EACzD,WAAW,EACX,OAAO,EACP,MAAM,GACP,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,YAAY,GAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE9D,IAAI,OAAO,EAAE;AACX,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;IAG3C,IAAI,WAAW,EAAE;AACf,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;IAGnD,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAEnD,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,IAAI,MAAM,EAAE;YACV,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;QAEzC,IAAI,CAAC,MAAM,EAAE;YACX,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;;;;IAM9C,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAC,WAAW,EAAE,OAAO,EAAC,CAAC;IAEhE,MAAM,cAAc,GAAG,MAAM;SAC1B,IAAI,CAAC,cAAc;AACnB,SAAA,MAAM;SACN,IAAI,CAAC,cAAc;SACnB,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEtC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,KAAK;AACjC,QAAA,GAAG,IAAI;AACP,QAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,QAAA,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;AACnB,QAAA,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;AACrC,QAAA,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE;AACvC,QAAA,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;AAC/B,QAAA,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;AAC/B,QAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;AACpC,KAAA,CAAC,CAAmB;AACvB,CAAC;;ACnDM,MAAMyB,gBAAc,GAAG,MAAK;AACjC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,OAAO,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,CAClC;AACG,SAAA,MAAM,CAAC;QACN,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,gBAAgB,EAAE,QAAQ,CAAC,GAAG;QAC9B,oBAAoB,EAAE,QAAQ,CAAC,OAAO;QACtC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC;QAC1D,sBAAsB,EAAE,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAC3D,wBAAwB,CACzB;QACD,iBAAiB,EAAE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC;KACnE;SACA,IAAI,CAAC,QAAQ;AACb,SAAA,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CACjC;AACH,CAAC;;ACZM,MAAM,WAAW,GAAgB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAI;AACzE,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,IAAI,KAAK;IAET,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;IAE5C,IAAI,WAAW,EAAE;AACf,QAAA,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;IAGzD,IAAI,OAAO,EAAE;AACX,QAAA,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;AAGjD,IAAA,MAAM,IAAI,GAAG,MAAM,KAAK;IAExB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QACzB;;AAGF,IAAA,OAAO,IAAI,CAAC,CAAC,CAAC;AAChB,CAAC;;ACxBD,MAAMxB,QAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC;AAE5C,MAAM,WAAW,GAAgB,OAAO,EAC7C,SAAS,EACT,WAAW,EACX,OAAO,GACR,KAAI;AACH,IAAA,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE;AAC5B,QAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC;;AAGrE,IAAA,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE;AACb,YAAAA,QAAM,CAAC,4CAA4C,EAAE,OAAO,CAAC;YAC7D;;AAEF,QAAA,WAAW,GAAG,QAAQ,CAAC,OAAO;;AAGhC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC;IAExD,MAAM,YAAY,GAAU,EAAE;IAE9B,IAAI,SAAS,EAAE;AACb,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;;IAG5D,IAAI,OAAO,EAAE;AACX,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;;AAG3C,IAAA,IAAI,WAAW,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;AAGnD,IAAA,MAAM,WAAW,GAAGwB,gBAAc,EAAE;IAEpC,MAAM,YAAY,GAAG,MAAM;SACxB,IAAI,CAAC,WAAW;AAChB,SAAA,MAAM,CAAC;AACN,QAAA,GAAG,IAAI;QACP,WAAW,EAAE,KAAK,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,CAAC,GAAG;QAClB,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,sBAAsB,EAAE,WAAW,CAAC,sBAAsB;QAC1D,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;QAC9C,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;KACvD;SACA,IAAI,CAAC,KAAK;AACV,SAAA,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;AAChE,SAAA,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;AAC5D,SAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,mDAAmD,CAAC;AACpE,SAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAe;IAEvC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9CxB,QAAM,CAAC,kDAAkD,CAAC;QAC1D;;AAGF,IAAA,IAAI,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAsC;AAEnE,IAAA,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC;QAC7C,WAAW;AACX,QAAA,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,SAAS;AACvC,KAAA,CAAC;IAEF,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAClD,QAAA,OAAO,QAAQ;;AAGjB,IAAA,KAAK,MAAM,YAAY,IAAI,cAAc,EAAE;AACzC,QAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;AAE9C,QAAA,IAAI,aAAa,GAAG,YAAY,CAAC,aAAa;AAE9C,QAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/D,YAAA,IAAI,YAAY,CAAC,WAAW,EAAE;gBAC5B,MAAM,mBAAmB,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AAC7D,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,GAAG,aAAa;;;AAIjD,QAAA,QAAQ,CAAC,YAAY,CAAC,GAAG,aAAa;;AAGxC,IAAA,IAAI,QAAQ;AAAE,QAAA,OAAO,QAAQ;AAC/B,CAAC;;ACrFM,MAAM,YAAY,GAAiB,OAAO,EAC/C,SAAS,EACT,OAAO,GACR,KAAyB;AACxB,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,UAAU,GAAU,EAAE;IAE5B,IAAI,SAAS,EAAE;AACb,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;;IAG1D,IAAI,OAAO,EAAE;QACX,UAAU,CAAC,IAAI,CACb,EAAE,CACA,SAAS,CAAC,KAAK,CAAC,kBAAkB,CAAC,EACnC,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CACzB,CACT;;IAGH,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,CAAC,IAAI,CACb,EAAE,CACA,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAChC,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC,CACzB,CACT;;AAGH,IAAA,MAAM,WAAW,GAAGwB,gBAAc,EAAE;IAEpC,IAAI,KAAK,GAAG;SACT,IAAI,CAAC,WAAW;AAChB,SAAA,MAAM,CAAC;QACN,WAAW,EAAE,KAAK,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,CAAC,GAAG;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;AAC1B,QAAA,SAAS,EAAE,GAAG,CAAQ,CAAA,EAAG,SAAS,CAAE,CAAA;QACpC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;QAChD,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,sBAAsB,EAAE,WAAW,CAAC,sBAAsB;QAC1D,iBAAiB,EAAE,WAAW,CAAC,iBAAiB;QAChD,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;QAC9C,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;QACtD,SAAS,EAAE,KAAK,CAAC,SAAS;KAC3B;SACA,IAAI,CAAC,KAAK;AACV,SAAA,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;AAChE,SAAA,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC;AAC1D,SAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,mDAAmD,CAAC;AACpE,SAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;AAEzB,IAAA,MAAM,SAAS,IAAI,MAAM,KAAK,CAAe;AAE7C,IAAA,OAAO,SAAS;AAClB,CAAC;;AC/DM,MAAM,oBAAoB,GAAG,YAAY,CAG9C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO;IAErC,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,OAAO,CAAC,WAAW,CAAE,CAAA,CAAC;;IAG3E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;QAClD;;IAGF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAE1E,IAAA,MAAM,qBAAqB,GAAG,YAA0B;AACtD,QAAA,MAAM,IAAI,GAAG,MAAM,OAAO,iBAAiB,CAAC;QAE5C,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC;QAEjE,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,MAAM,eAAe,CAAC,oBAAoB,CAAC,QAAQ,CAAC;;QAGtD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QAE3C,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC;AAE5D,QAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;QAExC,IAAI,UAAU,EAAE;YACd,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;AACpD,YAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CACrC,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,oBAAoB,CAAA,KAAA,CAAO,CAClD;YACD,IAAI,gBAAgB,EAAE;gBACpB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EACpC,MAAM,CACP;AACD,gBAAA,QAAQ,CAAC;AACP,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,aAAa,EAAE,UAAU;AAC1B,iBAAA,CAAC;;;QAIN,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;;QAGlC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;QAE3C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;QAEpD,IAAI,UAAU,EAAE;YACd,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;AACpD,YAAA,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CACrC,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,oBAAoB,CAAA,KAAA,CAAO,CAClD;YACD,IAAI,gBAAgB,EAAE;gBACpB,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EACpC,MAAM,CACP;AACD,gBAAA,QAAQ,CAAC;AACP,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,YAAY,EAAE,MAAM;AACpB,oBAAA,aAAa,EAAE,UAAU;AAC1B,iBAAA,CAAC;;;QAIN,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;;AAEpC,KAAC;AAED,IAAA,qBAAqB,EAAE,CAAC,IAAI,CAAC,MAAK;AAChC,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;QACjD;AACF,KAAC,CAAC;AACJ,CAAC,CAAC;;ACrFa,KAAK,CAAC,+CAA+C;AAE7D,MAAM,SAAS,GAAG,YAAY,CAGnC,CAAC,EAAE,QAAQ,EAAE,KAAI;IACjB,MAAM,UAAU,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,KAAI;AAC/C,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;YAC/B,IAAI,KAAK,EAAE;gBACT,aAAa,CAAC,QAAQ,CAAC;AACvB,gBAAA,OAAO,EAAE;;SAEZ,EAAE,GAAG,CAAC;AACT,KAAC,CAAC;AAEF,IAAA,UAAU,CAAC,IAAI,CAAC,MAAK;AACnB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;AACxC,KAAC,CAAC;AACJ,CAAC,CAAC;;AClBK,MAAMzB,YAAU,GAAG,YAAY,CAGpC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;IACrC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,OAAO;AAClE,IAAA,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO;IAE3B,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,SAAS,GAAG,+BAA+B,CAAC,YAAY,CAAC;QACzD,IAAI,SAAS,EAAE;YACb,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;;;IAIlD,IAAI,UAAU,EAAE;AACd,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;AACvC,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;QACvC;;IAGF,IAAI,CAAC,UAAU,EAAE;QACf,IACE,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM;YACnD,CAAC,oBAAoB,EACrB;AACA,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;YACvC;;AAGF,QAAA,MAAM,0BAA0B,GAAG,YAAW;AAC5C,YAAA,IAAI,YAAY,KAAK,MAAM,EAAE;AAC3B,gBAAA,MAAM,YAAY,GAAG,CAAe,YAAA,EAAA,oBAAoB,OAAO;gBAC/D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC7D,IAAI,CAAC,MAAM,EAAE;oBACX;;gBAEF,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,YAAY;AACpE,qBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,oBAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC;AAChD,iBAAC,CAAC;gBACJ,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;gBAChD;;AAEF,YAAA,IAAI,YAAY,KAAK,MAAM,EAAE;AAC3B,gBAAA,MAAM,YAAY,GAAG,CAAe,YAAA,EAAA,oBAAoB,OAAO;gBAC/D,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC7D,IAAI,CAAC,MAAM,EAAE;oBACX;;gBAEF,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,YAAY;AACpE,qBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,oBAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC;AAChD,iBAAC,CAAC;gBACJ,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;gBAChD;;AAEJ,SAAC;AAED,QAAA,0BAA0B,EAAE,CAAC,IAAI,CAAC,MAAK;AACrC,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;AACzC,SAAC,CAAC;;AAEN,CAAC,CAAC;;AChEF,MAAM,6BAA6B,GAAG,IAAI,GAAG,EAAkB;AAMxD,MAAM,iCAAiC,GAAG,OAC/C,OAAe,KACgB;AAC/B,IAAA,IAAI,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AAC9C,QAAA,OAAO,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC;;AAGnD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,OAAO,IAAI,MAAM;AACpB,SAAA,MAAM,CAAC;QACN,oBAAoB,EAAE,QAAQ,CAAC,aAAa;KAC7C;SACA,IAAI,CAAC,QAAQ;SACb,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAC7B,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAClD,CACF,CAAmC;IAEtC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACpC;;AAGF,IAAA,6BAA6B,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;AAC3E,IAAA,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB;AACxC,CAAC;;ACjCM,MAAM,oBAAoB,GAAG,OAClC,aAAkB,KACmB;AACrC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,IAAI,IAAI,MAAM;AACjB,SAAA,MAAM,CAAC;QACN,aAAa,EAAE,QAAQ,CAAC,aAAa;AACrC,QAAA,oBAAoB,EAAE,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACxD,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB;QACzD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC;SACA,IAAI,CAAC,QAAQ;SACb,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAmB;IAEtE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B;;AAGF,IAAA,OAAO,IAAI,CAAC,CAAC,CAAC;AAChB,CAAC;;AClBD,MAAMC,QAAM,GAAG,KAAK,CAAC,6CAA6C,CAAC;AAEnE,MAAM,gCAAgC,GAAG,IAAI,GAAG,EAAkB;AAClE,MAAM,4BAA4B,GAAG,IAAI,GAAG,EAAkB;AAC9D,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAkB;AAE9C,MAAM,mBAAmB,GAAG,YAAY,CAG7C,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EACJ,UAAU,EACV,aAAa,EACb,YAAY,EACZ,OAAO,EACP,oBAAoB,EACpB,eAAe,EACf,SAAS,GACV,GAAG,OAAO;AAEX,IAAA,MAAM,oBAAoB,GAAG,YAAW;QACtC,IAAI,CAAC,aAAa,IAAI,CAAC,UAAU,IAAI,eAAe,EAAE;YACpD;;AAGF,QAAA,IAAI,WAAW;AAEf,QAAA,IAAI;AACF,YAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;;QACvC,OAAO,KAAK,EAAE;AACd,YAAAA,QAAM,CAAC,CAAA,EAAG,YAAY,CAAA,4BAAA,CAA8B,CAAC;;QAGvD,IAAI,CAAC,WAAW,IAAI,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAC1D,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC;AACzD,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,WAAW,EAAE,UAAU;AACxB,aAAA,CAAC;AACF,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,8BAA8B;AACpC,gBAAA,uBAAuB,EAAE,UAAU;AACpC,aAAA,CAAC;AACF,YAAA,OAAO,IAAI;;AAGb,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;;AAEhC,YAAAA,QAAM,CAAC,CAAA,EAAG,YAAY,CAAA,8BAAA,CAAgC,CAAC;YACvD;;AAGF,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAC9B,YAAAA,QAAM,CAAC,CAAA,EAAG,YAAY,CAAA,yCAAA,CAA2C,CAAC;YAClE;;AAGF,QAAA,MAAM,oBAAoB,GACxB,MAAM,iCAAiC,CAAC,aAAa,CAAC;QAExD,IAAI,oBAAoB,EAAE;AACxB,YAAA,IAAI,gCAAgC,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE;gBAC9D,MAAM,UAAU,GACd,gCAAgC,CAAC,GAAG,CAAC,oBAAoB,CAAC;AAC5D,gBAAA,QAAQ,CAAC;AACP,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,WAAW,EAAE,UAAU;AACxB,iBAAA,CAAC;AACF,gBAAA,QAAQ,CAAC;AACP,oBAAA,IAAI,EAAE,8BAA8B;AACpC,oBAAA,uBAAuB,EAAE,UAAU;AACnC,oBAAA,gBAAgB,EAAE,oBAAoB;AACvC,iBAAA,CAAC;AACF,gBAAA,OAAO,IAAI;;AAGb,YAAA,MAAM,UAAU,GAAG,MAAM,qBAAqB,CAAC,oBAAoB,CAAC;YACpE,IAAI,UAAU,EAAE;AACd,gBAAA,mBAAmB,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC;;AAEpD,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,eAAe;AACrB,gBAAA,WAAW,EAAE,UAAU;AACxB,aAAA,CAAC;AACF,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,8BAA8B;AACpC,gBAAA,uBAAuB,EAAE,UAAU;AACnC,gBAAA,gBAAgB,EAAE,oBAAoB;AACvC,aAAA,CAAC;AACF,YAAA,OAAO,IAAI;;AAGb,QAAA,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC;QAEnE,IAAI,iBAAiB,EAAE;AACrB,YAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,iBAAiB;AAC9C,YAAA,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,aAAa;;AAG3D,YAAA,IACE,gBAAgB;gBAChB,oBAAoB,CAAC,QAAQ,KAAK,UAAU;gBAC5C,mBAAmB,CAAC,MAAM,KAAK,EAAE;gBACjC,oBAAoB,CAAC,GAAG,EACxB;AACA,gBAAA,IAAI,4BAA4B,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;oBACtD,MAAM,UAAU,GAAG,4BAA4B,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACrE,oBAAA,QAAQ,CAAC;AACP,wBAAA,IAAI,EAAE,eAAe;AACrB,wBAAA,WAAW,EAAE,UAAU;AACxB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC;AACP,wBAAA,IAAI,EAAE,8BAA8B;AACpC,wBAAA,uBAAuB,EAAE,UAAU;AACpC,qBAAA,CAAC;AACF,oBAAA,OAAO,IAAI;;gBAGb,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,UAAU,CACjD,gBAAgB,GAAG,gBAAgB,CACpC;gBACD,IAAI,UAAU,EAAE;oBACd,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,CACzC,gBAAgB,GAAG,gBAAgB,CACpC;oBACD,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAC5C,oBAAA,4BAA4B,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC;AAC9D,oBAAA,QAAQ,CAAC;AACP,wBAAA,IAAI,EAAE,eAAe;AACrB,wBAAA,WAAW,EAAE,UAAU;AACxB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC;AACP,wBAAA,IAAI,EAAE,8BAA8B;AACpC,wBAAA,uBAAuB,EAAE,UAAU;AACpC,qBAAA,CAAC;AACF,oBAAA,OAAO,IAAI;;;AAIf,YAAA,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;;AAE3C,gBAAA,IACE,oBAAoB;AACpB,oBAAA,oBAAoB,CAAC,YAAY,KAAK,UAAU,EAChD;AACA,oBAAA,IAAI,UAAU;AAEd,oBAAA,IAAI,gCAAgC,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;wBAC7D,UAAU;AACR,4BAAA,gCAAgC,CAAC,GAAG,CAAC,mBAAmB,CAAC;;oBAG7D,IAAI,CAAC,UAAU,EAAE;wBACf,MAAM,eAAe,GAAG,MAAM,eAAe,CAAC,UAAU,CACtD,CAAW,QAAA,EAAA,aAAa,CAAE,CAAA,CAC3B;wBACD,IAAI,eAAe,EAAE;4BACnB,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,CACzC,CAAW,QAAA,EAAA,aAAa,CAAE,CAAA,CAC3B;AACD,4BAAA,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACtC,4BAAA,gCAAgC,CAAC,GAAG,CAClC,mBAAmB,EACnB,UAAU,CACX;;;oBAIL,IAAI,UAAU,EAAE;AACd,wBAAA,QAAQ,CAAC;AACP,4BAAA,IAAI,EAAE,eAAe;AACrB,4BAAA,WAAW,EAAE,UAAU;AACxB,yBAAA,CAAC;AACF,wBAAA,QAAQ,CAAC;AACP,4BAAA,IAAI,EAAE,8BAA8B;AACpC,4BAAA,uBAAuB,EAAE,UAAU;AACpC,yBAAA,CAAC;AACF,wBAAA,OAAO,IAAI;;;;;AAKrB,KAAC;AAED,IAAA,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;;;;;;;AAOtC,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,2BAA2B;AAClC,SAAA,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC,CAAC;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3VO,MAAM,cAAc,GAAmB,OAAO,cAAc,EAAE,oBAAoB,KAAI;AAC3F,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,cAAc;IAE3C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;;IAmC1D,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;;AC/Cc,KAAK,CAAC,uCAAuC;AAErD,MAAM,aAAa,GAAG,YAAY,CAGvC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,KAAI;AACrC,IAAA,MAAM,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EAAE,eAAe,EAC7B,oBAAoB,EACpB,SAAS,GACV,GAAG,OAAO;IAEX,IAAI,YAAY,GAAG,eAAe;AAElC,IAAA,IACE,oBAAoB;AACpB,QAAA,oBAAoB,CAAC,GAAG;QACxB,oBAAoB,CAAC,QAAQ,KAAK,UAAU;AAC5C,QAAA,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC/B;AACA,QAAA,YAAY,GAAG,eAAe,GAAG,IAAI;;AAGvC,IAAA,IACE,oBAAoB;AACpB,QAAA,oBAAoB,CAAC,GAAG;QACxB,oBAAoB,CAAC,QAAQ,KAAK,MAAM;AACxC,QAAA,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAChC;AACA,QAAA,YAAY,GAAG,eAAe,GAAG,KAAK;;AAGxC,IAAA,MAAM,cAAc,GAAG,YAAW;AAChC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;QAE/B,MAAM,UAAU,GACd,oBAAoB;AACpB,YAAA,oBAAoB,CAAC,GAAG;AACxB,YAAA,oBAAoB,CAAC,QAAQ,KAAK,UAAU;QAE9C,MAAM,YAAY,GAAG,EAAE;QAEvB,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,0BAA0B;AAC9B,YAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC/B,0BAA0B,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;;YAExD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChC,gBAAA,0BAA0B,GAAG,YAAY,GAAG,IAAI;;YAElD,IAAI,0BAA0B,EAAE;gBAC9B,YAAY,CAAC,IAAI,CACf,EAAE,CACA,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EACvC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,0BAA0B,CAAC,CACtD,CACF;;YAEH,IAAI,CAAC,0BAA0B,EAAE;AAC/B,gBAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;;;aAEvD;AACL,YAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;;QAG5D,IAAI,OAAO,EAAE;AACX,YAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;QAGlD,IAAI,WAAW,EAAE;AACf,YAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;;QAG1D,MAAM,IAAI,GAAG,MAAM;AAChB,aAAA,MAAM;aACN,IAAI,CAAC,QAAQ;AACb,aAAA,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;aAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACzB;;AAGF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;AAExB,QAAA,MAAM,EACJ,OAAO,EACP,GAAG,EACH,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,mBAAmB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,eAAe,EAC1B,cAAc,EAAE,oBAAoB,EACpC,UAAU,EAAE,gBAAgB,EAC5B,YAAY,EACZ,eAAe,GAChB,GAAG,QAAQ;AAEZ,QAAA,IAAI,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,GAAG,QAAQ;QAE5D,IAAI,sBAAsB,GACxB,mBAAmB;AAGrB,QAAA,IACE,oBAAoB;AACpB,YAAA,oBAAoB,CAAC,YAAY,KAAK,UAAU,EAChD;YACA,IAAI,kBAAkB,GAAG,IAAI;AAE7B,YAAA,IACE,gBAAgB;gBAChB,uBAAuB;AACvB,gBAAA,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,EACxC;AACA,gBAAA,IAAI;AACF,oBAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE;AACpD,wBAAA,MAAM,EAAE,MAAM;AACf,qBAAA,CAAC;;AAGF,oBAAA,IAAI,QAAQ,CAAC,EAAE,EAAE;wBACf,kBAAkB,GAAG,KAAK;;;gBAE5B,OAAO,KAAK,EAAE;oBACd,kBAAkB,GAAG,IAAI;;;YAI7B,IAAI,kBAAkB,EAAE;gBACtB,IAAI,GAAG,GAAG,eAAe;AACzB,gBAAA,IACE,CAAC,GAAG;oBACJ,oBAAoB;AACpB,oBAAA,oBAAoB,CAAC,YAAY,KAAK,UAAU,EAChD;oBACA,GAAG,GAAG,QAAQ;;gBAGhB,GAAG,GAAG,GAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AAE7B,gBAAA,IACE,CAAC,gBAAgB;oBACjB,mBAAmB;AACnB,oBAAA,mBAAmB,CAAC,MAAM,KAAK,EAAE,EACjC;;;oBAGA,MAAM,uBAAuB,GAAG,MAAM;AACnC,yBAAA,MAAM,CAAC;wBACN,aAAa,EAAE,QAAQ,CAAC,aAAa;qBACtC;yBACA,IAAI,CAAC,QAAQ;AACb,yBAAA,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,EACzC,EAAE,CACA,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC,EACjD,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC,CAC3C,CACF,CACF;oBAEH,IAAI,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE;AACjE,wBAAA,MAAM,GAAG,GAAG,uBAAuB,CAAC,CAAC,CAAC;AACtC,wBAAA,gBAAgB,GAAG,GAAG,CAAC,aAAa;AACpC,wBAAA,MAAM,cAAc,CAAC;4BACnB,OAAO;4BACP,gBAAgB;AAChB,4BAAA,eAAe,EAAE,SAAS;AAC3B,yBAAA,CAAC;;;AAIN,gBAAA,MAAM,OAAO,GAAG,CAAU,OAAA,EAAA,GAAG,EAAE;AAC/B,gBAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;gBACxC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;gBAChD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;oBAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAiB,CAAC;AACxD,iBAAC,CAAC;gBACF,IAAI,UAAU,GAAG,KAAK;AACtB,gBAAA,IAAI,QAAQ;AACZ,gBAAA,IAAI,QAAQ;gBACZ,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7C,UAAU,GAAG,IAAI;AACjB,oBAAA,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC;AAC3B,oBAAA,QAAQ,GAAG,CAAU,OAAA,EAAA,GAAG,CAAI,CAAA,EAAA,QAAQ,EAAE;;AAExC,gBAAA,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,EAAE;oBACtC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC;AACrD,oBAAA,uBAAuB,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACnD,oBAAA,MAAM,cAAc,CAAC;wBACnB,OAAO;AACP,wBAAA,gBAAgB,EAAE,QAAQ;AAC3B,qBAAA,CAAC;;;;AAKR,QAAA,IACE,oBAAoB;YACpB,oBAAoB,CAAC,QAAQ,KAAK,MAAM;AACxC,YAAA,oBAAoB,CAAC,GAAG;AACxB,YAAA,OAAO,mBAAmB,KAAK,QAAQ,EACvC;AACA,YAAA,sBAAsB,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC;;AAGzD,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,eAAe;YACrB,OAAO;YACP,GAAG;AACH,YAAA,aAAa,EAAE,sBAAsB;AACrC,YAAA,WAAW,EAAE,iBAAiB;AAC9B,YAAA,OAAO,EAAE,aAAa;AACtB,YAAA,cAAc,EAAE,oBAAoB;AACpC,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,SAAS,EAAE,eAAe;YAC1B,YAAY;YACZ,eAAe;YACf,gBAAgB;YAChB,uBAAuB;AACvB,YAAA,WAAW,EAAE,uBAAuB;AACpC,YAAA,eAAe,EAAE,IAAI;AACtB,SAAA,CAAC;AAEF,QAAA,IACE,oBAAoB;AACpB,YAAA,oBAAoB,CAAC,WAAW;AAChC,YAAA,oBAAoB,CAAC,WAAW,KAAK,aAAa,EAClD;YACA,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,OAAO,qBAAgB,CAAC;AAC/C,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;gBAC3B,WAAW;gBACX,SAAS;AACV,aAAA,CAAC;YACF,IAAI,IAAI,EAAE;AACR,gBAAA,MAAM,QAAQ,GAAG,CAAA,OAAA,EAAU,eAAe,CAAI,CAAA,EAAA,gBAAgB,EAAE;gBAChE,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAEzD,IAAI,CAAC,MAAM,EAAE;oBACX;;gBAGF,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC;gBACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;AAC9C,gBAAA,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;gBAClE;;;AAGN,KAAC;AAED,IAAA,cAAc,EAAE,CAAC,IAAI,CAAC,MAAK;AACzB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;AAC5C,KAAC,CAAC;AACJ,CAAC,CAAC;;AC/PK,MAAM,cAAc,GAAmB,OAAO,EACnD,OAAO,EACP,WAAW,EACX,GAAG,GACJ,KAAI;AACH,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,YAAY,GAAG,EAAE;IAEvB,IAAI,WAAW,EAAE;AACf,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;;IAGtD,IAAI,OAAO,EAAE;AACX,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;IAGlD,IAAI,GAAG,EAAE;AACP,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;IAG1C,MAAM,SAAS,GAAG,MAAM;AACrB,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;AACb,SAAA,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;QACnC;;AAGF,IAAA,OAAO,SAAS,CAAC,CAAC,CAAC;AACrB,CAAC;;ACpCD,MAAMA,QAAM,GAAG,KAAK,CAAC,uCAAuC,CAAC;AAgBtD,MAAM,uBAAuB,GAA4B,OAAO,EACrE,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,UAAU,EACV,SAAS,EACT,eAAe,GAChB,KAAI;AACH,IAAA,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE;AAC5B,QAAAA,QAAM,CACJ,CAAA,qFAAA,EAAwF,YAAY,CAAA,CAAE,CACvG;QACD;;IAGF,IAAI,YAAY,GAAG,QAAQ;IAE3B,IACE,OAAO,QAAQ,KAAK,QAAQ;AAC5B,QAAA,CAAC,uBAAuB;QACxB,CAAC,gBAAgB,EACjB;AACA,QAAA,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC;;AAG7C,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,IAAI,GAAG,MAAM;AAChB,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;SACb,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAa,CAAC,EACxC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAY,CAAC,CACvC;SAEF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;;;;;;;;;;;;;;;;;;IAoBxE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,MAAM,EACJ,OAAO,EACP,GAAG,EACH,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,mBAAmB,EAClC,SAAS,EACT,OAAO,EACP,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EAAE,qBAAqB,EACtC,WAAW,EAAE,iBAAiB,EAC9B,gBAAgB,EAAE,sBAAsB,EACxC,uBAAuB,EAAE,6BAA6B,GACvD,GAAG,IAAI,CAAC,CAAC,CAAC;QAEX,IACE,mBAAmB,KAAK,QAAQ;AAChC,YAAA,SAAS,KAAK,SAAS,EAAE,WAAW,EAAE;AACtC,YAAA,iBAAiB,KAAK,WAAW;YACjC,sBAAsB,KAAK,gBAAgB,EAC3C;AACA,YAAAA,QAAM,CACJ,CAAA,2FAAA,EAA8F,kBAAkB,CAAA,CAAE,CACnH;YACD;;;QAIF,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,uBAAuB,GAAG,CAAA;2EACqC,YAAY,CAAA;0EACb,WAAW,GAAG,CAAA,CAAA,EAAI,WAAW,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;0EACzC,gBAAgB,GAAG,CAAA,CAAA,EAAI,gBAAgB,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;0EACnD,uBAAuB,GAAG,CAAA,CAAA,EAAI,uBAAuB,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;0EACjE,IAAI,CAAC,GAAG,EAAE;AACzB,yDAAA,EAAA,OAAO,IAAI;YAEhE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAIjD;;QAGF,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;QACzD,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;;AAG3E,QAAA,MAAM,UAAU,GAAG,UAAU,EAAE;AAE/B,QAAA,MAAM,oBAAoB,GAAG,CAAA;;;;;;;;;;;;;;;6CAeY,UAAU,CAAA;6CACV,kBAAkB,CAAA;6CAClB,YAAY,CAAA;AACZ,2CAAA,EAAA,SAAS,IAAI,SAAS,EAAE,WAAW,EAAE,CAAA;AACtC,0CAAA,EAAA,cAAc,EAAE,GAAG,GAAG,CAAA,CAAA,EAAI,cAAc,CAAC,GAAG,CAAA,CAAA,CAAG,GAAG,MAAM,CAAA;6CACvD,iBAAiB,CAAA;6CACjB,cAAc,CAAA;AACf,0CAAA,EAAA,iBAAiB,EAAE,GAAG,GAAG,CAAA,CAAA,EAAI,iBAAiB,CAAC,GAAG,CAAA,CAAA,CAAG,GAAG,MAAM,CAAA;6CAC7D,SAAS,CAAA;4CACV,WAAW,GAAG,CAAA,CAAA,EAAI,WAAW,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;4CACzC,WAAW,GAAG,CAAA,CAAA,EAAI,WAAW,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;4CACzC,gBAAgB,GAAG,CAAA,CAAA,EAAI,gBAAgB,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;4CACnD,uBAAuB,GAAG,CAAA,CAAA,EAAI,uBAAuB,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;4CACjE,eAAe,GAAG,CAAA,CAAA,EAAI,eAAe,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;AACjD,0CAAA,EAAA,IAAI,CAAC,GAAG,EAAE,CAAA,EAAA,CAAI;QAEtD,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAI9C,OAAO;AACL,YAAA,OAAO,EAAE,UAAU;YACnB,SAAS;SACV;;;AAKH,IAAA,MAAM,UAAU,GAAG,UAAU,EAAE;IAE/B,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;QACnD,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,GAAG,QAAQ,CAAC,GAAG;;;IAI1B,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QACrE,IAAI,WAAW,EAAE;AACf,YAAA,UAAU,GAAG,WAAW,CAAC,GAAG;;;AAIhC,IAAA,MAAM,oBAAoB,GAAG,CAAA;;;;;;;;;;;;;;2CAcY,UAAU,CAAA;2CACV,YAAY,CAAA;2CACZ,YAAY,CAAA;2CACZ,SAAS,EAAE,WAAW,EAAE,CAAA;0CACzB,OAAO,GAAG,CAAA,CAAA,EAAI,OAAO,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;2CAChC,WAAW,CAAA;2CACX,cAAc,CAAA;0CACf,UAAU,GAAG,CAAA,CAAA,EAAI,UAAU,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;2CACtC,SAAS,CAAA;0CACV,WAAW,GAAG,CAAA,CAAA,EAAI,WAAW,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;0CACzC,gBAAgB,GAAG,CAAA,CAAA,EAAI,gBAAgB,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;0CACnD,uBAAuB,GAAG,CAAA,CAAA,EAAI,uBAAuB,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;0CACjE,eAAe,GAAG,CAAA,CAAA,EAAI,eAAe,CAAG,CAAA,CAAA,GAAG,MAAM,CAAA;AACjD,wCAAA,EAAA,IAAI,CAAC,GAAG,EAAE,CAAA,EAAA,CAAI;IAEtD,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAI9C,OAAO;AACL,QAAA,OAAO,EAAE,UAAU;QACnB,SAAS;KACV;AAKH,CAAC;;ACrOM,MAAM,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAI;IAC5C,MAAM,EACJ,OAAO,EACP,YAAY,EAAE,eAAe,EAC7B,WAAW,EACX,cAAc,EACd,UAAU,EACV,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EACpB,SAAS,GACV,GAAG,OAAO;AAEX,IAAA,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO;AAE3B,IAAA,IAAI,QAA+B;IAEnC,IAAI,KAAK,EAAE;AACT,QAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ;;AAG3B,IAAA,IAAI,aAAa,KAAK,QAAQ,EAAE;AAC9B,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;QAC1C;;IAGF,IAAI,CAAC,oBAAoB,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;AAGjD,IAAA,MAAM,aAAa,GAAG,YAA6B;QACjD,IAAI,YAAY,GAAG,eAAe;QAElC,IACE,oBAAoB,CAAC,YAAY;YACjC,oBAAoB,CAAC,YAAY,KAAK,UAAU;AAChD,YAAA,oBAAoB,CAAC,QAAQ,KAAK,UAAU,EAC5C;AACA,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,cAAc;gBACpB,QAAQ;AACT,aAAA,CAAC;AACF,YAAA,OAAO,KAAK;;AAGd,QAAA,IACE,oBAAoB,CAAC,YAAY,KAAK,UAAU;AAChD,YAAA,oBAAoB,CAAC,QAAQ,KAAK,UAAU,EAC5C;AACA,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,cAAc;gBACpB,QAAQ;AACT,aAAA,CAAC;AACF,YAAA,OAAO,KAAK;;QAGd,IACE,oBAAoB,CAAC,WAAW;AAChC,YAAA,oBAAoB,CAAC,WAAW,KAAK,aAAa,EAClD;AACA,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,iBAAiB;gBACvB,QAAQ;AACT,aAAA,CAAC;AACF,YAAA,OAAO,KAAK;;QAGd,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,IAAI,WAAW;AAEf,YAAA,IAAI,oBAAoB,CAAC,QAAQ,EAAE;AACjC,gBAAA,WAAW,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,QAAQ;AAC5D,qBAAA,GAAwB;;AAG7B,YAAA,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC;gBACnD,YAAY;gBACZ,WAAW;AACZ,aAAA,CAAC;YACF,IAAI,aAAa,EAAE;AACjB,gBAAA,SAAS,GAAG,aAAa,CAAC,EAAE;;;AAIhC,QAAA,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;YAC3C,OAAO;YACP,YAAY;YACZ,QAAQ;YACR,WAAW;YACX,cAAc;YACd,UAAU;YACV,SAAS;YACT,SAAS;AACV,SAAA,CAAC;AAEF,QAAA,IAAI,cAAc,GAAoC;AACpD,YAAA,aAAa,EAAE,QAAQ;SACxB;QAED,IAAI,OAAO,EAAE;AACX,YAAA,cAAc,CAAC,OAAO,GAAG,OAAO;;QAGlC,IAAI,SAAS,EAAE;AACb,YAAA,cAAc,CAAC,SAAS,GAAG,SAAS;;AAGtC,QAAA,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,OAAO,EAAE;AAC/B,YAAA,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;;AAGzC,QAAA,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,SAAS,EAAE;AACnC,YAAA,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;;AAG7C,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,GAAG,cAAc;AAClB,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI;AACb,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;QAC9B,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;;AAE9C,KAAC,CAAC;AACJ,CAAC,CAAC;;AChIK,MAAM,cAAc,GAAmB,OAC5C,cAAc,EACd,oBAAqB,KACnB;AACF,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,cAAc,CAAC,OAAO,GAAG,UAAU,EAAE;IAErC,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,EAAE;QACzD,cAAc,CAAC,SAAS,GAAGyB,aAAW,CAAC,cAAc,CAAC,SAAS,CAAC;;IAGlE,MAAM,aAAa,GAAG,oBAAoB,IAAI,oBAAoB,CAAC,WAAW,KAAK,aAAa;;;;;;;;;;;;IAchG,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,oBAAoB,EAAE;AACvE,QAAA,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE;AACpD,QAAA,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE;QAE9C,MAAM,WAAW,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,GAAG;QAE1E,MAAM,qBAAqB,GAAGA,aAAW,CAAC,cAAc,CAAC,YAAY,CAAC;AAEtE,QAAA,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AAC/C,YAAA,QAAQ,EAAE,CAAC,CAAA,eAAA,EAAkB,cAAc,CAAC,YAAY,EAAE,CAAC;YAC3D,OAAO,EAAE,YACP,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE;AACpC,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EAAE;AACN,wBAAA,MAAM,EAAE,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,qBAAqB,CAAE,CAAA;AAClD,qBAAA;AACF,iBAAA;aACF,CAAC;AACL,SAAA,CAAC;QAEF,IAAI,WAAW,IAAI,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjD,cAAc,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;;;AAKxD,IAAA,OAAO;SACJ,MAAM,CAAC,QAAQ;AACf,SAAA,MAAM,CAAC;AACN,QAAA,GAAG,cAAc;AACjB,QAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrB,QAAA,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB;AACA,SAAA,SAAS,EAAE;AAChB,CAAC;;ACzDD,MAAM,qBAAqB,GAAG,OAAO,IAAU,KAA0B;AACvE,IAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC7B,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE;AAC/B,QAAA,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,KAAI;AAC1B,YAAA,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,MAAqB;YAElD,OAAO,CAAC,WAAW,CAAC;AACtB,SAAC;AAED,QAAA,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAChC,KAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAG,OAAO,GAAW,KAAI;AACvC,IAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC;IACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACrD,IAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE;AAChD,IAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;IAEzC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAC/B,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAC9C,EAAE,CACH;AAED,IAAA,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IAE/B,IAAI,QAAQ,EAAE;AACZ,QAAA,MAAM,GAAG,CAAQ,KAAA,EAAA,QAAQ,CAAW,QAAA,EAAA,MAAM,EAAE;;AAG9C,IAAA,OAAO,MAAM;AACf,CAAC;AAED,IAAI,cAAkC;AAE/B,MAAM,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAI;IAC5C,MAAM,EACJ,OAAO,EACP,YAAY,EAAE,eAAe,EAC7B,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EACpB,SAAS,EACT,WAAW,EACX,OAAO,EACP,cAAc,EACd,UAAU,GACX,GAAG,OAAO;AAEX,IAAA,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO;AAE3B,IAAA,IAAI,QAA+B;IAEnC,IAAI,KAAK,EAAE;AACT,QAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ;;AAG3B,IAAA,IAAI,aAAa,KAAK,QAAQ,EAAE;AAC9B,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;QAC1C;;AAGF,IAAA,MAAM,aAAa,GAAG,YAA0B;QAC9C,IAAI,YAAY,GAAG,eAAe;QAElC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACnC,YAAA,YAAY,GAAG,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI;;AAGpC,QAAA,IAAI,YAAY;AAChB,QAAA,IAAI,QAA0C;AAC9C,QAAA,IAAI,QAAQ;AACZ,QAAA,IAAI,QAAQ;QAEZ,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,cAAc,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC;;AAGtD,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAGhD,QAAA,IAAI,YAAY,KAAK,aAAa,EAAE;AAClC,YAAA,QAAQ,GAAG,WAAW,CAAC,QAAkB,CAAC;AAC1C,YAAA,MAAM,UAAU,GAAI,QAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;AAErC,YAAA,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM;AACxC,YAAA,MAAM,WAAW,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC;AAChD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE;gBACrC,WAAW,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;;AAE7C,YAAA,QAAQ,GAAG,WAAW,CAAC,MAAM;;AAG/B,QAAA,IAAI,YAAY,KAAK,KAAK,EAAE;AAC1B,YAAA,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAkB,CAAC;;AAGjD,QAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;AAC5B,YAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI;AACxB,YAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI;AACxB,YAAA,QAAQ,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC;;QAGlD,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC;;AAGvC,QAAA,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC;AAC3C,YAAA,IAAI,EAAE,OAAO;AACd,SAAA,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,mBAAmB;YAC9B,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,IAAI,CAAA,CAAA,EAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAE;;;AAI5C,QAAA,MAAM,QAAQ,GAAG,CAAiB,cAAA,EAAA,QAAQ,EAAE;AAE5C,QAA4B,MAAM,aAAa,CAAC;AAC9C,YAAA,WAAW,EAAE,mBAAmB;AAChC,YAAA,QAAQ,EAAE,OAAO;AAClB,SAAA;AAED,QAAA,IAAI,QAAQ,YAAY,WAAW,EAAE;AACnC,YAAA,IAAI;AACF,gBAAA,MAAM,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;;YAClE,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;gBACxC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;AACpD,gBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;;;AAI7C,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,IAAI;gBACF,MAAM,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;;YAClD,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;AACxC,gBAAA,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACpC,gBAAA,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC;;;QAK7C,MAAM,eAAe,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,WAAW,EAAC,CAAC;QAC1G,MAAM,eAAe,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,EAAC,CAAC;QAC9F,MAAM,eAAe,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAC,CAAC;QAChG,MAAM,eAAe,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,KAAK,EAAC,CAAC;QAC9F,MAAM,eAAe,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,WAAW,EAAC,CAAC;QAE1G,MAAM,uBAAuB,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AAErF,QAAA,IAAI,UAAU;QAEd,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC;gBACE,YAAY;AACZ,gBAAA,aAAa,EAAE,mBAAmB;gBAClC,WAAW;gBACX,OAAO;gBACP,cAAc;gBACd,UAAU;gBACV,SAAS;gBACT,SAAS;AACT,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,YAAY,EAAE,cAAc;gBAC5B,uBAAuB;AACvB,gBAAA,gBAAgB,EAAE,QAAQ;AAC1B,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,WAAW,EAAE,SAAS;aACvB,EACD,oBAAoB,CACrB;AAED,YAAA,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO;;QAGhC,IAAI,OAAO,EAAE;AACX,YAAA,MAAM,uBAAuB,CAAC;AAC5B,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,YAAY,EAAE,eAAe;AAC7B,gBAAA,QAAQ,EAAE,mBAAmB;gBAC7B,WAAW;gBACX,cAAc;gBACd,SAAS;gBACT,SAAS;AACT,gBAAA,WAAW,EAAE,OAAO;gBACpB,uBAAuB;AACvB,gBAAA,gBAAgB,EAAE,QAAQ;AAC1B,gBAEA,eAAe,EAAE,SAElB,CAAA,CAAC;;AAGJ,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,UAAU,IAAI,OAAO;AAC9B,YAAA,aAAa,EAAE,mBAAmB;AAClC,YAAA,WAAW,EAAE,OAAO;AACpB,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,WAAW,EAAE,uBAAuB;YACpC,uBAAuB;AACvB,YAAA,gBAAgB,EAAE,QAAQ;AAC1B,YAAA,eAAe,EAAE,SAAS;AAC1B,YAAA,WAAW,EAAE,SAAS;YACtB,SAAS;AACV,SAAA,CAAC;AACJ,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;AAC3C,KAAC,CAAC;AACJ,CAAC,CAAC;;ACvOK,MAAM,YAAY,GAAG,YAAY,CAGtC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAI;IAC5C,MAAM,EACJ,OAAO,EACP,YAAY,EAAE,eAAe,EAC7B,cAAc,EACd,OAAO,EACP,WAAW,EACX,aAAa,EAAE,aAAa,EAC5B,oBAAoB,GACrB,GAAG,OAAO;IAEX,IAAI,CAAC,oBAAoB,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;AAGjD,IAAA,IAAI,QAA+B;IAEnC,IAAI,KAAK,EAAE;AACT,QAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ;;AAG3B,IAAA,MAAM,aAAa,GAAG,YAA6B;QAGjD,IAAI,YAAY,GAAG,eAAe;QAKlC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,YAAY,GAAG,CAAA,EAAG,YAAY,CAAA,EAAA,CAAI;;AAGpC,QAAA,IAAI,YAAY;AAEhB,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;AAChC,YAAA,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC;;AAGhD,QAAA,IAAI,QAAQ,YAAY,IAAI,EAAE;YAC5B,YAAY,GAAG,MAAM;;AAGvB,QAAA,IAAI,oBAAoB,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChD,YAAA,QAAQ,CAAC;AACP,gBAAA,IAAI,EAAE,cAAc;gBACpB,QAAQ;gBACR,YAAY;AACb,aAAA,CAAC;AACF,YAAA,OAAO,KAAK;;AAGd,QAAA,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCb,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;QAC9B,IAAI,MAAM,EAAE;AACV,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;;AAE7C,KAAC,CAAC;AACJ,CAAC,CAAC;;ACrGK,MAAM,mBAAmB,GAAwB,OAAO,KAAK,KAAI;AACtE,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;IAE/B,MAAM,YAAY,GAAG,EAAE;AAEvB,IAAA,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC;AAE9C,IAAA,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACjE,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACpD,YAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;;;IAIpE,MAAM,SAAS,GAAG,MAAM;AACrB,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;AACb,SAAA,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IAE9B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QACxC;;AAGF,IAAA,OAAO,SAAS,CAAC,CAAC,CAAC;AACrB,CAAC;;AClBM,MAAM,eAAe,GAAG,YAAY,CAGzC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAI;AAC5C,IAAA,MAAM,EACJ,OAAO,EACP,WAAW,EACX,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,aAAa,EAAE,aAAa,GAC7B,GAAG,OAAO;IAEX,IAAI,CAAC,oBAAoB,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;;AAGjD,IAAA,IAAI,QAA+B;IAEnC,IAAI,KAAK,EAAE;AACT,QAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ;;AAG3B,IAAA,IAAI,aAAa,KAAK,QAAQ,EAAE;AAC9B,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC;QAC1C;;AAGF,IAAA,MAAM,gBAAgB,GAAG,YAA6B;;AAEpD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAC/B,QAAA,IAAI,YAAY;QAEhB,IAAI,OAAO,EAAE;YACX,YAAY,GAAG,MAAM,mBAAmB,CAAC;gBACvC,OAAO;AACR,aAAA,CAAC;;AAGJ,QAAA,IAAI,CAAC,OAAO,IAAI,WAAW,EAAE;AAC3B,YAAA,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;gBACjC,WAAW;AACZ,aAAA,CAAC;YACF,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,YAAY,GAAG;AACnB,oBAAA,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;AACvC,oBAAA,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;iBACtC;AAED,gBAAA,IAAI,QAAQ,CAAC,oBAAoB,EAAE;AACjC,oBAAA,YAAY,CAAC,IAAI,CACf,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAC3D;;gBAGH,MAAM,SAAS,GAAG,MAAM;AACrB,qBAAA,MAAM;qBACN,IAAI,CAAC,QAAQ;AACb,qBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;AAE9B,gBAAA,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE;AACjC,oBAAA,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC;;AAG7B,gBAAA,IAAI,CAAC,YAAY,IAAI,QAAQ,EAAE;oBAE7B,MAAM,QAAQ,GAAG,CAAA,EAAG,OAAO,IAAI,WAAW,CAAA,EAAG,oBAAoB,CAAC,cAAc,CAAA,CAAE;oBAClF,MAAM,WAAW,GAAG,CAAU,OAAA,EAAA,oBAAoB,CAAC,eAAe,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;oBAChF,MAAM,eAAe,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAuC,CAAC;AAEpF,oBAAA,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAC3C;wBACE,YAAY;AACZ,wBAAA,aAAa,EAAE,QAAQ;AACvB,wBAAA,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;wBAClC,WAAW;wBACX,OAAO;wBACP,cAAc,EAAE,QAAQ,CAAC,oBAAoB;wBAC7C,UAAU,EAAE,QAAQ,CAAC,gBAAgB;wBACrC,eAAe,EAAE,oBAAoB,CAAC,eAAe;AACrD,wBAAA,YAAY,EAAE,MAAM;qBACrB,EACD,oBAAoB,CACrB;AAED,oBAAA,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC;;;;;;;;;;;;QAcxC,MAAM,eAAe,GACnB,oBAAoB,CAAC,eAAe,IAAI,YAAY,CAAC,eAAe;AACtE,QAAA,MAAM,QAAQ,GACZ,YAAY,CAAC,gBAAgB;AAC7B,YAAA,CAAA,EAAG,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,WAAW,CAAA,EAAG,oBAAoB,CAAC,cAAc,CAAA,CAAE;AAE7F,QAAA,IAAI,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,CAAA,yBAAA,EAA4B,eAAe,CAAiB,cAAA,EAAA,QAAQ,CAAE,CAAA,CACvE;;AAGH,QAAA,MAAM,QAAQ,GAAG,CAAA,OAAA,EAAU,eAAe,CAAI,CAAA,EAAA,QAAQ,EAAE;AACxD,QAAA,IAAI;YACF,MAAM,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAuC,CAAC;;QACjF,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;AACxC,YAAA,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC;;AAGtC,QAAA,MAAM;aACH,MAAM,CAAC,QAAQ;AACf,aAAA,GAAG,CAAC;AACH,YAAA,gBAAgB,EAAE,QAAQ;SAC3B;AACA,aAAA,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AAEpD,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,eAAe;AACrB,YAAA,WAAW,EAAE,QAAQ;AACtB,SAAA,CAAC;AAEF,QAAA,OAAO,IAAI;AACb,KAAC;AAED,IAAA,gBAAgB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;QAClC,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;;AAEhD,KAAC,CAAC;AACJ,CAAC,CAAC;;AC7IF;AAEO,MAAM,eAAe,GAAG,KAAK,CAAC;AACnC,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAA4B;AACrC,QAAA,KAAK,EAAE,EAA4B;AACpC,KAAA;;;;AAID,IAAA,MAAM,EAAE;QACN,SAAS;QACT,aAAa;oBACb1B,YAAU;QACV,mBAAmB;QACnB,oBAAoB;QACpB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,eAAe;AAChB,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;AACf,IAAA,EAAE,EAAE,cAAc;AAClB,IAAA,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAA+B;AACvD,IAAA,EAAE,EAAE;;AAEF,QAAA,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC;AACd,gBAAA,QAAQ,EAAE,IAAI;aACf,CAAC;AACF,YAAA,MAAM,EAAE,SAAS;AAClB,SAAA;AACD,QAAA,aAAa,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAI;gBACrC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC;AAE7C,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAClD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjC,oBAAA,IAAI,GAAG,KAAK,MAAM,EAAE;wBAClB;;oBAEF,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;;AAE9B,gBAAA,OAAO,UAAU;AACnB,aAAC,CAAC;AACH,SAAA;AACF,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE;AACF,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,MAAM,EAAE,iBAAiB;oBACzB,OAAO,EAAE,MAAM,CAAC;AACd,wBAAA,SAAS,EAAE,IAAI;qBAChB,CAAC;AACH,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,WAAW;AAChB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,eAAe,EAAE;AACf,YAAA,EAAE,EAAE;AACF,gBAAA,oBAAoB,EAAE,cAAc;AACrC,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,eAAe;AACpB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE;AACF,gBAAA,iBAAiB,EAAE,MAAM;AACzB,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,MAAM,EAAE,uBAAuB;AAChC,iBAAA;AACD,gBAAA,eAAe,EAAE;AACf,oBAAA,MAAM,EAAE,wBAAwB;AACjC,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,aAAA;AACF,SAAA;AACD,QAAA,qBAAqB,EAAE;AACrB,YAAA,EAAE,EAAE;AACF,gBAAA,4BAA4B,EAAE;AAC5B,oBAAA,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,MAAM,CAAC;wBACd,uBAAuB,EAAE,CAAC,EAAE,KAAK,EAAE,KACjC,KAAK,CAAC,uBAAuB;wBAC/B,gBAAgB,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,gBAAgB;qBACxD,CAAC;AACH,iBAAA;AACD,gBAAA,yBAAyB,EAAE;AACzB,oBAAA,MAAM,EAAE,MAAM;AACf,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,qBAAqB;AAC1B,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,sBAAsB,EAAE;AACtB,YAAA,EAAE,EAAE;AACF,gBAAA,2BAA2B,EAAE;AAC3B,oBAAA,MAAM,EAAE,MAAM;AACf,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,sBAAsB;AAC3B,gBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,aAAA;AACF,SAAA;AACD,QAAA,MAAM,EAAE;AACN,YAAA,OAAO,EAAE,gBAAgB;AACzB,YAAA,MAAM,EAAE;AACN,gBAAA,cAAc,EAAE;AACd,oBAAA,EAAE,EAAE;AACF,wBAAA,oBAAoB,EAAE;AACpB,4BAAA,MAAM,EAAE,YAAY;AACrB,yBAAA;AACD,wBAAA,YAAY,EAAE,gBAAgB;AAC9B,wBAAA,YAAY,EAAE,gBAAgB;AAC9B,wBAAA,eAAe,EAAE,mBAAmB;AACrC,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,EAAE,cAAc;AACnB,wBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,qBAAA;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,EAAE,EAAE;AACF,wBAAA,mBAAmB,EAAE,YAAY;AAClC,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,EAAE,cAAc;AACnB,wBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,qBAAA;AACF,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,EAAE,EAAE;AACF,wBAAA,mBAAmB,EAAE,YAAY;AAClC,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,EAAE,cAAc;AACnB,wBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,qBAAA;AACF,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,EAAE,EAAE;AACF,wBAAA,sBAAsB,EAAE,YAAY;AACrC,qBAAA;AACD,oBAAA,MAAM,EAAE;AACN,wBAAA,GAAG,EAAE,iBAAiB;AACtB,wBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpD,qBAAA;AACF,iBAAA;AACD,gBAAA,UAAU,EAAE;AACV,oBAAA,IAAI,EAAE,OAAO;AACd,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAI;oBAC9B,OAAO;AACL,wBAAA,QAAQ,EAAE,KAAK;qBAChB;AACH,iBAAC,CAAC;AACH,aAAA;AACF,SAAA;AACF,KAAA;;;;;;;;;;;AAYF,CAAA,CAAC;;ACjMK,MAAM2B,iBAAe,GAAG,OAAO,EACpC,YAAY,EACZ,WAAW,EACX,OAAO,GACgB,KAAuC;AAC9D,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM,YAAY,GAAU;AAC1B,QAAA,EAAE,CACA,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,EACvC,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC,EAC9C,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,GAAG,KAAK,CAAC,CAChD;KACF;IAED,IAAI,WAAW,EAAE;AACf,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;;IAG1D,IAAI,OAAO,EAAE;AACX,QAAA,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;AAGlD,IAAA,MAAM,IAAI,IAAI,MAAM;AACjB,SAAA,MAAM;SACN,IAAI,CAAC,QAAQ;AACb,SAAA,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;SAC1B,OAAO,CACN,GAAG,CAAC,GAAG,CAAC,CAAmD,iDAAA,CAAA,CAAC,CAC7D,CAAmB;IAEtB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B;;AAGF,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC;IAEnB,OAAO;AACL,QAAA,GAAG,GAAG;AACN,QAAA,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;KACpC;AACH,CAAC;;;ACjCD,MAAM1B,QAAM,GAAG,KAAK,CAAC,wBAAwB,CAAC;MAYxB,gBAAgB,CAAA;AAepC,IAAA,WAAA,CAAY,aAAmD,EAAA;QAR5C,IAAW,CAAA,WAAA,GAAY,KAAK;QAC5B,IAAO,CAAA,OAAA,GAAY,KAAK;QAK3C,IAAW,CAAA2B,IAAA,CAAA,GAAG,IAAI;QAGhB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,aAAa;QAEnJ,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;;AAG3C,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC;QAEtC,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,CAAA,UAAA,CAAY,CAAC;;QAGjD,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,CAA4B,CAAC;;AAG/C,QAAA,MAAM,YAAY,GAAoC;YACpD,aAAa;YACb,YAAY;YACZ,WAAW;YACX,OAAO;YACP,cAAc;YACd,UAAU;AACV,YAAA,SAAS,EAAE,SAAS;YACpB,oBAAoB;AACpB,YAAA,oBAAoB,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC;YACrD,SAAS;SACV;QAID,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;AACjD,YAAA,IAAI,qBAAqB;YAEzB,MAAM,oBAAoB,GACxB,UAAU,CAAC,MAAM,CAA0B,YAAY,CAAC;YAC1D,IAAI,oBAAoB,EAAE;AACxB,gBAAA,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC,QAAQ;AAE9C,gBAAA,YAAY,CAAC,oBAAoB,GAAG,oBAAoB;AAExD,gBAAA,IAAI,oBAAoB,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChD,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;;AAGzB,gBAAA,IACE,oBAAoB,CAAC,QAAQ,KAAK,MAAM;oBACxC,oBAAoB,CAAC,GAAG,EACxB;AACA,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,oBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;oBAEvB,IAAI,aAAa,EAAE;AACjB,wBAAA,IAAI;4BACF,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;;wBACtD,OAAO,CAAC,EAAE;AACV,4BAAA3B,QAAM,CAAC,iCAAiC,EAAE,CAAC,CAAC;;;oBAIhD,MAAM,oBAAoB,GAAG,SAAS,CAAC,YAAa,EAAE,CAAC,CAAC;AAExD,oBAAA,IAAI,CAAC,MAAM,GAAG,YAAY;oBAE1B,YAAY,CAAC,YAAY,GAAG,CAAG,EAAA,oBAAoB,GAAG,oBAAoB,CAAC,GAAG,CAAA,GAAA,CAAK;;AAGrF,gBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,qBAAqB,EAAE;;;AAM/C,QAAA,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW;QAE1C,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,eAAe,EAAE;AAC3C,YAAA,KAAK,EAAE,YAAY;AACpB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAC1C,OAAO,QAA8B,KAAI;YACvC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAClC;;AAGF,YAAA,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ;AAC5B,YAAA,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO;AAExC,YAAA,IAAI,OAAO,CAAC,WAAW,EAAE;AACvB,gBAAA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CACxC,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,CACrB;gBACD,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACjD,oBAAA,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;AAC3C,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,QAAQ,EAAE,CAAC;AACZ,qBAAA,CAAC;;;AAIN,YAAA,IAAI,WAAW;AAEf,YAAA,IACE,oBAAoB;AACpB,gBAAA,oBAAoB,CAAC,WAAW;gBAChC,oBAAoB,CAAC,WAAW,KAAK,aAAa;AAClD,gBAAA,OAAO,CAAC,gBAAgB;gBACxB,OAAO,CAAC,eAAe,EACvB;gBACA,MAAM,QAAQ,GAAG,CAAA,OAAA,EAAU,OAAO,CAAC,eAAe,CAAA,CAAA,EAAI,OAAO,CAAC,gBAAgB,CAAA,CAAE;AAChF,gBAAA,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC;oBACzD,IAAI,MAAM,EAAE;wBACV,WAAW,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAE;;oBAEjE,IAAI,CAAC,MAAM,EAAE;wBACX,WAAW,GAAG,eAAe;;;gBAE/B,OAAO,CAAC,EAAE;AACV,oBAAAA,QAAM,CACJ,CAAA,gBAAA,EAAmB,OAAO,CAAC,WAAW,CAAA,GAAA,EAAM,OAAO,CAAC,YAAY,CAAA,qBAAA,CAAuB,EACvF,CAAC,CACF;oBACD,WAAW,GAAG,eAAe;;;YAIjC,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,aAAa;;YAG5D,IAAI,uBAAuB,GAAG,YAAY;AAE1C,YAAA,MAAM,aAAa,GACjB,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM;YAE/D,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC5D,uBAAuB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;;YAGhE,IAAI,CAAC,aAAa,IAAI,uBAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC7D,uBAAuB,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;;AAGhE,YAAA,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE;AAChC,gBAAA,uBAAuB,GAAG,IAAI,CAAC,MAAM;;AAGvC,YAAA,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAGnC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE;gBACvC;;AAGF,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;AAQjC,SAAC,CACF;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;;IAKvB,OAAO,gBAAgB,CAAC,aAAsC,EAAA;AAC5D,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;IAGpC,OAAO,MAAM,CACX,KAA2C,EAAA;AAE3C,QAAA,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,GACtE,KAAK;QACP,IAAI,CAAC,YAAY,KAAK,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,EAAE;YAC/C;;AAEF,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAC3B,OAAO,IAAI,WAAW,GACvB,YAAY,CACb;AACD,QAAA,IAAI,WAAW,IAAI,YAAY,EAAE;YAC/B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACpC,gBAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE;AAChE,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAC/B,QAAQ;oBACR,QAAQ,EAAE,QAAQ,GAAG,CAAC;AACvB,iBAAA,CAAC;AACF,gBAAA,OAAO,QAAQ;;YAEjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACrC,gBAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;AAC/B,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,CAAC;AACZ,iBAAA,CAAC;AACF,gBAAA,OAAO,WAAW;;;AAGtB,QAAA,IAAI,OAAO,IAAI,YAAY,EAAE;YAC3B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACpC,gBAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE;AAChE,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC;AACtE,gBAAA,OAAO,QAAQ;;YAEjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACrC,gBAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACxE,gBAAA,OAAO,WAAW;;;AAGtB,QAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC;;IAGxB,aAAa,IAAI,CAAC,EAChB,YAAY,EACZ,WAAW,EACX,OAAO,GACe,EAAA;QACtB,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,OAAO,KAAK,CAAC,YAAY,EAAE;YAC/C;;AAEF,QAAA,MAAM,UAAU,GAAG,OAAO,IAAI,WAAW;QACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAW,EAAE,YAAY,CAAC;QACrE,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACpC,YAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAE;AAChE,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/B,QAAQ;gBACR,QAAQ,EAAE,QAAQ,GAAG,CAAC;AACvB,aAAA,CAAC;AACF,YAAA,OAAO,QAAQ;;AAEjB,QAAA,MAAM,YAAY,GAAG,MAAM0B,iBAAe,CAAC;YACzC,YAAY;YACZ,WAAW;YACX,OAAO;AACR,SAAA,CAAC;QACF,IAAI,CAAC,YAAY,EAAE;YACjB;;AAEF,QAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC;;AAG9C,IAAA,OAAO,QAAQ,CAAC,gBAAwB,EAAE,YAAoB,EAAA;QAC5D,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,gBAAgB,CAAC;AACvD,QAAA,OAAO,QAAQ,GAAG,IAAI,OAAO,CAAI,CAAA,EAAA,YAAY,EAAE;;IAGjD,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,QAAQ;;IAGd,YAAY,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAA0B;;AAG5D,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,OAAO;;AAG5C,IAAA,IAAI,GAAG,GAAA;QACL,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG;;AAGxC,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,WAAW;;AAGhD,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,OAAO;;AAG5C,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,SAAS;;AAG9C,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM;;QAEpB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,YAAY;;AAGjD,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,SAAS;;AAG9C,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,oBAAoB;;AAGzD,IAAA,IAAI,gBAAgB,GAAA;QAClB,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE;AACxD,YAAA,OAAO,SAAS,IAAI,CAAC,WAAW,CAAC,eAAe,CAAI,CAAA,EAAA,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE;;QAEpG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE;AAC/C,YAAA,OAAO,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE;;;AAIjH,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,cAAc;;AAGnD,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK;;AAGlC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;AAGpB,IAAA,IAAI,KAAK,GAAA;;;;AAIP,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK;;IAG5B,IAAI,KAAK,CAAC,KAAU,EAAA;QAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,KAAK,EAAE;YACjC;;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO;AACnD,QAAA,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;AAE3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,QAAQ,EAAE,KAAK;AAChB,SAAA,CAAC;;AAGJ,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,GAAG;;AAG1C,IAAA,SAAS,CAAC,QAAkC,EAAA;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;;AAG1C,IAAA,MAAM,IAAI,GAAA;QACR,MAAM,OAAO,CACX,IAAI,CAAC,QAAQ,EACb,CAAC,QAAQ,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,EACrE;AACE,YAAA,OAAO,EAAE,KAAM;AAChB,SAAA,CACF;;;;;;;;;;IAWH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;;OAnXrB,SAAS;AAZO,gBAAA,CAAA,aAAa,GAG1B,IAAI,GAAG,EAAE;;AC7BR,MAAM,0BAA0B,GAAG,CAAC,IAAgB,KAAI;IAC7D,MAAM,mBAAmB,GAAG,EAAE;IAC9B,MAAM,sBAAsB,GAAG,EAAE;IACjC,MAAM,kBAAkB,GAAG,EAAE;IAC7B,MAAM,oBAAoB,GAAqB,EAAE;IACjD,MAAM,qBAAqB,GAAG,EAAE;AAChC,IAAA,IAAI,8BAA0D;AAE9D,IAAA,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACzD,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;YAC7B;;AAGF,QAAA,MAAM,aAAa,GACjB,YAAY,CAAC,WAAW,CAAC,WAAW;AACpC,YAAA,YAAY,CAAC,WAAW,CAAC,WAAW,KAAK,aAAa;QAGtD,YAAY,CAAC,WAAW,CAAC,QAAQ,KAAK,UAAU;AAChD,YAAA,YAAY,CAAC,WAAW,CAAC,YAAY,KAAK;AAE5C,QAAA,MAAM,oBAAoB,GACxB,YAAY,CAAC,YAAY,KAAK,sBAAsB;QAEtD,IAAI,YAAY,CAAC,WAAW,CAAC,QAAQ,KAAK,UAAU,EAAE;AACpD,YAAA,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC;YACzC;;QAGF,IAAI,YAAY,CAAC,WAAW,CAAC,QAAQ,KAAK,MAAM,EAAE;AAChD,YAAA,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC;YACrC;;QAGF,IAAI,aAAa,EAAE;AACjB,YAAA,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;YACxC;;QAGF,IAAI,oBAAoB,EAAE;YACxB,8BAA8B,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,EAAE;YACtE;;AAGF,QAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGxC,IAAI,8BAA8B,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE;AACtE,QAAA,8BAA8B,CAAC,eAAe,GAAG,qBAAqB;;IAGxE,IAAI,8BAA8B,EAAE;AAClC,QAAA,oBAAoB,CAAC,IAAI,CAAC,8BAA8B,CAAC;;IAG3D,OAAO;QACL,mBAAmB;QACnB,sBAAsB;QACtB,kBAAkB;QAClB,oBAAoB;KACrB;AACH,CAAC;;ACvDD,MAAM1B,QAAM,GAAG,KAAK,CAAC,gCAAgC,CAAC;AAG/C,MAAM,yBAAyB,GAAG,OACvC,IAAyB,EACzB,WAA+B,KACP;AACxB,IAAA,MAAM,eAAe,GAAwC;QAC3D,IAAI;AACJ,QAAA,IAAI,EAAE,EAAE;KACT;IAED,MAAM,EAAE,GAAG,MAAM,UAAU,EAAG,CAAC,iBAAiB,CAAC,eAAe,CAAC;IAEjE,IAAI,WAAW,EAAE;AACf,QAAAA,QAAM,CAAC,aAAa,EAAE,WAAW,CAAC;AAClC,QAAAA,QAAM,CAAC,mCAAmC,EAAE,EAAE,CAAC,EAAE,CAAC;AAClD,QAAA,EAAE,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC;;AAG3C,IAAA,OAAO,EAAE;AACX,CAAC;AASD,MAAM,qBAAqB,GAAG,OAC5B,cAA8B,EAC9B,OAAwB,EACxB,mBAAwC,KACZ;AAC5B,IAAA,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY;IAEhD,MAAM,YAAY,GAAsB,EAAE;AAE1C,IAAA,KAAK,MAAM,aAAa,IAAI,cAAc,CAAC,eAAe,EAAE;AAC1D,QAAA,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB;QAE/C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC/C;;QAGF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC;QACzD,IAAI,CAAC,MAAM,EAAE;YACX;;QAGF,YAAY,CAAC,IAAI,CAAC;YAChB,YAAY,EAAE,aAAa,CAAC,YAAY;AACxC,YAAA,gBAAgB,EAAE,QAAQ;AAC3B,SAAA,CAAC;;AAGJ,IAAA,IAAI,YAAY;AAChB,IAAA,IAAI,WAAwB;IAE5B,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9C,QAAA,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,gBAAgB,EAAE;AAC/D,YAAA,MAAM,QAAQ,GAAG,mBAAmB,CAAC,gBAAgB;YAErD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AAC/C,gBAAA,OAAO,OAAO;;YAGhB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC;YACzD,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,OAAO;;AAIhB,YAAA,IAAI;gBACF,YAAY,GAAG,MAAM,eAAe,CAAC,gBAAgB,CAAC,QAAQ,CAAC;;YAC/D,OAAO,CAAC,EAAE;AACV,gBAAA,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE;AACxC,gBAAA,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;;;QAG5C,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,OAAO,OAAO;;;AAIlB,IAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3B,MAAM,SAAS,GAAG,sBAAsB;;QAExC,IAAI,qBAAqB,GAAG,EAAE;AAE9B,QAAA,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;AACtC,YAAA,IAAI,mBAAmB;AAEvB,YAAA,IAAI;AACF,gBAAA,mBAAmB,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAC9C,WAAW,CAAC,gBAAgB,CAC7B;;YACD,OAAO,CAAC,EAAE;gBACV,mBAAmB,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC;;AAGrE,YAAA,qBAAqB,IAAI,CAAA,EAAG,SAAS,CAAA,EAAG,WAAW,CAAC,YAAY,CAAA,EAAG,SAAS,CAAA,EAAG,mBAAmB,CAAA,CAAE;;AAGtG,QAAA,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC;;IAGnD,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,YAAY,CAAC,YAAY,CAAE,CAAA,CAAC;;AAG5E,IAAA,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,UAAU,EACvB,YAAY,CAAC,UAAU,CACxB;IAED,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1D,WAAW,GAAG,MAAM,yBAAyB,CAAC,YAAY,EAAE,WAAW,CAAC;IAExE,IAAI,mBAAmB,GAAG;UACtB,mBAAmB,CAAC;AACtB,UAAE,YAAY,CAAC,OAAO;IACxB,IAAI,gBAAgB,GAAG;UACnB,mBAAmB,CAAC;AACtB,UAAE,YAAY,CAAC,YAAY;IAE7B,OAAO,CAAC,IAAI,CAAC;QACX,gBAAgB;QAChB,mBAAmB;QACnB,WAAW,EAAE,YAAY,CAAC,WAAY;QACtC,cAAc,EAAE,YAAY,CAAC,cAAe;AAC5C,QAAA,iBAAiB,EAAE,WAAW;AAC/B,KAAA,CAAC;AAEF,IAAA,OAAO,OAAO;AAChB,CAAC;AAQM,MAAM,iBAAiB,GAAG,OAC/B,IAAgB,EAChB,OAA2B,GAAA,EAAE,EAC7B,mBAAwC,KACtC;;;;;;;;;IAUF,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,GACpD,0BAA0B,CAAC,IAAI,CAAC;AAElC,IAAA,KAAK,MAAM,cAAc,IAAI,oBAAoB,EAAE;QACjD,OAAO,GAAG,MAAM,qBAAqB,CACnC,cAAc,EACd,OAAO,EACP,mBAAmB,CACpB;;AAGH,IAAA,KAAK,MAAM,gBAAgB,IAAI,sBAAsB,EAAE;QACrD,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC,WAAW;aAC5D,OAAO,CAAC,aAAa;AAExB,QAAA,IAAI,CAAC,aAAa,IAAI,gBAAgB,CAAC,GAAG,EAAE;YAC1C;;AAGF,QAAA,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,aAAa,CAAC;AAE1E,QAAA,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;YACtC,WAAW;YACX,OAAO;AACR,SAAA,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CACb,CAAA,yBAAA,EAA4B,gBAAgB,CAAC,YAAY,CAAE,CAAA,CAC5D;;QAGH,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC;;AAG3E,IAAA,OAAO,OAAO;AAChB,CAAC;;ACxMM,MAAM,OAAO,GAAY,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,KAAI;AAC5E,IAAA,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC;QACpC,SAAS;QACT,WAAW;QACX,OAAO;AACR,KAAA,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,CAAC,KAAK,CACX,CAAoD,iDAAA,EAAA,SAAS,CAAiB,cAAA,EAAA,WAAW,CAAa,UAAA,EAAA,OAAO,CAAE,CAAA,CAChH;QACD;;AAGF,IAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;QAC5B,OAAO,CAAC,KAAK,CACX,CAAgE,6DAAA,EAAA,SAAS,CAAiB,cAAA,EAAA,WAAW,CAAa,UAAA,EAAA,OAAO,CAAE,CAAA,CAC5H;QACD;;IAGF,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,EAAE;QAC9C,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;;AAGrD,IAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;AACrC,CAAC;;ACRD,MAAM,aAAa,GAAG,CAAC,IAAgB,KAAI;AACzC,IAAA,IAAI,UAAU;IAEd,IACE,IAAI,CAAC,gBAAgB;QACrB,IAAI,CAAC,gBAAgB,KAAK,MAAM;AAChC,QAAA,IAAI,CAAC,gBAAgB,KAAK,WAAW,EACrC;AACA,QAAA,UAAU,GAAG,IAAI,CAAC,gBAAgB;;IAEpC,OAAO,UAAU,IAAI,YAAY;AACnC,CAAC;AAED,MAAM,eAAe,GAAG,OAAO,YAAgC,KAAI;AACjE,IAAA,MAAM,WAAW,GACf,mBAAmB,CAAC,YAAY,CAAC,WAAY,CAAC,QAAQ,CAAC,CAAC,GAAG;AAE7D,IAAA,IAAI,SAAS,GAAuB,YAAY,CAAC,SAAS;IAE1D,MAAM,qBAAqB,GAAG,WAAW,CAAC,YAAY,CAAC,YAAY,CAAC;AAEpE,IAAA,MAAM,SAAS,GAAG,CAAA,EAAG,WAAW,CAAI,CAAA,EAAA,qBAAqB,EAAE;IAE3D,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,SAAS,GAAG,+BAA+B,CAAC,SAAS,CAAC;QACtD,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC;AAC5C,gBAAA,YAAY,EAAE,SAAS;AACvB,gBAAA,WAAW,EAAE,SAAS;AACvB,aAAA,CAAC;YACF,IAAI,MAAM,EAAE;AACV,gBAAA,SAAS,GAAG,MAAM,CAAC,EAAE;;;;IAK3B,OAAO;QACL,SAAS;QACT,WAAW;QACX,SAAS;QACT,qBAAqB;KACtB;AACH,CAAC;AAED,MAAM,sBAAsB,GAAG,OAC7B,mBAAyC,EACzC,eAA+B,KACJ;AAC3B,IAAA,KAAK,MAAM,aAAa,IAAI,mBAAmB,EAAE;AAC/C,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa;AAE5E,QAAA,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC,GAAG,EAAE;YAC/B;;AAGF,QAAA,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,GACzC,MAAM,eAAe,CAAC,aAAa,CAAC;QAEtC,MAAM,qBAAqB,GAAG,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC;AAErE,QAAA,MAAM,IAAI,GAAG;AACX,YAAA;AACE,gBAAA,IAAI,EAAE,qBAAqB;AAC3B,gBAAA,IAAI,EAAE,WAAW;gBACjB,KAAK;AACN,aAAA;SACF;AAED,QAAA,MAAM,WAAW,GAAG,IAAI,aAAa,CAAC,SAAS,CAAC;QAEhD,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAEhD,QAAA,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC;AACtC,YAAA,MAAM,EAAE,SAAU;AAClB,YAAA,IAAI,EAAE;AACJ,gBAAA;AACE,oBAAA,GAAG,sBAAsB;AACzB,oBAAA,IAAI,EAAE,WAAW;AAClB,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;;AAGJ,IAAA,OAAO,eAAe;AACxB,CAAC;AAED,MAAM,uBAAuB,GAAG,OAC9B,gBAAoC,EACpC,mBAAwC,EACxC,oBAA2C,EAC3C,mBAA2B,KACK;IAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,UAAU,EAAE,CAAC,WAAW;SACpD,OAAO,CAAC,aAAa;AACxB,IAAA,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,GAAG,EAAE;AAClC,QAAA,OAAO,mBAAmB;;AAG5B,IAAA,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC;AAElE,IAAA,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;QAChC,WAAW;QACX,OAAO;AACR,KAAA,CAAC;IAEF,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CACb,CAAA,6CAAA,EAAgD,gBAAgB,CAAC,YAAY,CAAE,CAAA,CAChF;;AAGH,IAAA,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;IAE7C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAC9C,gBAAgB,CAAC,WAAY,CAAC,GAAa,CAC5C;AAED,IAAA,IAAI,cAAc,GAAmB;QACnC,OAAO,EAAE,gBAAgB,CAAC,OAAO;AACjC,QAAA,eAAe,EAAE,IAAI;AACrB,QAAA,gBAAgB,EAAE,mCAAmC;QACrD,OAAO,EAAE,OAAO,IAAI,YAAY;QAChC,aAAa;QACb,UAAU;AACV,QAAA,kBAAkB,EAAE,EAAE;AACtB,QAAA,kBAAkB,EAAE;AAClB,YAAA;AACE,gBAAA,cAAc,EAAE,mBAAmB;gBACnC,iBAAiB,EAAE,gBAAgB,CAAC,SAAS;AAC9C,aAAA;AACF,SAAA;KACF;IAED,MAAM,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,GACjD,0BAA0B,CAAC,WAAW,CAAC;AAEzC,IAAA,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,QAAA,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAC9C,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY;AAChD,QAAA,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAC/C,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW,CACrE;QACD,IAAI,eAAe,EAAE;AACnB,YAAA,YAAY,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI;AACzC,YAAA,MAAM,YAAY,CAAC,IAAI,EAAE;AACzB,YAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;;;IAI1C,cAAc,GAAG,MAAM,sBAAsB,CAC3C,mBAAmB,EACnB,cAAc,CACf;AAED,IAAA,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;AAExC,IAAA,OAAO,mBAAmB;AAC5B,CAAC;AAED,MAAM,mBAAmB,GAAG,OAC1B,YAAgC,EAChC,mBAAwC,EACxC,mBAA2B,KACK;AAChC,IAAA,IAAI,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa;AACzE,IAAA,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC,GAAG,EAAE;AAC9B,QAAA,OAAO,mBAAmB;;IAG5B,MAAM,oBAAoB,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;IAC5C,CAAA,EAAG,oBAAoB,CAAA,EAAG,YAAY,CAAC,WAAY,CAAC,GAAG,CAAA,GAAA;IACrF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;AACpD,QAAA,KAAK,GAAG,CAAC,KAAK,CAAC;;IAEjB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;AAClD,QAAA,IAAI;AACF,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;;QACzB,OAAO,KAAK,EAAE;AACd,YAAA,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;;AAI5B,IAAA,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE;AAC1B,QAAA,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;AAEnE,QAAA,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;YAChC,WAAW;YACX,OAAO;AACR,SAAA,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,CAAC,KAAK,CACX,CAAA,yCAAA,EAA4C,YAAY,CAAC,YAAY,CAAE,CAAA,CACxE;YACD;;AAGF,QAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACvB,YAAA,OAAO,mBAAmB;;AAG5B,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC;QAE7C,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAC9C,YAAY,CAAC,WAAY,CAAC,GAAa,CACxC;AAED,QAAA,IAAI,cAAc,GAAmB;YACnC,OAAO,EAAE,WAAW,CAAC,WAAW;AAChC,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,gBAAgB,EAAE,mCAAmC;YACrD,OAAO,EAAE,OAAO,IAAI,YAAY;YAChC,aAAa;YACb,UAAU;AACV,YAAA,kBAAkB,EAAE,EAAE;AACtB,YAAA,kBAAkB,EAAE;AAClB,gBAAA;AACE,oBAAA,cAAc,EAAE,mBAAmB;oBACnC,iBAAiB,EAAE,YAAY,CAAC,SAAS;AAC1C,iBAAA;AACF,aAAA;SACF;QAED,MAAM,EAAE,mBAAmB,EAAE,GAAG,0BAA0B,CAAC,WAAW,CAAC;QAEvE,cAAc,GAAG,MAAM,sBAAsB,CAC3C,mBAAmB,EACnB,cAAc,CACf;AAED,QAAA,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC;;AAG1C,IAAA,OAAO,mBAAmB;AAC5B,CAAC;AAuBM,MAAM,iBAAiB,GAAG,OAC/B,IAAmB,EACnB,oBAA2C,KACX;IAEhC,IAAI,mBAAmB,GAAwB,EAAE;;;;AAQjD,IAAA,IAAI,eAAe,GAAmB;QACpC,OAAO,EAAE,IAAI,CAAC,WAAW;AACzB,QAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,YAAY;AACrC,QAAA,eAAe,EAAE,IAAI;QACrB,aAAa,EAAE,IAAI,CAAC,SAAS;AAC7B,QAAA,gBAAgB,EAAE,mCAAmC;AACrD,QAAA,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC;AAC/B,QAAA,kBAAkB,EAAE,EAAE;AACtB,QAAA,kBAAkB,EAAE,EAAE;KACvB;AAED,IAAA,MAAM,EACJ,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,GACrB,GAAG,0BAA0B,CAAC,IAAI,CAAC;AAEpC,IAAA,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;AACrC,QAAA,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC;AAC9C,QAAA,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY;AAChD,QAAA,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAC/C,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,CAC9D;QACD,IAAI,eAAe,EAAE;AACnB,YAAA,YAAY,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI;AACzC,YAAA,MAAM,YAAY,CAAC,IAAI,EAAE;AACzB,YAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;;;AAI1C,IAAA,KAAK,MAAM,gBAAgB,IAAI,sBAAsB,EAAE;AACrD,QAAA,mBAAmB,GAAG,MAAM,uBAAuB,CACjD,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,IAAI,CAAC,WAAW,CACjB;AACD,QAAA,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC;;AAG5C,IAAA,KAAK,MAAM,YAAY,IAAI,kBAAkB,EAAE;AAC7C,QAAA,mBAAmB,GAAG,MAAM,mBAAmB,CAC7C,YAAY,EACZ,mBAAmB,EACnB,IAAI,CAAC,WAAW,CACjB;AACD,QAAA,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;;IAGxC,eAAe,GAAG,MAAM,sBAAsB,CAC5C,mBAAmB,EACnB,eAAe,CAChB;AAED,IAAA,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC;AAKzC,IAAA,OAAO,mBAAmB;AAC5B,CAAC;;AChVM,MAAM,aAAa,GAAG,OAAO,EAClC,SAAS,EACT,GAAG,YAAY,EACI,KAAsC;IACzD,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;;AAG/D,IAAA,MAAM,QAAQ,GAAGyB,aAAW,CAAC,SAAS,CAAC;IAEvC,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAEtD,IAAA,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAEA,aAAW,CAAC,SAAS,CAAC,EAAE,CAAC;IAEtG,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;AAEnD,IAAA,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACxE,QAAA,IAAI,oBAAoB;AAExB,QAAA,IAAI,eAAe,IAAI,eAAe,CAAC,YAAY,CAAC,EAAE;AACpD,YAAA,oBAAoB,GAAG,eAAe,CAAC,YAAY,CAAC;;AAGtD,QAAA,MAAM,cAAc,CAClB;AACE,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,cAAc,EAAE,YAAY;YAC5B,YAAY;YACZ,aAAa;YACb,SAAS;SACV,EACD,oBAAoB,CACrB;;IAGH,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC;IAEnD,OAAO;QACL,SAAS;AACT,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,cAAc,EAAE,YAAY;KAC7B;AACH,CAAC;;;MC5BqB,QAAQ,CAAA;AAS5B,IAAA,WAAA,CAAY,aAA8B,EAAA;QAJ1C,IAAW,CAAA,EAAA,CAAA,GAAG,IAAI;AACR,QAAA,IAAA,CAAA,kBAAkB,GAAwD,IAAI,eAAe,CAAC,EAAE,CAAC;AA8R3G,QAAA,IAAA,CAAA,SAAS,GAAG,CAAC,QAAkC,KAAkB;YAC/D,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC1C,gBAAA,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5B,aAAC,CAAC;AACJ,SAAC;QAED,IAAU,CAAA,UAAA,GAAG,MAA6C;YACxD,OAAO,IAAI,CAAC,QAAQ;AACtB,SAAC;QAED,IAAmB,CAAA,mBAAA,GAAG,YAAoC;YACxD,OAAO,MAAM,iBAAiB,CAAC;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,gBAAA,MAAM,EAAE,IAAI;AACb,aAAA,CAAC;AACJ,SAAC;QAED,IAAO,CAAA,OAAA,GAAG,YAA0B;AAClC,YAAA,MAAM,YAAY,CAAC;AACjB,gBAAA,GAAG,EAAE;AACH,oBAAA,UAAU,EAAE,CAAsB,oBAAA,CAAA;AAClC,oBAAA,IAAI,EAAE;wBACJ,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,qBAAA;AACF,iBAAA;AACD,gBAAA,GAAG,EAAE;AACH,oBAAA,UAAU,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,WAAW,CAAkB,gBAAA,CAAA;AACvD,iBAAA;AACF,aAAA,CAAC;AACJ,SAAC;QAED,IAAiB,CAAA,iBAAA,GAAG,YAAW;AAC7B,YAAA,OAAO,MAAM,iBAAiB,CAAC,IAAI,CAAC;AACtC,SAAC;AAED,QAAA,IAAA,CAAA,iBAAiB,GAAG,OAAO,oBAA2B,KAAI;AACxD,YAAA,OAAO,MAAM,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,CAAC;AAC5D,SAAC;AA9TC,QAAA,MAAM,EACJ,SAAS,EACT,OAAO,EACP,SAAS,EACT,WAAW,EACX,oBAAoB,EACpB,gBAAgB,GACjB,GAAG,aAAa;AAEjB,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC;AAEtC,QAAA,IACE,UAAU;YACV,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAChE,aAAa,CAAC,oBAAoB,EAClC;AACA,YAAA,IAAI,CAAC,qBAAqB,GAAG,aAAa,CAAC,oBAAoB;;AAGjE,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,iBAAiB,EAAE;AAC7C,YAAA,KAAK,EAAE;gBACL,WAAW;gBACX,OAAO;gBACP,SAAS;gBACT,UAAU;gBACV,oBAAoB;gBACpB,gBAAgB;gBAChB,oBAAoB,EAAE,IAAI,CAAC,qBAAqB;AACjD,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AACxD,YAAA,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ;AAE5B,YAAA,IACE,CAAC,OAAO;gBACR,CAAC,OAAO,CAAC,iBAAiB;AAC1B,gBAAA,OAAO,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,EACpC;gBACA;;YAGF,MAAM,aAAa,GAAuC,EAAE;YAE5D,KAAK,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,OAAO,CAAC,iBAAiB,EAAE;AAC/D,gBAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,qBAAqB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBAClE,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,gBAAgB;oBAChD;;gBAGF,IAAI,cAAc,GAAW,GAAa;AAE1C,gBAAA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC1B,oBAAA,cAAc,GAAG,gBAAgB,CAAC,KAAK;;AAGzC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAClD,oBAAA,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACjC,oBAAA,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC;;AAG5C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACjD,oBAAA,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;;AAGnC,gBAAA,aAAa,CAAC,cAAc,CAAC,GAAG,gBAAgB;;AAGlD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC;;AAE7C,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AAErB,QAAA,MAAM,WAAW,GAAa,CAAC,YAAY,CAAC;AAE5C,QAAA,MAAM,gBAAgB,GAAyC;YAC7D,WAAW;YACX,OAAO;AACP,YAAA,cAAc,EAAE,oBAAoB;AACpC,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,SAAS,EAAE,SAAS;SACrB;AAED,QAAA,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;AACnC,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AAEhC,YAAA,KAAK,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAC/D,MAAM,CACP,EAAE;gBACD,IAAI,CAAC,oBAAoB,EAAE;AACzB,oBAAA,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,CAAA,kBAAA,CAAoB,CAAC;;gBAG/D,IAAI,CAAC,uBAAuB,CAAC;AAC3B,oBAAA,GAAG,gBAAgB;oBACnB,YAAY;AACZ,oBAAA,aAAa,EAAE,aAAa,CAAC,YAAuB,CAAC;AACtD,iBAAA,CAAC;AAEF,gBAAA,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AAE9B,gBAAA,IACE,oBAAoB,CAAC,QAAQ,KAAK,UAAU;AAC5C,oBAAA,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAC5B;AACA,oBAAA,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAA,EAAA,CAAI,CAAC;;AAGvC,gBAAA,IACE,oBAAoB,CAAC,QAAQ,KAAK,MAAM;AACxC,oBAAA,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7B;oBACA,MAAM,oBAAoB,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC7D,MAAM,qBAAqB,GAAG,CAAG,EAAA,oBAAoB,GAAG,oBAAoB,CAAC,GAAG,CAAA,GAAA,CAAK;AACrF,oBAAA,WAAW,CAAC,IAAI,CAAC,qBAAqB,CAAC;;;;QAK1C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAsC,CAAC,OAAO,CACxE,CAAC,GAAG,KAAI;;AAEN,YAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC7B;;YAGF,IAAI,CAAC,uBAAuB,CAAC;AAC3B,gBAAA,GAAG,gBAAgB;AACnB,gBAAA,YAAY,EAAE,GAAG;AACjB,gBAAA,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC;AAClC,aAAA,CAAC;AACJ,SAAC,CACF;;IAKH,OAAO,gBAAgB,CAAC,aAA8B,EAAA;AACpD,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;;AAGpC,IAAA,aAAa,MAAM,CACjB,KAAwB,EAAA;QAExB,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE;YAClC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;;QAEzC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE;YACtC,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,CAAW;YAC7D,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAClC,gBAAA,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAE;AAC9D,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE;oBAC7B,QAAQ;oBACR,QAAQ,EAAE,QAAQ,GAAG,CAAC;AACvB,iBAAA,CAAC;AACF,gBAAA,KAAK,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACjE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,WAAW;yBACxD,OAAO,CAAC,iBAAiB;oBAC5B,IAAI,CAAC,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;wBAC9D;;oBAEF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC;oBAC5D,IAAI,CAAC,gBAAgB,EAAE;wBACrB;;AAEF,oBAAA,gBAAgB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;AACjC,wBAAA,IAAI,EAAE,eAAe;wBACrB,aAAa;AACd,qBAAA,CAAC;;AAEJ,gBAAA,OAAO,QAAQ;;YAEjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AACnC,gBAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE;AAC7B,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,QAAQ,EAAE,CAAC;AACZ,iBAAA,CAAC;AACF,gBAAA,OAAO,WAAW;;;AAGtB,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;QAE7D,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,GAAG,MAAM,aAAa,CAAC;YAC3D,SAAS,EAAE,KAAK,CAAC,SAAS;AAC1B,YAAA,GAAG,KAAK;AACT,SAAA,CAAC;AACF,QAAA,KAAK,CAAC,WAAW,GAAG,WAAW;AAC/B,QAAA,KAAK,CAAC,oBAAoB,GAAG,cAAc;AAC3C,QAAA,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,WAAW,EAAE;AACrE,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,QAAQ,EAAE,CAAC;AACZ,SAAA,CAAC;AACF,QAAA,OAAO,WAAW;;IAGpB,aAAa,IAAI,CAAC,EAChB,SAAS,EACT,WAAW,EACX,OAAO,GACO,EAAA;AACd,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE;YAC5B;;AAEF,QAAA,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;YACjC,SAAS;YACT,WAAW;YACX,OAAO;AACR,SAAA,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;YACxE;;QAGF,OAAO,QAAQ,CAAC,MAAM,CAAC;AACrB,YAAA,GAAG,QAAQ;YACX,SAAS;AACV,SAAA,CAAC;;AAGJ,IAAA,aAAa,GAAG,CACd,SAAkB,EAClB,OAAiB,EAAA;QAEjB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAC5D,MAAM,aAAa,GAAoB,EAAE;AACzC,QAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AAChC,YAAA,aAAa,CAAC,IAAI,CAChB,MAAM,QAAQ,CAAC,MAAM,CAAC;AACpB,gBAAA,GAAG,QAAQ;gBACX,SAAS;AACV,aAAA,CAAC,CACH;;AAGH,QAAA,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;;AAG9C,IAAA,uBAAuB,CAAC,KAA2C,EAAA;AAC3E,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;AAC9B,YAAA,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,qBAAqB;;QAGzD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;QAEvD,IAAI,CAAC,gBAAgB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAC5C;;AAGF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,qBAAqB;YAC3B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,gBAAgB;AACjB,SAAA,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;AAC9C,YAAA,GAAG,EAAE,MAAM,gBAAgB,CAAC,KAAK;AACjC,YAAA,GAAG,EAAE,CAAC,KAAK,MAAM,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;AAChD,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA,CAAC;;AAIJ,IAAA,aAAa,OAAO,CAAC,IAAgB,EAAA;AACnC,QAAA,MAAM,YAAY,CAAC;AACjB,YAAA,GAAG,EAAE;AACH,gBAAA,UAAU,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,WAAW,CAAkB,gBAAA,CAAA;AACtD,gBAAA,IAAI,EAAE;oBACJ,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,iBAAA;AACF,aAAA;AACD,YAAA,GAAG,EAAE;AACH,gBAAA,UAAU,EAAE,CAAA,KAAA,EAAQ,IAAI,CAAC,WAAW,CAAkB,gBAAA,CAAA;AACvD,aAAA;AACF,SAAA,CAAC;;AA0CJ,IAAA,IAAI,cAAc,GAAA;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC5C,QAAA,OAAQ,QAAgB,CAAC,OAAO,IAAI,EAAE;;AAGxC,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,WAAqB;;AAGlD,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO;;AAGpC,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAmB;;AAGhD,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgC;;AAG7D,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,oBAA8B;;AAG3D,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,SAAmB;;AAGhD,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK;;AAGtC,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,oBAA8B;;AAG3D,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,aAAuB;;AAGpD,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,sBAAgC;;IAG7D,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;;KArXrB,SAAS;AAHO,QAAA,CAAA,aAAa,GAA+D,IAAI,GAAG,EAAE;;AC7BjG,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;AAE3D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;AAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;AACrC,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,MAAM,EAAE,IAAI,CAAC,QAAQ,CACnB,CAAC,YAAY,CAAC,EACd,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CACrD;AACF,CAAA,CAAC;AAE+B,IAAI,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,WAAW;AAe7D,MAAA,KAAK,GAAqB,CAGrC,WAAc,KACZ;IACF,MAAM,UAAW,SAAQ,WAAW,CAAA;AAIlC,QAAA,OAAO,iBAAiB,GAAA;AACtB,YAAA,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAEhE,UAAU,CAAC,OAAO,CAChB,CAAC,EACC,WAAW,EACX,YAAY,GAIb,KAAI;;;;AAIH,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,YAAY;AAC1C,aAAC,CACF;;AAGH,QAAA,aAAa,MAAM,CAAC,MAAwB,EAAA;YAC1C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;AAC1C,YAAA,OAAO,IAAI;;AAGb,QAAA,OAAO,gBAAgB,GAAA;YACrB,OAAO,IAAI,CAAC,mBAAmB;;AAGjC,QAAA,WAAW,MAAM,GAAA;YACf,OAAO,IAAI,CAAC,OAAO;;AAGrB,QAAA,IAAI,MAAM,GAAA;AACR,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO;;;IArC5B,UAAO,CAAA,OAAA,GAA4B,EAAE;IAC7C,UAAmB,CAAA,mBAAA,GAAG,WAAW;IAwC1C,UAAU,CAAC,iBAAiB,EAAE;AAE9B,IAAA,OAAO,UAA6B;AACtC;;AC9EA,IAAIG;AAGG,MAAM,QAAQ,GAAG,YAAW;IACjC,IAAI,SAAS,EAAE,EAAE;QACfA,MAAI,GAAG,CAAC,MAAM,sDAA8B,EAAE,IAAI;;AAGpD,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;QAChBA,MAAI,GAAG,CAAC,MAAM,OAAO,oBAAmB,CAAC,EAAE,IAAI;;AAEnD,CAAC;;ACNK,MAAO,IAAyC,SAAQ,QAAW,CAAA;AAEvE,IAAA,WAAA,CAAY,aAA8B,EAAA;QACxC,KAAK,CAAC,aAAa,CAAE;;AAGxB;AAED,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;;;;;;;ACF/B,MAAM5B,QAAM,GAAG,KAAK,CAAC,wBAAwB,CAAC;AAE9C,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC;AAEjE,MAAM,cAAc,GAAG,CAAC,OAA2B,KAAI;IAC5D,IAAI,IAAI,GAAG,OAAO;AAClB,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;AAChC,QAAA,IAAI,GAAG,OAAO,CAAC,SAAS;;AAE1B,IAAA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1E,QAAA,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC;;AAErC,IAAA,OAAO,IAAI;AACb,CAAC;AAEM,MAAM,eAAe,GAAG,CAC7B,OAA2B,KACL;AACtB,IAAA,IAAI,KAAK;AACT,IAAA,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE;AACnE,QAAA,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK;;AAErC,IAAA,IAAI,cAAc,CAAC,OAAO,CAAC,KAAK,QAAQ,EAAE;AACxC,QAAA,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EACvC;YACA,KAAK,GAAG,OAAO;;;AAGnB,IAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACtC,QAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;AAE/B,IAAA,OAAO,KAAK;AACd,CAAC;AAEM,MAAM,mBAAmB,GAAG,CAAC,OAA2B,KAAI;AACjE,IAAA,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;QACvD;;AAEF,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM;AACnC,IAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACd;;AAEF,IAAA,IAAI,SAAS,GAAG,MAAM,CAAC,EAAE;IACzB,IAAI,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACnC,QAAA,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC;;AAE7D,IAAA,IAAI,QAAQ;AACZ,IAAA,IAAI;AACF,QAAA,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;;IAChC,OAAO,KAAK,EAAE;AACd,QAAAA,QAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;AACvB,QAAA,OAAO,SAAS;;IAElB,IAAI,QAAQ,EAAE;AACZ,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;AAChC,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;AAC7B,YAAA,SAAS,GAAG,OAAO,CAAC,MAAM;;AAE5B,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE;AACtC,YAAA,SAAS,GAAG,OAAO,CAAC,eAAe;;AAErC,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;YAChC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;;;AAG1D,IAAA,OAAO,SAAS;AAClB,CAAC;AAEY,MAAA,UAAU,GAAG,CAAC,OAA2B,KAAI;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAEjD,IAAA,MAAM,kBAAkB,GAAG,CAAC,OAA2B,KAAI;QACzD,IAAI,eAAe,GAAG,CAAC;AACvB,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;YACxB,MAAM,UAAU,GAAG,EAAE;YACrB,MAAM,aAAa,GAAG,EAAE;AAExB,YAAA,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;gBACrE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAClC,oBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;AAC1B,oBAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;;;AAI7B,YAAA,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM;AACxC,YAAA,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC;AACtC,YAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAChC,gBAAA,OAAO,CAAC;;YAEV,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;YAC5C,eAAe,GAAG,CAAC,UAAU,GAAG,WAAW,IAAI,GAAG;;AAEpD,QAAA,OAAO,eAAe;AACxB,KAAC;AAED,IAAA,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,QAAQ,KAAI;QACK,OAAO,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK;QAC1C,IACE,MAAM,KAAK,MAAM;AACjB,YAAA,MAAM,KAAK,SAAS;AACpB,YAAA,MAAM,KAAK,MAAM;YACjB,MAAM,KAAK,OAAO,EAClB;YACA,aAAa,CAAC,QAAQ,CAAC;YACvB;;QAEF,cAAc,CAAC,CAAC,WAAW,KAAK,WAAW,GAAG,CAAC,CAAC;AAClD,KAAC,EACD,CAAC,OAAO,CAAC,CACV;AAED,IAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAK;AACrC,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK;YAChC,UAAU,CAAC,QAAQ,CAAC;SACrB,EAAE,IAAI,CAAC;AACR,QAAA,OAAO,QAAQ;AACjB,KAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEzB,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,QAAQ,GAAG,aAAa,EAAE;AAChC,QAAA,OAAO,MAAM,aAAa,CAAC,QAAQ,CAAC;KACrC,EAAE,EAAE,CAAC;IAEN,OAAO;AACL,QAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;QAC7B,WAAW;AACX,QAAA,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC;AAC/B,QAAA,eAAe,EAAE,kBAAkB,CAAC,OAAO,CAAC;AAC5C,QAAA,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC;KACxC;AACH;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEjD,IAAA,MAAM,EAAE,cAAc,EAAE,GAAG,sBAAsB,EAAE;IAEnD,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,KAAK,OAAO,EAAE;YAC9B,YAAY,CAAC,IAAI,CAAC;;AAEtB,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpB,IAAA,OAAO,SAAS;AAClB,CAAC;AAEM,MAAM,qBAAqB,GAAG,MAAK;IACxC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAErD,IAAA,MAAM,iBAAiB,GAAG,oBAAoB,EAAE;IAEhD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE;;AAGnD,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,YAAW;AAClC,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC5B,YAAA,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC;AAC5C,YAAAA,QAAM,CACJ,CAAA,gCAAA,EAAmC,SAAS,CAAA,CAAA,CAAG,EAC/C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC,CAC7C;;;;;;AAML,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAGd,IAAA,MAAM,IAAI,GAAG,WAAW,CAAC,YAAW;AAClC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;QAE/B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,EAAE;;QAGX,MAAM,kBAAkB,GAAG,MAAM;AAC9B,aAAA,MAAM;aACN,IAAI,CAAC,QAAQ;aACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAC3C,QAAA,OAAO,kBAAkB;KAC1B,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,iBAAiB,IAAI,WAAW,EAAE;YACrC;;AAEF,QAAA,MAAM,UAAU,GAAG,YAAW;AAC5B,YAAA,MAAM,kBAAkB,GAAG,MAAM,IAAI,EAAE;AACvC,YAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;YACtD,cAAc,CAAC,IAAI,CAAC;AACtB,SAAC;AAED,QAAA,UAAU,EAAE;AAEZ,QAAA,OAAO,MAAK;YACV,IAAI,EAAE,CAAA;AACR,SAAC;AACH,KAAC,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;AACtC;AAEO,MAAM,oBAAoB,GAAG,MAAK;IACvC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEjE,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;IAEhC,SAAS,CAAC,MAAK;QACb,IAAI,SAAS,EAAE;AACb,YAAA,MAAM,kBAAkB,GAAG,YAA0B;AACnD,gBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;gBAE/B,MAAM,IAAI,GAAG,MAAM;AAChB,qBAAA,MAAM;qBACN,IAAI,CAAC,QAAQ;qBACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;gBAE3C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC3B,oBAAoB,CAAC,IAAI,CAAC;;AAE9B,aAAC;AAED,YAAA,kBAAkB,EAAE;;AAExB,KAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAEf,IAAA,OAAO,iBAAiB;AAC1B,CAAC;AAEM,MAAM,WAAW,GAAG,MAAK;IAC9B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAuB,EAAE,CAAC;IAC9D,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AAEzD,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAA8B;IAEvD,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,qBAAqB,GAAG,CAAC,KAAK,KAAI;YACtC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;gBAClC;;YAEF,IACE,KAAK,CAAC,QAAQ;gBACd,KAAK,CAAC,QAAQ,CAAC,KAAK;AACpB,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAC3B;AACA,gBAAA,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ;AAC9B,gBAAA,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC;AAE1B,gBAAA,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,EAAE;oBACjD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO;oBAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACjC,oBAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,wBAAA,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AAC1D,4BAAA,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;AACpC,4BAAA,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC;;;;AAKpC,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;AAChC,oBAAA,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,CAAC;oBACnD,IAAI,CAAC,SAAS,EAAE;wBACd;;AAEF,oBAAA,YAAY,CAAC,SAAS,GAAG,SAAS;AAClC,oBAAA,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC;AACxC,iBAAC,CAAC;gBAEF,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAChD,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAErE,SAAS,CACP,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;AACxB,oBAAA,OAAO,WAAW;iBACnB,CAAC,CACH;;AAEL,SAAC;AAED,QAAA,YAAY,CAAC,WAAW,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;AAExE,QAAA,OAAO,MAAK;AACV,YAAA,YAAY,CAAC,cAAc,CACzB,uBAAuB,EACvB,qBAAqB,CACtB;AACH,SAAC;KACF,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAC/B,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,KAAK,QAAQ,CAC9C;AACD,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CACjC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,KAAK,UAAU,CAChD;AACD,QAAA,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe,EAAE;YACtC;;AAEF,QAAA,IACE,eAAe,CAAC,aAAa,CAAC,KAAK,aAAa;AAChD,YAAA,eAAe,CAAC,eAAe,CAAC,KAAK,OAAO,EAC5C;AACA,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;YACjC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;AAC7C,gBAAA,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;AACpC,gBAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrC,aAAC,CAAC;AACF,YAAA,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM;YACvC,MAAM,eAAe,GAAG,CAAC,SAAS,GAAG,WAAW,IAAI,GAAG;YACvD,kBAAkB,CAAC,eAAe,CAAC;;AAEvC,KAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IAEZ,OAAO;AACL,QAAA,QAAQ,EAAE,MAAM;QAChB,eAAe;KAChB;AACH;AAEO,MAAM,sBAAsB,GAAG,MAAK;AACzC,IAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE;IAExC,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,QAAQ,KAAI;QACrD,OAAO,QAAQ,CAAC,KAAK;AACvB,KAAC,CAAC;AAEF,IAAA,MAAM,cAAc,GAAG,WAAW,CAChC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EACnD,CAAC,QAAQ,KAAI;QACX,IAAI,CAAC,QAAQ,EAAE;YACb;;QAEF,OAAO,QAAQ,CAAC,KAAK;AACvB,KAAC,CACF;IAEuB,WAAW,CAAC,aAAa,EAAE,CAAC,QAAQ,KAAI;AAC9D,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,eAAe;AACzC,KAAC;IAED,OAAO;QACL,MAAM;QACN,cAAc;KACf;AACH;;AC9VA,MAAMA,QAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC;AAkBnC,MAAM,OAAO,GAAiB,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,KAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkD3E,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC;IAC3D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAyB;IACzD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,EAErD;IAEH,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,sBAAsB,EAAE;AAE3D,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAEjC,IAAA,MAAM,UAAU,GAAG,WAAW,CAC5B,IAAI,EAAE,UAAU,EAAE,EAClB,CAAC,QAAQ,KAAK,QAAQ,EAAE,KAAK,CAC9B;AAED,IAAA,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,OAAkB,KAAI;AACrB,QAAA,WAAW,CAAC,CAAC,KAAK,KAAI;AACpB,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,KAAI;AACvD,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC;AACnC,gBAAA,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK;AAC7B,aAAC,CAAC;AACJ,SAAC,CAAC;AACJ,KAAC,EACD,CAAC,WAAW,CAAC,CACd;AAED,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,YAAW;QACxC,IACE,WAAW,CAAC,OAAO;AACnB,YAAA,cAAc,KAAK,OAAO;AAC1B,aAAC,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,EAC1B;YACA;;AAEF,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI;AAC1B,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;YAChC,SAAS;YACT,WAAW;YACX,OAAO;AACR,SAAA,CAAC;QACF,IAAI,CAAC,SAAS,EAAE;AACd,YAAAA,QAAM,CAAC,yCAAyC,EAAE,SAAS,EAAE,WAAW,CAAC;AACzE,YAAA,WAAW,CAAC,OAAO,GAAG,KAAK;YAC3B;;AAEF,QAAA,OAAO,CAAC,MAAM,SAAS,CAAC;QACxB,UAAU,CAAC,SAAS,CAAC;AACrB,QAAA,WAAW,CAAC,OAAO,GAAG,KAAK;AAC7B,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpB,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IAEtC,SAAS,CAAC,MAAK;AACb,QAAA,WAAW,CAAC,OAAO,GAAG,UAAU;AAClC,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAEhB,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,KAAK,OAAO,EAAE;YAC9B,WAAW,CAAC,OAAO,EAAE;;AAEzB,KAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAE5B,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;YAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAI;AAC9C,gBAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;gBACpE,IAAI,CAAC,OAAO,EAAE;AACZ,oBAAAA,QAAM,CACJ,4CAA4C,EAC5C,SAAS,EACT,WAAW,CACZ;oBACD;;gBAEF,UAAU,CAAC,OAAO,CAAC;AACnB,gBAAA,OAAO,CAAC,MAAM,OAAO,CAAC;AACxB,aAAC,CAAC;YACF,mBAAmB,CAAC,YAAY,CAAC;;AAGnC,QAAA,OAAO,MAAK;YACV,gBAAgB,EAAE,WAAW,EAAE;AACjC,SAAC;AACH,KAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAE5B,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,MAAM,GAAG,OAAO,IAAI,WAAW;QAErC,YAAY,CAAC,WAAW,CAAC,CAAQ,KAAA,EAAA,SAAS,IAAI,MAAM,CAAA,OAAA,CAAS,EAAE,MAAK;YAClE,WAAW,CAAC,OAAO,EAAE;AACvB,SAAC,CAAC;AAEF,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,cAAc,CAAC,CAAA,KAAA,EAAQ,SAAS,CAAI,CAAA,EAAA,MAAM,CAAS,OAAA,CAAA,CAAC;AACnE,SAAC;KACF,EAAE,EAAE,CAAC;IAEN,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,UAAU;KACX;AACH;AAUO,MAAM,QAAQ,GAAa,CAAC,EAAE,SAAS,EAAE,OAAO,GAAC,KAAK,EAAE,KAAI;IACjE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAkB,EAAE,CAAC;IAEvD,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,sBAAsB,EAAE;AAE3D,IAAA,MAAM,YAAY,GAAG,MAAM,CAAqB,SAAS,CAAC;AAE1D,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAEjC,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,YAAW;QACxC,IAAI,WAAW,CAAC,OAAO,IAAI,cAAc,KAAK,OAAO,EAAE;YACrD;;AAEF,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI;AAC1B,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC;AAC9D,QAAA,QAAQ,CAAC,MAAM,EAAE,CAAC;AAClB,QAAA,QAAQ,CAAC,MAAM,QAAQ,CAAC;AACxB,QAAA,WAAW,CAAC,OAAO,GAAG,KAAK;AAC7B,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpB,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IAEtC,SAAS,CAAC,MAAK;AACb,QAAA,WAAW,CAAC,OAAO,GAAG,UAAU;AAClC,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAEhB,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,KAAK,OAAO,EAAE;YAC9B,WAAW,CAAC,OAAO,EAAE;;AAEzB,KAAC,EAAE,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAE5B,SAAS,CAAC,MAAK;QACb,YAAY,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,KAAK,KAAI;AACpD,YAAA,IACE,CAAC,KAAK;gBACN,CAAC,KAAK,CAAC,SAAS;AAChB,gBAAA,KAAK,CAAC,SAAS,KAAK,YAAY,CAAC,OAAO,EACxC;gBACA;;YAEF,WAAW,CAAC,OAAO,EAAE;AACvB,SAAC,CAAC;AAEF,QAAA,UAAU,EAAE;AAEZ,QAAA,OAAO,MAAK;AACV,YAAA,YAAY,CAAC,cAAc,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAC5D,SAAC;KACF,EAAE,EAAE,CAAC;IAEN,OAAO;AACL,QAAA,KAAK,EAAE,OAAO,CACZ,KAAK,EACL;AACE,YAAA,CAAC,IAAI,KACH,IAAI,CAAC,sBAAsB;AAC3B,gBAAA,IAAI,CAAC,oBAAoB;AACzB,gBAAA,IAAI,CAAC,SAAS;SACjB,EACD,CAAC,MAAM,CAAC,CACT;QACD,WAAW,EAAE,WAAW,CAAC,OAAO;KACjC;AACH;AAEO,MAAM,cAAc,GAAG,MAAK;IACjC,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEnE,IAAA,MAAM,yBAAyB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAI;QAClD,qBAAqB,CAAC,IAAI,CAAC;KAC5B,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,QAAQ,GAAG,4BAA4B,EAAE;QAE/C,IAAI,QAAQ,EAAE;YACZ,yBAAyB,CAAC,IAAI,CAAC;;AAGjC,QAAA,YAAY,CAAC,WAAW,CACtB,wCAAwC,EACxC,yBAAyB,CAC1B;AAED,QAAA,OAAO,MAAK;AACV,YAAA,YAAY,CAAC,cAAc,CAAC,wCAAwC,CAAC;AACvE,SAAC;KACF,EAAE,EAAE,CAAC;IAEN,OAAO;AACL,QAAA,OAAO,EAAE,kBAAkB;KAC5B;AACH,CAAC;AACY,MAAA,aAAa,GAAG,CAAI,SAAiB,KAAI;IACpD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAE3D,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE;IAEpC,MAAM,UAAU,GAAG,WAAW,CAC5B,OAAO,QAAQ,KAAI;QACjB,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CACX,gEAAgE,EAChE,QAAQ,CACT;YACD;;QAEF,IAAI,cAAc,EAAE;;AAElB,YAAA,OAAO,CAAC,KAAK,CACX,oDAAoD,EACpD,QAAQ,CACT;YACD;;QAGF,iBAAiB,CAAC,IAAI,CAAC;AAEvB,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;AAEvE,QAAgB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;QAE1D,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC;QAEnD,iBAAiB,CAAC,KAAK,CAAC;AAC1B,KAAC,EACD,CAAC,cAAc,EAAE,OAAO,CAAC,CAC1B;IAED,OAAO;QACL,UAAU;QACV,cAAc;KACf;AACH;AAkBO,MAAM,cAAc,GAAG,MAA2B;IACvD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEvD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;IAE9B,MAAM,WAAW,GAAgB,WAAW,CAAC,OAAO,IAAI,EAAE,QAAS,KAAI;AACrE,QAAA,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE;YAC7B;;AAEF,QAAA,QAAQ,CAAC,OAAO,GAAG,IAAI;QACvB,eAAe,CAAC,IAAI,CAAC;AACrB,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YACrD,IAAI,QAAQ,EAAE;AACZ,gBAAA,QAAQ,EAAE;;;QAEZ,OAAO,CAAC,EAAE;YACV,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,CAAU,CAAC;;;QAGxB,eAAe,CAAC,KAAK,CAAC;AACtB,QAAA,QAAQ,CAAC,OAAO,GAAG,KAAK;KACzB,EAAE,EAAE,CAAC;IAEN,OAAO;QACL,WAAW;QACX,YAAY;KACb;AACH;;ACpXA,MAAM,YAAa,SAAQ,gBAA8B,CAAA;AAGvD,IAAA,WAAA,CAAY,aAAmD,EAAA;QAC7D,KAAK,CAAC,aAAa,CAAC;;AAGvB;AAED,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,CAAC;;;;;;;ACJ/C,MAAMA,QAAM,GAAG,KAAK,CAAC,wBAAwB,CAAC;AAiBjC,MAAA,eAAe,GAAoB,CAAC,KAAK,GAAG;AACvD,IAAA,YAAY,EAAE,EAAE;AAChB,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,OAAO,EAAE,EAAE;AACZ,CAAA,KAAI;IAEH,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK;IAEpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAkC;IAC1E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEzD,IAAA,MAAM,EAAE,cAAc,EAAE,GAAG,sBAAsB,EAAE;AAEnD,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAEjC,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,QAAQ,KAAI;QAC7D,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YAClC;;QAEF,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,OAAO,CAAC,aAAa;AACvE,KAAC,CAAC;AAEF,IAAA,MAAM,MAAM,GAAG,WAAW,CACxB,QAAQ,EAAE,UAAU,EAAE,EACtB,CAAC,QAAQ,KAAK,QAAQ,EAAE,KAAe,CACxC;AAED,IAAA,MAAM,UAAU,GAAG,WAAW,CAAC,YAAW;QACxC,IACE,cAAc,KAAK,OAAO;AAC1B,YAAA,WAAW,CAAC,OAAO;AACnB,aAAC,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,EAC1B;YACA;;AAEF,QAAA,WAAW,CAAC,OAAO,GAAG,IAAI;AAC1B,QAAA,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;YAC5C,YAAY;YACZ,WAAW;YACX,OAAO;AACR,SAAA,CAAC;QACF,IAAI,CAAC,aAAa,EAAE;AAClB,YAAAA,QAAM,CACJ,CAAiE,8DAAA,EAAA,WAAW,IAAI,YAAY,CAAA,CAAE,CAC/F;AACD,YAAA,WAAW,CAAC,OAAO,GAAG,KAAK;YAC3B;;AAEF,QAAA,IAAI,aAAa,CAAC,MAAM,KAAK,cAAc,EAAE;AAC3C,YAAA,aAAa,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;;QAE/D,WAAW,CAAC,aAAa,CAAC;QAC1B,gBAAgB,CAAC,IAAI,CAAC;AACtB,QAAA,WAAW,CAAC,OAAO,GAAG,KAAK;AAC7B,KAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAE3B,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;IAEtC,SAAS,CAAC,MAAK;AACb,QAAA,WAAW,CAAC,OAAO,GAAG,UAAU;AAClC,KAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAEvB,SAAS,CAAC,MAAK;AACb,QAAA,IAAI,cAAc,KAAK,OAAO,EAAE;AAC9B,YAAA,UAAU,EAAE;;AAEhB,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAEpB,SAAS,CAAC,MAAK;AACb,QAAA,YAAY,CAAC,WAAW,CACtB,CAAA,SAAA,EAAY,OAAO,IAAI,WAAW,CAAA,CAAA,EAAI,YAAY,CAAA,OAAA,CAAS,EAC3D,MAAK;YACH,WAAW,CAAC,OAAO,EAAE;AACvB,SAAC,CACF;AAED,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,cAAc,CACzB,CAAY,SAAA,EAAA,OAAO,IAAI,WAAW,CAAI,CAAA,EAAA,YAAY,CAAS,OAAA,CAAA,CAC5D;AACH,SAAC;KACF,EAAE,EAAE,CAAC;IAEN,OAAO;QACL,QAAQ;QACR,aAAa;QACb,KAAK;QACL,MAAM;KACP;AACH;AACa,MAAA,iBAAiB,GAAG,CAAC,IAAgB,KAAI;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IAClD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAErD,IAAA,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,KAAK,KAAI;QACR,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC;YACnE;;AAEF,QAAA,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,KAAK;QAC7C,IAAI,CAAC,YAAY,EAAE;YACjB;;AAEF,QAAA,cAAc,CAAC,CAAC,KAAK,KAAI;AACvB,YAAA,KAAK,CAAC,YAAY,CAAC,GAAG,aAAa;AACrC,SAAC,CAAC;AACJ,KAAC,EACD,CAAC,IAAI,CAAC,CACP;IAED,SAAS,CAAC,MAAK;QACb,IAAI,CAAC,IAAI,EAAE;YACT;;AAGF,QAAA,MAAM,QAAQ,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,WAAW,kBAAkB;AAE3D,QAAA,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAErD,QAAA,OAAO,MAAK;AACV,YAAA,YAAY,CAAC,cAAc,CAAC,QAAQ,EAAE,iBAAiB,CAAC;AAC1D,SAAC;AACH,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEV,OAAO;AACL,QAAA,UAAU,EAAE,WAAW;KACxB;AACH;;ACtJe,KAAK,CAAC,kBAAkB;;ACIhC,MAAM,UAAU,GAAe,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,KAAI;AACvE,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;AAE/B,IAAA,MAAM;SACH,MAAM,CAAC,KAAK;AACZ,SAAA,GAAG,CAAC;AACH,QAAA,kBAAkB,EAAE,CAAC;KACtB;SACA,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC;;ACbM,MAAM,aAAa,GAAG,MAAK;IAChC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IAE3D,MAAM,OAAO,GAAG,WAAW,CACzB,OAAO,IAAe,KAAI;QACxB,IAAI,CAAC,IAAI,EAAE;YACT;;QAEF,iBAAiB,CAAC,IAAI,CAAC;AACvB,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO;QAC7D,MAAM,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnD,YAAY,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,CAAC;QACnD,iBAAiB,CAAC,KAAK,CAAC;AAC1B,KAAC,EACD,CAAC,cAAc,CAAC,CACjB;IAED,SAAS,CAAC,MAAK,GAAI,EAAE,EAAE,CAAC;IAExB,OAAO;AACL,QAAA,UAAU,EAAE,OAAO;QACnB,cAAc;KACf;AACH;;AC5Ba,MAAA,QAAQ,GAAG,CAAC,MAAW,EAAE,OAAY,EAAE,QAAiB,KAAI;;;;;;;IAQvE,MAAM,CAAC,OAAO,CAAC,IAAI;;;;IAIjB,IAAI,OAAO,CAAC,6BAA6B,CAAC,OAAO,EAAE,CAAC,QAAQ,KAAI;AAC9D,QAAA,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;KAC1D,CAAC,CACH;;;;;;;;IAYD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa;QAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,aAAa;QAC/C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,iBAAiB;QACrD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,iBAAiB;;;;;;;;;;;;;;;;;;;;;IAuBlD,IAAI,QAAQ,EAAE;AACZ,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,yBAAyB,CAAC;AAChD,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;;;;;;;;;;;;;AAelC,IAAA,OAAO,MAAM;AACf;;ACrEO,MAAM,aAAa,GAAG,YAAW;IACtC,IAAI,SAAS,EAAE,EAAE;QACH,CAAC,MAAM,OAAO,yBAAiC,CAAC,EAAE,SAAS;;AAGzE,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;QACJ,CAAC,MAAM,OAAO,yBAA8B,CAAC,EAAE,SAAS;;AAExE,CAAC;;ACRM,MAAM,eAAe,GAAG,YAAW;IACxC,IAAI,SAAS,EAAE,EAAE;QACD,CAAC,MAAM,OAAO,2BAAmC,CAAC,EAAE,WAAW;;AAG/E,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;QACF,CAAC,MAAM,OAAO,2BAAgC,CAAC,EAAE,WAAW;;AAE9E,CAAC;;ACRM,MAAM,gBAAgB,GAAG,YAAW;IAEzC,IAAI,SAAS,EAAE,EAAE;QACA,CAAC,MAAM,8DAA8C,EAAE,YAAY;;AAGpF,IAAA,IAAI,CAAC,SAAS,EAAE,EAAE;QACD,CAAC,MAAM,OAAO,4BAAmC,CAAC,EAAE,YAAY;;AAEnF,CAAC;;ACXD,MAAMA,QAAM,GAAG,KAAK,CAAC,yBAAyB,CAAC;AAE/C,MAAM,sBAAsB,GAAG,CAAC,KAAU,KAAI;AAC5C,IAAA,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK;AAClC,IAAAA,QAAM,CAAC,CAAA,iDAAA,EAAoD,SAAS,CAAA,CAAE,CAAC;AACvE,IAAA,YAAY,CAAC,OAAO,CAAC,CAAA,iBAAA,EAAoB,SAAS,CAAE,CAAA,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAEM,MAAM,0BAA0B,GAAG,MAAK;AAC7C,IAAA,YAAY,CAAC,WAAW,CAAC,2BAA2B,EAAE,sBAAsB,CAAC;AAC/E,CAAC;;ACLM,MAAM,kBAAkB,GAAG,OAAO,KAAuB,KAAI;AAClE,IAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE;IAExC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;QAC1D;;AAGF,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK;AAE3B,IAAA,MAAM,aAAa,GAAW,CAAG,EAAA,SAAS,SAAS;IAEnD,MAAM,OAAO,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;IAElE,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,OAAO,CAAC,GAAG,CAAC,2CAA2C,aAAa,CAAA,CAAE,CAAC;QACvE;;AAGF,IAAA,MAAMoB,cAAY,CAChB,CAAA,UAAA,EAAa,SAAS,CAAA,CAAE,EACxB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAC/C;AACH,CAAC;;ACzBM,MAAM,oBAAoB,GAAG,MAAK;AACvC,IAAA,YAAY,CAAC,WAAW,CAAC,cAAc,EAAE,kBAAkB,CAAC;AAE9D,CAAC;;ACRD;AAmBA,MAAMpB,QAAM,GAAG,KAAK,CAAC,kCAAkC,CAAC;AAEjD,MAAM,UAAU,GAAG,YAAY,CAGpC,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,KAAK,EAAC,EAAC,KAAI;IACxCA,QAAM,CAAC,+BAA+B,CAAC;AACvC,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO;AACjC,IAAA,MAAM,EAAE,OAAO,GAAG,GAAG,KAAK;IAE1B,IAAI,aAAa,EAAE;AACjB,QAAA,QAAQ,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC;QAC/B;;AAGF,IAAA,MAAM,WAAW,GAAG,YAAW;AAC7B,QAAA,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO;QAErC,MAAM,QAAQ,EAAE;QAChB,MAAM,gBAAgB,EAAE;QACxB,MAAM,aAAa,EAAE;QACrB,MAAM,iBAAiB,EAAE;QACzB,MAAM,eAAe,EAAE;;QAGvB,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,GAAG,MAAM;AAEpD,QAAA,MAAM,EAAC,KAAK,EAAC,GAAG,SAAS;QAEzB,IAAI,aAAa,EAAE;YACjB,gBAAgB,CAAC,aAAa,CAAC;;AAGjC,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACjD,YAAA,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;;AAEtB,QAAA,gBAAgB,EAAE;AAClB,QAAA,0BAA0B,EAAE;AAC5B,QAAA,0BAA0B,EAAE;AAC5B,QAAA,oBAAoB,EAAE;QACtB,IAAI,mBAAmB,EAAE,EAAE;AACzB,YAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;;AAE9B,QAAA,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC1B,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC;;AAGrD,QAAA,MAAM,aAAa,GAAG,gBAAgB,EAAE;QAExC,aAAa,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,EAAE,MAAM;YACZ,SAAS;YACT,MAAM;YACN,SAAS;YACT,aAAa;AACb,YAAA,QAAQ,EAAE,KAAK;AAChB,SAAA,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,OAAO,kCAAiC,CAAC;AAClF,QAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;AACzD,YAAA,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC;;AAGtB,QAAA,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,KAAI;AACxC,YAAAA,QAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,KAAK,CAAC;AACxC,YAAA,OAAO,QAAQ,CAAC,KAAK,KAAK,WAAW,CAAC,WAAW;AACnD,SAAC,CAAC;QACFA,QAAM,CAAC,2BAA2B,CAAC;AACrC,KAAC;AAED,IAAA,WAAW,EAAE,CAAC,IAAI,CAAC,MAAK;AACtB,QAAA,QAAQ,CAAC,EAAC,IAAI,EAAE,aAAa,EAAC,CAAC;AACjC,KAAC,CAAC;AACJ,CAAC,CAAC;;ACrFa,KAAK,CAAC,0BAA0B;AAExC,MAAM,YAAY,GAAG,YAAY,CAItC,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,EAAC,GAAG,EAAE,KAAK,EAAC,EAAC,KAAI;AAElC,IAAA,MAAM,aAAa,GAAG,YAAW;QAC/B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,wDAAwB;QACjD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC;;AAErC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE;QAC/B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC;;QAGrC,OAAO,CAAC,GAAG,CAAC,CAAA,KAAA,EAAQ,GAAG,CAAW,QAAA,EAAA,KAAK,CAAE,CAAA,CAAC;AAE1C,QAAA,KAAK,CAAC,MAAM,CAAC,QAAQ;AAClB,aAAA,MAAM,CAAC;AACN,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC7B;AACA,aAAA,kBAAkB,CAAC;YAClB,MAAM,EAAE,QAAQ,CAAC,GAAG;AACpB,YAAA,GAAG,EAAE;AACH,gBAAA,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AAC7B,aAAA;AACF,SAAA,CAAC;AAEN,KAAC;AAED,IAAA,aAAa,EAAE,CAAC,IAAI,CAAC,MAAK;AACxB,QAAA,QAAQ,CAAC;AACP,YAAA,IAAI,EAAE,qBAAqB;YAC3B,GAAG;YACH,KAAK;AACN,SAAA,CAAC;AACJ,KAAC,CAAC;AAEJ,CAAC,CAAC;;AC9CG,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,KAAI;AACpD,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK;IAC3B,KAAK,CAAC,YAAY,EAAE;AAClB,QAAA,KAAK,EAAE;AACL,YAAA,GAAG,EAAE,WAAW;AAChB,YAAA,KAAK,EAAE,SAAS;AACjB,SAAA;AACF,KAAA,CAAC;IACF,OAAO;QACL,SAAS;AACT,QAAA,QAAQ,EAAE,IAAI;KACf;AACH,CAAC,CAAC;;ACVK,MAAM,oBAAoB,GAAG,KAAK,CAAC;AACxC,IAAA,KAAK,EAAE;AACL,QAAA,OAAO,EAAE,EAA0B;AACnC,QAAA,KAAK,EAAE,EAAsC;AAC9C,KAAA;AACD,IAAA,OAAO,EAAE;QACP,YAAY;AACb,KAAA;AACD,IAAA,MAAM,EAAE;QACN,UAAU;AACX,KAAA;CACF,CAAC,CAAC,aAAa,CAAC;AACf,IAAA,EAAE,EAAE,eAAe;AACnB,IAAA,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAA6B;AACrD,IAAA,MAAM,EAAE;AACN,QAAA,aAAa,EAAE;AACb,YAAA,EAAE,EAAE;AACF,gBAAA,IAAI,EAAE;AACJ,oBAAA,MAAM,EAAE,cAAc;AACvB,iBAAA;AACF,aAAA;AACF,SAAA;AACD,QAAA,YAAY,EAAE;AACZ,YAAA,EAAE,EAAE;AACF,gBAAA,WAAW,EAAE;AACX,oBAAA,MAAM,EAAE,MAAM;AACf,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,YAAY;AACjB,gBAAA,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpD,aAAA;AACF,SAAA;AACD,QAAA,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;AACZ,gBAAA,aAAa,EAAE,IAAI;aACpB,CAAC;AACF,YAAA,EAAE,EAAE;AACF,gBAAA,mBAAmB,EAAE;oBACnB,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAI;AAC5B,wBAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK;wBAC5B,OAAO;AACL,4BAAA,QAAQ,EAAE;yBACX;AACH,qBAAC,CAAC;AACH,iBAAA;AACD,gBAAA,YAAY,EAAE;oBACZ,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA;AACF,CAAA,CAAC;;ACvDF;AACA;AACA;AACA;AACA;AAEA,MAAM,MAAM,GAAiB,KAAK,CAAC,gBAAgB,CAAC;AAE7C,MAAM,aAAa,GAAG,WAAW,CAAC,oBAAoB,EAAE;AAC7D,IAAA,KAAK,EAAE;AACL,QAAA,aAAa,EAAE,KAAK;AACrB;AACF,CAAA,CAAC;AAE2B,aAAa,CAAC,SAAS,CAAC,CAAE,QAAQ,KAAK;AAClE,IAAA,MAAM,CAAC,+BAA+B,EAAE,QAAQ,CAAC,KAAK,CAAC;IACvD,MAAM,CAAC,+CAA+C,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;AACzF,CAAC;AAED,aAAa,CAAC,KAAK,EAAE;AAErB;AACA;AACA;AACA;AACA;AAEa,MAAA,aAAa,GAAG;IAC3B,aAAa,EAAE,MAAK;QAClB,OAAO,aAAa,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa;KACzD;IACD,UAAU,EAAE,MAAK;;;KAGhB;;AAED,IAAA,IAAI,EAAE,OAAO,OAAY,KAAI;QAC3B,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7C,QAAA,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,QAAQ,KAAK,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC;KAC3E;AACD,IAAA,YAAY,EAAE,OAAO,SAAmB,KAAI;;;;;;KAM3C;IACD,YAAY,EAAE,YAAW;;;;;KAKxB;IACD,IAAI,EAAE,MAAK;;;KAGV;IACD,MAAM,EAAE,MAAK;;;;KAIZ;;;ACxBH,YAAY,EAAE;;;;"}
|