@sidekick-coder/zenith-kit 0.4.3 → 0.4.5
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/bin/release.js +76 -0
- package/bin/zenith.js +9 -8
- package/dist/client/index.es.js +3274 -10177
- package/dist/client/src/client/components/ui/button/index.d.ts +2 -2
- package/dist/client/src/client/components/ui/sidebar/index.d.ts +1 -1
- package/dist/client/src/client/components/ui/toggle/index.d.ts +1 -1
- package/dist/client/src/client/components.d.ts +1 -0
- package/dist/client/src/client/composables/useForm.d.ts +1 -1
- package/dist/client/src/client/composables/useRoute.d.ts +3 -0
- package/dist/client/src/client/facades/emmitter.d.ts +1 -1
- package/dist/client/src/client/index.d.ts +1 -0
- package/dist/client/src/shared/schemas/dashboardMetaSchema.d.ts +6 -6
- package/dist/client/src/shared/validators/array.d.ts +5 -0
- package/dist/client/src/shared/validators/index.d.ts +1 -0
- package/dist/client/src/shared/validators/urlValidator.d.ts +0 -1
- package/dist/components/index.es.js +8507 -8638
- package/dist/components/src/client/components/DashboardGridUnitInput.vue.d.ts +1 -1
- package/dist/components/src/client/components/FileUploader.vue.d.ts +1 -1
- package/dist/components/src/client/components/FormFilePicker.vue.d.ts +1 -1
- package/dist/components/src/client/components/FormFileUploader.vue.d.ts +1 -1
- package/dist/components/src/client/components/FormImageUploader.vue.d.ts +1 -1
- package/dist/components/src/client/components/ui/combobox/ComboboxList.vue.d.ts +1 -1
- package/dist/components/src/client/components/ui/menubar/MenubarContent.vue.d.ts +1 -1
- package/dist/components/src/client/components/ui/popover/PopoverContent.vue.d.ts +1 -1
- package/dist/components/src/client/components.d.ts +1 -0
- package/dist/components/src/client/composables/useForm.d.ts +1 -1
- package/dist/components/src/client/composables/useRoute.d.ts +3 -0
- package/dist/components/src/client/facades/emmitter.d.ts +1 -1
- package/dist/components/src/client/index.d.ts +1 -0
- package/dist/components/src/shared/schemas/dashboardMetaSchema.d.ts +6 -6
- package/dist/components/src/shared/schemas/userSchema.d.ts +16 -16
- package/dist/components/src/shared/validators/array.d.ts +5 -0
- package/dist/components/src/shared/validators/index.d.ts +1 -0
- package/dist/components/src/shared/validators/urlValidator.d.ts +0 -1
- package/dist/server/AclEntity-BltZiTsS.d.mts +25 -0
- package/dist/server/AclEntity-C2YSHzip.mjs +2 -0
- package/dist/server/AuthMiddleware-D2BZKKBJ.d.mts +15 -0
- package/dist/server/AuthSilenceMiddleware-8l5EPeot.d.mts +16 -0
- package/dist/server/AuthorizationMiddleware-BjozUIyB.d.mts +25 -0
- package/dist/server/BaseEntityMixin-8XsQRDgt.mjs +2 -0
- package/dist/server/BaseException-cMfHz0w8.mjs +2 -0
- package/dist/server/BaseRelation-Br4CDT5e.d.mts +7 -0
- package/dist/server/BelongsToFileRelation-B-KDoKlS.d.mts +24 -0
- package/dist/server/BelongsToRelation-BdcBpcDt.d.mts +24 -0
- package/dist/server/BelongsToUserRelation-C1Mj-hdb.mjs +2 -0
- package/dist/server/BelongsToUserRelation-D-nXYwyy.d.mts +9 -0
- package/dist/server/CliService-BN3FMadM.d.mts +51 -0
- package/dist/server/CliTesterService-XVGae3eK.d.mts +11 -0
- package/dist/server/CliWrapperService-yg9gALPj.d.mts +30 -0
- package/dist/server/ConfigFSService-BOgh6pL9.d.mts +28 -0
- package/dist/server/ConfigManagerService-D7WdTGtJ.d.mts +26 -0
- package/dist/server/ConfigRepository-DdBw1w8b.d.mts +27 -0
- package/dist/server/ConfigS3Service-MPEl-P_u.d.mts +27 -0
- package/dist/server/ConfigService-CNvGuEng.mjs +2 -0
- package/dist/server/ConfigService-Di_lVTAw.d.mts +26 -0
- package/dist/server/ContainerService-CL9IKkoa.d.mts +20 -0
- package/dist/server/CookieMapEntity-BfC0NuKI.d.mts +18 -0
- package/dist/server/CookieMapEntity-CJRqkyl9.d.mts +13 -0
- package/dist/server/CookieMapEntity-KhdSUHhb.mjs +2 -0
- package/dist/server/DatabaseContract-iR4kncmi.d.mts +141 -0
- package/dist/server/DatabaseGateway-DHTbjF5C.d.mts +10 -0
- package/dist/server/DatabaseRepository-_gA6RkcH.d.mts +60 -0
- package/dist/server/DatabaseRepositoryInferMixin-BKv4RR8I.d.mts +19 -0
- package/dist/server/DownloadService-B-r-EqkZ.d.mts +17 -0
- package/dist/server/DriveBaseGateway-C5R7er0_.d.mts +32 -0
- package/dist/server/DriveConfigEntity-BTK1AHGA.mjs +2 -0
- package/dist/server/DriveConfigEntity-Dh8yII97.d.mts +92 -0
- package/dist/server/DriveContract-CaFb_Tph.d.mts +31 -0
- package/dist/server/DriveEntryEntity-BiZSWkGi.d.mts +11 -0
- package/dist/server/DriveFSGateway-_7luuCiK.d.mts +28 -0
- package/dist/server/DriveS3Gateway-BM7HhUZf.d.mts +42 -0
- package/dist/server/DriveService-Cb-DdupY.d.mts +70 -0
- package/dist/server/EmmitterService-BwETNyCU.d.mts +8 -0
- package/dist/server/EmmitterService-Dw_dThZJ.mjs +2 -0
- package/dist/server/EmmitterService-s7wZsSVf.d.mts +57 -0
- package/dist/server/EncryptService-B17nfV8V.d.mts +39 -0
- package/dist/server/EnvService-BUFUgqUW.mjs +2 -0
- package/dist/server/EnvService-D7rVDvqk.d.mts +54 -0
- package/dist/server/EventContract-B6JEPwRM.d.mts +18 -0
- package/dist/server/ExceptionService-S7L99ujh.d.mts +21 -0
- package/dist/server/FileEntity-6sT7RdiN.d.mts +194 -0
- package/dist/server/FileEntity-cztreoro.mjs +2 -0
- package/dist/server/FileMetaEntity-uHFGRj8P.mjs +2 -0
- package/dist/server/FileRepository--bOaDHZz.d.mts +48 -0
- package/dist/server/GitBranchRepository-C0VHcpbD.mjs +3 -0
- package/dist/server/GitBranchRepository-k7reiBa4.d.mts +30 -0
- package/dist/server/GitCommitRepository-fjbilGO0.mjs +2 -0
- package/dist/server/GitCommitRepository-j6tmgRS2.d.mts +40 -0
- package/dist/server/GitGateway-CNuhGhkh.d.mts +48 -0
- package/dist/server/HasManyRelation-v0qmO2nd.d.mts +26 -0
- package/dist/server/HasMetasRelation-BUoCpbto.d.mts +22 -0
- package/dist/server/HasherService-DnbIU1ub.d.mts +9 -0
- package/dist/server/HooksMixin-D_OSdJ8D.mjs +2 -0
- package/dist/server/HttpContextContract-BS6VXi67.d.mts +25 -0
- package/dist/server/HttpService-DnnqU2n1.d.mts +44 -0
- package/dist/server/KyselyContract-ACWyd3F_.d.mts +8 -0
- package/dist/server/LifecycleHook-BEVS4FKE.d.mts +22 -0
- package/dist/server/LifecycleHook-DecY1BiW.mjs +2 -0
- package/dist/server/LifecycleService-5eYElrdc.mjs +2 -0
- package/dist/server/LifecycleService-C43A9AOw.d.mts +50 -0
- package/dist/server/LoggerService-8XvsFBNN.mjs +2 -0
- package/dist/server/LoggerService-C5FUibjh.d.mts +12 -0
- package/dist/server/MetadataMixin-AVaqESW2.d.mts +15 -0
- package/dist/server/MetadataQueryService-WXBAN4d8.d.mts +37 -0
- package/dist/server/MetadataService-D5lAlAuy.d.mts +23 -0
- package/dist/server/MigrationEntity-B5VsB63u.d.mts +21 -0
- package/dist/server/MigratorService-DHug6UBq.d.mts +81 -0
- package/dist/server/ModelConfigMixin-7rCJZaAw.d.mts +24 -0
- package/dist/server/ModuleEntity-DZ2R1Bf_.mjs +2 -0
- package/dist/server/ModuleEntity-xa6rCTxe.d.mts +67 -0
- package/dist/server/PageRequestContextEntity-B1nE9xel.d.mts +45 -0
- package/dist/server/PermissionAssignmentRepository-DVS015ou.d.mts +28 -0
- package/dist/server/PermissionEntity-DFd-TfNn.d.mts +23 -0
- package/dist/server/PermissionRepository-9Kf8A5uC.d.mts +29 -0
- package/dist/server/PluginEntity-Bjl3keRp.d.mts +17 -0
- package/dist/server/PluginEntryEntity-BDBElYQ1.d.mts +31 -0
- package/dist/server/PluginEntryEntity-P80sQn2B.mjs +2 -0
- package/dist/server/PluginIpcClient-5kLU9aLc.d.mts +17 -0
- package/dist/server/PluginIpcHost-DTXHSMkU.d.mts +15 -0
- package/dist/server/PluginRouter-DOOBinlR.d.mts +43 -0
- package/dist/server/RelationsMixin-BaXvJfzK.d.mts +13 -0
- package/dist/server/RouteEntity-CLRlwjdn.d.mts +23 -0
- package/dist/server/RouterContract-thDZSYVJ.d.mts +19 -0
- package/dist/server/RouterFileBaseRoutingService-CEBdzCYd.d.mts +26 -0
- package/dist/server/RouterRegisterService-mU1J15Yt.d.mts +20 -0
- package/dist/server/RouterResourceConfigService-BdqbVblk.d.mts +26 -0
- package/dist/server/RouterResourceService-Cj73MVpb.d.mts +34 -0
- package/dist/server/RouterService-BS_1MzFI.mjs +2 -0
- package/dist/server/RouterService-DmiiZzf5.d.mts +69 -0
- package/dist/server/RoutineEntity-DTJtFI1m.d.mts +24 -0
- package/dist/server/SchedulerService-DDuSAEiJ.d.mts +53 -0
- package/dist/server/SeederEntity-DYcCU6bM.d.mts +18 -0
- package/dist/server/SeederService-B9j_aioh.d.mts +55 -0
- package/dist/server/ShellService-BYXgMyxs.mjs +2 -0
- package/dist/server/ShellService-BrVU19X3.d.mts +29 -0
- package/dist/server/SoftDeleteMixin-Be6a-3yd.mjs +2 -0
- package/dist/server/TokenRepository-C1RqlmxD.mjs +2 -0
- package/dist/server/TokenRepository-DplVSSbU.d.mts +37 -0
- package/dist/server/UserEntity-NnuYOCM7.d.mts +55 -0
- package/dist/server/UserRepository-BkGla4Vr.d.mts +37 -0
- package/dist/server/addIdColumn-BiPPrrLR.d.mts +7 -0
- package/dist/server/addSoftDeleteColumn-CZGL0m9X.d.mts +14 -0
- package/dist/server/addTimestampColumns-DW_pSZXf.d.mts +19 -0
- package/dist/server/basePath-BrKDzdou.d.mts +10 -0
- package/dist/server/chunk-CGLV7CjG.mjs +1 -0
- package/dist/server/commands/pluginBuild.d.mts +7 -0
- package/dist/server/commands/pluginBuild.mjs +2 -0
- package/dist/server/commands/pluginGenerateId.d.mts +7 -0
- package/dist/server/commands/pluginGenerateId.mjs +2 -0
- package/dist/server/common-CkVu3aD6.d.mts +22 -0
- package/dist/server/compose-Dq68rcKW.d.mts +5 -0
- package/dist/server/compose-XJLd0ioo.mjs +2 -0
- package/dist/server/config-DDScRnvV.d.mts +7 -0
- package/dist/server/config-OUxEJV91.d.mts +5 -0
- package/dist/server/container-Be1UNVpU.d.mts +7 -0
- package/dist/server/container-BwAJOg9B.mjs +2 -0
- package/dist/server/contracts/DatabaseContract.d.mts +2 -0
- package/dist/server/contracts/DatabaseContract.mjs +1 -0
- package/dist/server/contracts/DriveContract.d.mts +2 -0
- package/dist/server/contracts/DriveContract.mjs +1 -0
- package/dist/server/contracts/EventContract.d.mts +2 -0
- package/dist/server/contracts/EventContract.mjs +1 -0
- package/dist/server/contracts/HttpContextContract.d.mts +2 -0
- package/dist/server/contracts/HttpContextContract.mjs +1 -0
- package/dist/server/contracts/KyselyContract.d.mts +2 -0
- package/dist/server/contracts/KyselyContract.mjs +1 -0
- package/dist/server/contracts/RouterContract.d.mts +2 -0
- package/dist/server/contracts/RouterContract.mjs +1 -0
- package/dist/server/count-Cx1qqWRe.d.mts +12 -0
- package/dist/server/create-BnVaEuUC.d.mts +17 -0
- package/dist/server/createId-c4X4-v2p.mjs +2 -0
- package/dist/server/createLoaderFactory-Bpk6rD3D.d.mts +11 -0
- package/dist/server/cuid-7odspl-1.d.mts +5 -0
- package/dist/server/database-CWkgKEjr.d.mts +8 -0
- package/dist/server/defineHandler-fLDf436i.d.mts +10 -0
- package/dist/server/defineLoader-BOYnKv5_.d.mts +11 -0
- package/dist/server/destroy-Uj3B5q04.d.mts +14 -0
- package/dist/server/download-DzKRkAhD.d.mts +7 -0
- package/dist/server/drive-BZiloXJW.d.mts +7 -0
- package/dist/server/emmitter-9-6gueft.d.mts +7 -0
- package/dist/server/encrypt-BtQggXao.d.mts +7 -0
- package/dist/server/entities/AclEntity.d.mts +2 -0
- package/dist/server/entities/AclEntity.mjs +1 -0
- package/dist/server/entities/CookieMapEntity.d.mts +2 -0
- package/dist/server/entities/CookieMapEntity.mjs +1 -0
- package/dist/server/entities/DriveConfigEntity.d.mts +2 -0
- package/dist/server/entities/DriveConfigEntity.mjs +1 -0
- package/dist/server/entities/FileEntity.d.mts +2 -0
- package/dist/server/entities/FileEntity.mjs +1 -0
- package/dist/server/entities/FileMetaEntity.d.mts +2 -0
- package/dist/server/entities/FileMetaEntity.mjs +1 -0
- package/dist/server/entities/MigrationEntity.d.mts +2 -0
- package/dist/server/entities/MigrationEntity.mjs +2 -0
- package/dist/server/entities/ModuleEntity.d.mts +2 -0
- package/dist/server/entities/ModuleEntity.mjs +1 -0
- package/dist/server/entities/PageRequestContextEntity.d.mts +2 -0
- package/dist/server/entities/PageRequestContextEntity.mjs +2 -0
- package/dist/server/entities/PluginEntity.d.mts +2 -0
- package/dist/server/entities/PluginEntity.mjs +2 -0
- package/dist/server/entities/PluginEntryEntity.d.mts +2 -0
- package/dist/server/entities/PluginEntryEntity.mjs +1 -0
- package/dist/server/entities/RouteEntity.d.mts +2 -0
- package/dist/server/entities/RouteEntity.mjs +2 -0
- package/dist/server/entities/RoutineEntity.d.mts +2 -0
- package/dist/server/entities/RoutineEntity.mjs +2 -0
- package/dist/server/entities/SeederEntity.d.mts +2 -0
- package/dist/server/entities/SeederEntity.mjs +2 -0
- package/dist/server/env-oE1dEbgb.d.mts +7 -0
- package/dist/server/exists-Csru9uQi.d.mts +8 -0
- package/dist/server/facades/config.d.mts +2 -0
- package/dist/server/facades/config.mjs +2 -0
- package/dist/server/facades/container.d.mts +2 -0
- package/dist/server/facades/container.mjs +1 -0
- package/dist/server/facades/database.d.mts +2 -0
- package/dist/server/facades/database.mjs +2 -0
- package/dist/server/facades/download.d.mts +2 -0
- package/dist/server/facades/download.mjs +2 -0
- package/dist/server/facades/drive.d.mts +2 -0
- package/dist/server/facades/drive.mjs +2 -0
- package/dist/server/facades/emmitter.d.mts +2 -0
- package/dist/server/facades/emmitter.mjs +2 -0
- package/dist/server/facades/encrypt.d.mts +2 -0
- package/dist/server/facades/encrypt.mjs +2 -0
- package/dist/server/facades/env.d.mts +2 -0
- package/dist/server/facades/env.mjs +2 -0
- package/dist/server/facades/filesRepository.d.mts +2 -0
- package/dist/server/facades/filesRepository.mjs +2 -0
- package/dist/server/facades/hasher.d.mts +2 -0
- package/dist/server/facades/hasher.mjs +2 -0
- package/dist/server/facades/http.d.mts +2 -0
- package/dist/server/facades/http.mjs +2 -0
- package/dist/server/facades/lifecycle.d.mts +2 -0
- package/dist/server/facades/lifecycle.mjs +2 -0
- package/dist/server/facades/logger.d.mts +2 -0
- package/dist/server/facades/logger.mjs +2 -0
- package/dist/server/facades/migrator.d.mts +2 -0
- package/dist/server/facades/migrator.mjs +2 -0
- package/dist/server/facades/permissionAssignmentRepository.d.mts +2 -0
- package/dist/server/facades/permissionAssignmentRepository.mjs +2 -0
- package/dist/server/facades/permissionRepository.d.mts +2 -0
- package/dist/server/facades/permissionRepository.mjs +2 -0
- package/dist/server/facades/router.d.mts +2 -0
- package/dist/server/facades/router.mjs +2 -0
- package/dist/server/facades/scheduler.d.mts +2 -0
- package/dist/server/facades/scheduler.mjs +2 -0
- package/dist/server/facades/shell.d.mts +2 -0
- package/dist/server/facades/shell.mjs +2 -0
- package/dist/server/facades/tokenRepository.d.mts +2 -0
- package/dist/server/facades/tokenRepository.mjs +2 -0
- package/dist/server/facades/userRepository.d.mts +2 -0
- package/dist/server/facades/userRepository.mjs +2 -0
- package/dist/server/fileLoader-D1BgCxaZ.d.mts +11 -0
- package/dist/server/fileUrlLoader-DpVRfcGU.d.mts +12 -0
- package/dist/server/filesRepository-D9fxvd-E.d.mts +7 -0
- package/dist/server/findOne-Boxfam4u.d.mts +15 -0
- package/dist/server/firstOrCreate-DZr8L5yb.d.mts +15 -0
- package/dist/server/flatten-DHGvYNde.mjs +2 -0
- package/dist/server/gateways/DatabaseGateway.d.mts +2 -0
- package/dist/server/gateways/DatabaseGateway.mjs +2 -0
- package/dist/server/gateways/DriveBaseGateway.d.mts +2 -0
- package/dist/server/gateways/DriveBaseGateway.mjs +2 -0
- package/dist/server/gateways/DriveFSGateway.d.mts +2 -0
- package/dist/server/gateways/DriveFSGateway.mjs +2 -0
- package/dist/server/gateways/DriveS3Gateway.d.mts +2 -0
- package/dist/server/gateways/DriveS3Gateway.mjs +2 -0
- package/dist/server/gateways/GitGateway.d.mts +2 -0
- package/dist/server/gateways/GitGateway.mjs +3 -0
- package/dist/server/generateIndexFile-zJLs7hsX.d.mts +5 -0
- package/dist/server/hasManyThroughLoader-BlAt7DQD.d.mts +22 -0
- package/dist/server/hasManyThroughRelation-CydrMBzu.d.mts +33 -0
- package/dist/server/hasher-i-RJja9d.d.mts +7 -0
- package/dist/server/http-F5dtmcy0.d.mts +7 -0
- package/dist/server/importAll-CDPG0oSA.d.mts +22 -0
- package/dist/server/importOne-C4TjAH5G.d.mts +5 -0
- package/dist/server/index-BcsXXrHq.d.mts +1 -0
- package/dist/server/index.d.mts +127 -2890
- package/dist/server/index.mjs +1 -4
- package/dist/server/lifecycle-CBXw5SHi.d.mts +7 -0
- package/dist/server/list-DLrcQUmc.d.mts +16 -0
- package/dist/server/loadMetas-kut6dSZS.d.mts +18 -0
- package/dist/server/loaders/fileLoader.d.mts +2 -0
- package/dist/server/loaders/fileLoader.mjs +2 -0
- package/dist/server/loaders/fileUrlLoader.d.mts +2 -0
- package/dist/server/loaders/fileUrlLoader.mjs +2 -0
- package/dist/server/loaders/hasManyThroughLoader.d.mts +2 -0
- package/dist/server/loaders/hasManyThroughLoader.mjs +2 -0
- package/dist/server/loaders/loadMetas.d.mts +2 -0
- package/dist/server/loaders/loadMetas.mjs +2 -0
- package/dist/server/loaders/permissionLoader.d.mts +2 -0
- package/dist/server/loaders/permissionLoader.mjs +2 -0
- package/dist/server/loaders/userLoader.d.mts +2 -0
- package/dist/server/loaders/userLoader.mjs +2 -0
- package/dist/server/logger-B-eGxHk1.d.mts +7 -0
- package/dist/server/middlewares/AuthMiddleware.d.mts +2 -0
- package/dist/server/middlewares/AuthMiddleware.mjs +2 -0
- package/dist/server/middlewares/AuthSilenceMiddleware.d.mts +2 -0
- package/dist/server/middlewares/AuthSilenceMiddleware.mjs +2 -0
- package/dist/server/middlewares/AuthorizationMiddleware.d.mts +2 -0
- package/dist/server/middlewares/AuthorizationMiddleware.mjs +2 -0
- package/dist/server/migrator-D9OUJuE0.d.mts +7 -0
- package/dist/server/mixins/DatabaseRepositoryInferMixin.d.mts +2 -0
- package/dist/server/mixins/DatabaseRepositoryInferMixin.mjs +2 -0
- package/dist/server/mixins/MetadataMixin.d.mts +2 -0
- package/dist/server/mixins/MetadataMixin.mjs +2 -0
- package/dist/server/mixins/ModelConfigMixin.d.mts +2 -0
- package/dist/server/mixins/ModelConfigMixin.mjs +2 -0
- package/dist/server/mixins/ModelMixin.d.mts +60 -0
- package/dist/server/mixins/ModelMixin.mjs +2 -0
- package/dist/server/mixins/RelationsMixin.d.mts +2 -0
- package/dist/server/mixins/RelationsMixin.mjs +2 -0
- package/dist/server/normalizers-ByJRmAYa.mjs +2 -0
- package/dist/server/paginate-Dq4YCfoP.d.mts +33 -0
- package/dist/server/paginate-xPInooKh.mjs +2 -0
- package/dist/server/permissionAssignmentRepository-kW-shaeD.d.mts +7 -0
- package/dist/server/permissionLoader-DzP0E01F.d.mts +13 -0
- package/dist/server/permissionRepository-pSU0Pbu0.d.mts +7 -0
- package/dist/server/printTable-7dreX6wW.d.mts +15 -0
- package/dist/server/queries/common.d.mts +2 -0
- package/dist/server/queries/common.mjs +2 -0
- package/dist/server/queries/count.d.mts +2 -0
- package/dist/server/queries/count.mjs +2 -0
- package/dist/server/queries/create.d.mts +2 -0
- package/dist/server/queries/create.mjs +2 -0
- package/dist/server/queries/destroy.d.mts +2 -0
- package/dist/server/queries/destroy.mjs +2 -0
- package/dist/server/queries/exists.d.mts +2 -0
- package/dist/server/queries/exists.mjs +2 -0
- package/dist/server/queries/findOne.d.mts +2 -0
- package/dist/server/queries/findOne.mjs +2 -0
- package/dist/server/queries/firstOrCreate.d.mts +2 -0
- package/dist/server/queries/firstOrCreate.mjs +2 -0
- package/dist/server/queries/index.d.mts +14 -0
- package/dist/server/queries/index.mjs +1 -0
- package/dist/server/queries/list.d.mts +2 -0
- package/dist/server/queries/list.mjs +2 -0
- package/dist/server/queries/paginate.d.mts +2 -0
- package/dist/server/queries/paginate.mjs +1 -0
- package/dist/server/queries/softDelete.d.mts +2 -0
- package/dist/server/queries/softDelete.mjs +2 -0
- package/dist/server/queries/timestamp.d.mts +2 -0
- package/dist/server/queries/timestamp.mjs +2 -0
- package/dist/server/queries/update.d.mts +2 -0
- package/dist/server/queries/update.mjs +2 -0
- package/dist/server/queries/updateOrCreate.d.mts +2 -0
- package/dist/server/queries/updateOrCreate.mjs +2 -0
- package/dist/server/relations/BaseRelation.d.mts +2 -0
- package/dist/server/relations/BaseRelation.mjs +2 -0
- package/dist/server/relations/BelongsToFileRelation.d.mts +2 -0
- package/dist/server/relations/BelongsToFileRelation.mjs +2 -0
- package/dist/server/relations/BelongsToRelation.d.mts +2 -0
- package/dist/server/relations/BelongsToRelation.mjs +2 -0
- package/dist/server/relations/BelongsToUserRelation.d.mts +2 -0
- package/dist/server/relations/BelongsToUserRelation.mjs +1 -0
- package/dist/server/relations/HasManyRelation.d.mts +2 -0
- package/dist/server/relations/HasManyRelation.mjs +2 -0
- package/dist/server/relations/HasMetasRelation.d.mts +2 -0
- package/dist/server/relations/HasMetasRelation.mjs +2 -0
- package/dist/server/relations/hasManyThroughRelation.d.mts +2 -0
- package/dist/server/relations/hasManyThroughRelation.mjs +2 -0
- package/dist/server/repositories/ConfigRepository.d.mts +2 -0
- package/dist/server/repositories/ConfigRepository.mjs +2 -0
- package/dist/server/repositories/DatabaseRepository.d.mts +2 -0
- package/dist/server/repositories/DatabaseRepository.mjs +2 -0
- package/dist/server/repositories/FileRepository.d.mts +2 -0
- package/dist/server/repositories/FileRepository.mjs +2 -0
- package/dist/server/repositories/GitBranchRepository.d.mts +2 -0
- package/dist/server/repositories/GitBranchRepository.mjs +1 -0
- package/dist/server/repositories/GitCommitRepository.d.mts +2 -0
- package/dist/server/repositories/GitCommitRepository.mjs +1 -0
- package/dist/server/repositories/PermissionAssignmentRepository.d.mts +2 -0
- package/dist/server/repositories/PermissionAssignmentRepository.mjs +2 -0
- package/dist/server/repositories/PermissionRepository.d.mts +2 -0
- package/dist/server/repositories/PermissionRepository.mjs +2 -0
- package/dist/server/repositories/PermissionRepository.test-d.d.mts +1 -0
- package/dist/server/repositories/PermissionRepository.test-d.mjs +2 -0
- package/dist/server/repositories/TokenRepository.d.mts +2 -0
- package/dist/server/repositories/TokenRepository.mjs +1 -0
- package/dist/server/repositories/UserRepository.d.mts +2 -0
- package/dist/server/repositories/UserRepository.mjs +2 -0
- package/dist/server/router-D7lk_eki.d.mts +8 -0
- package/dist/server/scheduler-BZJ0JscK.d.mts +7 -0
- package/dist/server/services/CliService.d.mts +2 -0
- package/dist/server/services/CliService.mjs +2 -0
- package/dist/server/services/CliTesterService.d.mts +2 -0
- package/dist/server/services/CliTesterService.mjs +2 -0
- package/dist/server/services/CliWrapperService.d.mts +2 -0
- package/dist/server/services/CliWrapperService.mjs +2 -0
- package/dist/server/services/ConfigFSService.d.mts +2 -0
- package/dist/server/services/ConfigFSService.mjs +2 -0
- package/dist/server/services/ConfigManagerService.d.mts +2 -0
- package/dist/server/services/ConfigManagerService.mjs +2 -0
- package/dist/server/services/ConfigS3Service.d.mts +2 -0
- package/dist/server/services/ConfigS3Service.mjs +2 -0
- package/dist/server/services/DownloadService.d.mts +2 -0
- package/dist/server/services/DownloadService.mjs +2 -0
- package/dist/server/services/DriveService.d.mts +2 -0
- package/dist/server/services/DriveService.mjs +2 -0
- package/dist/server/services/EmmitterService.d.mts +2 -0
- package/dist/server/services/EmmitterService.mjs +2 -0
- package/dist/server/services/EncryptService.d.mts +2 -0
- package/dist/server/services/EncryptService.mjs +2 -0
- package/dist/server/services/EnvService.d.mts +2 -0
- package/dist/server/services/EnvService.mjs +1 -0
- package/dist/server/services/ExceptionService.d.mts +2 -0
- package/dist/server/services/ExceptionService.mjs +2 -0
- package/dist/server/services/HasherService.d.mts +2 -0
- package/dist/server/services/HasherService.mjs +2 -0
- package/dist/server/services/HttpService.d.mts +2 -0
- package/dist/server/services/HttpService.mjs +2 -0
- package/dist/server/services/LifecycleService.d.mts +2 -0
- package/dist/server/services/LifecycleService.mjs +1 -0
- package/dist/server/services/MetadataQueryService.d.mts +2 -0
- package/dist/server/services/MetadataQueryService.mjs +2 -0
- package/dist/server/services/MetadataService.d.mts +2 -0
- package/dist/server/services/MetadataService.mjs +2 -0
- package/dist/server/services/MigratorService.d.mts +2 -0
- package/dist/server/services/MigratorService.mjs +2 -0
- package/dist/server/services/PluginIpcClient.d.mts +2 -0
- package/dist/server/services/PluginIpcClient.mjs +2 -0
- package/dist/server/services/PluginIpcHost.d.mts +2 -0
- package/dist/server/services/PluginIpcHost.mjs +2 -0
- package/dist/server/services/PluginRouter.d.mts +2 -0
- package/dist/server/services/PluginRouter.mjs +2 -0
- package/dist/server/services/RouterFileBaseRoutingService.d.mts +2 -0
- package/dist/server/services/RouterFileBaseRoutingService.mjs +2 -0
- package/dist/server/services/RouterRegisterService.d.mts +2 -0
- package/dist/server/services/RouterRegisterService.mjs +2 -0
- package/dist/server/services/RouterResourceConfigService.d.mts +2 -0
- package/dist/server/services/RouterResourceConfigService.mjs +2 -0
- package/dist/server/services/RouterResourceService.d.mts +2 -0
- package/dist/server/services/RouterResourceService.mjs +2 -0
- package/dist/server/services/RouterService.d.mts +2 -0
- package/dist/server/services/RouterService.mjs +1 -0
- package/dist/server/services/SchedulerService.d.mts +2 -0
- package/dist/server/services/SchedulerService.mjs +2 -0
- package/dist/server/services/SeederService.d.mts +2 -0
- package/dist/server/services/SeederService.mjs +2 -0
- package/dist/server/services/ShellService.d.mts +2 -0
- package/dist/server/services/ShellService.mjs +1 -0
- package/dist/server/shell-D3lbVvdM.d.mts +7 -0
- package/dist/server/softDelete-zHpOCvxX.d.mts +28 -0
- package/dist/server/timestamp-OxM0lLhB.d.mts +9 -0
- package/dist/server/tokenRepository-BsrgOgMO.d.mts +7 -0
- package/dist/server/tokenSchema-B_NfLejF.d.mts +17 -0
- package/dist/server/tryCatch-Dz4OvJig.mjs +2 -0
- package/dist/server/update-9SpXDvjp.d.mts +19 -0
- package/dist/server/updateOrCreate-ytNvnRnp.d.mts +16 -0
- package/dist/server/userLoader-C7A1u-FB.d.mts +12 -0
- package/dist/server/userRepository-DgENwIFS.d.mts +7 -0
- package/dist/server/utils/addIdColumn.d.mts +1 -0
- package/dist/server/utils/addIdColumn.mjs +2 -0
- package/dist/server/utils/addSoftDeleteColumn.d.mts +2 -0
- package/dist/server/utils/addSoftDeleteColumn.mjs +2 -0
- package/dist/server/utils/addTimestampColumns.d.mts +2 -0
- package/dist/server/utils/addTimestampColumns.mjs +2 -0
- package/dist/server/utils/basePath.d.mts +2 -0
- package/dist/server/utils/basePath.mjs +2 -0
- package/dist/server/utils/config.d.mts +2 -0
- package/dist/server/utils/config.mjs +2 -0
- package/dist/server/utils/createLoaderFactory.d.mts +2 -0
- package/dist/server/utils/createLoaderFactory.mjs +2 -0
- package/dist/server/utils/cuid.d.mts +2 -0
- package/dist/server/utils/cuid.mjs +2 -0
- package/dist/server/utils/defineHandler.d.mts +2 -0
- package/dist/server/utils/defineHandler.mjs +2 -0
- package/dist/server/utils/defineLoader.d.mts +2 -0
- package/dist/server/utils/defineLoader.mjs +2 -0
- package/dist/server/utils/generateIndexFile.d.mts +2 -0
- package/dist/server/utils/generateIndexFile.mjs +2 -0
- package/dist/server/utils/importAll.d.mts +2 -0
- package/dist/server/utils/importAll.mjs +2 -0
- package/dist/server/utils/importOne.d.mts +2 -0
- package/dist/server/utils/importOne.mjs +2 -0
- package/dist/server/utils/printTable.d.mts +2 -0
- package/dist/server/utils/printTable.mjs +2 -0
- package/dist/server/validator-Bf0nhLLd.mjs +2 -0
- package/dist/shared/ValidatorService-DMd2DBVp.d.mts +103 -0
- package/dist/shared/ValidatorService-TM23rW-H.mjs +2 -0
- package/dist/shared/compose-e5D0sqye.d.mts +44 -0
- package/dist/shared/entities/AclEntity.d.mts +20 -0
- package/dist/shared/entities/AclEntity.mjs +2 -0
- package/dist/shared/entities/CookieMapEntity.d.mts +18 -0
- package/dist/shared/entities/CookieMapEntity.mjs +2 -0
- package/dist/shared/entities/DriveConfigEntity.d.mts +129 -0
- package/dist/shared/entities/DriveConfigEntity.mjs +2 -0
- package/dist/shared/entities/DriveEntryEntity.d.mts +11 -0
- package/dist/shared/entities/DriveEntryEntity.mjs +2 -0
- package/dist/shared/entities/FileEntity.d.mts +33 -0
- package/dist/shared/entities/FileEntity.mjs +2 -0
- package/dist/shared/entities/FileMetaEntity.d.mts +27 -0
- package/dist/shared/entities/FileMetaEntity.mjs +2 -0
- package/dist/shared/entities/FileUploadSessionEntity.d.mts +32 -0
- package/dist/shared/entities/FileUploadSessionEntity.mjs +2 -0
- package/dist/shared/entities/GitBranchEntity.d.mts +11 -0
- package/dist/shared/entities/GitBranchEntity.mjs +2 -0
- package/dist/shared/entities/GitCommitEntity.d.mts +14 -0
- package/dist/shared/entities/GitCommitEntity.mjs +2 -0
- package/dist/shared/entities/HeaderMapEntity.d.mts +18 -0
- package/dist/shared/entities/HeaderMapEntity.mjs +2 -0
- package/dist/shared/entities/LifecycleHook.d.mts +22 -0
- package/dist/shared/entities/LifecycleHook.mjs +2 -0
- package/dist/shared/entities/ModuleEntity.d.mts +28 -0
- package/dist/shared/entities/ModuleEntity.mjs +2 -0
- package/dist/shared/entities/ModuleManifestEntity.d.mts +31 -0
- package/dist/shared/entities/ModuleManifestEntity.mjs +2 -0
- package/dist/shared/entities/PaginationEntity.d.mts +13 -0
- package/dist/shared/entities/PaginationEntity.mjs +2 -0
- package/dist/shared/entities/PermissionEntity.d.mts +23 -0
- package/dist/shared/entities/PermissionEntity.mjs +2 -0
- package/dist/shared/entities/PluginEntity.d.mts +21 -0
- package/dist/shared/entities/PluginEntity.mjs +2 -0
- package/dist/shared/entities/RoleEntity.d.mts +26 -0
- package/dist/shared/entities/RoleEntity.mjs +2 -0
- package/dist/shared/entities/UserEntity.d.mts +34 -0
- package/dist/shared/entities/UserEntity.mjs +2 -0
- package/dist/shared/exceptions/BaseException.d.mts +9 -0
- package/dist/shared/exceptions/BaseException.mjs +2 -0
- package/dist/shared/exceptions/ShellException.d.mts +12 -0
- package/dist/shared/exceptions/ShellException.mjs +2 -0
- package/dist/shared/facades/validator.d.mts +7 -0
- package/dist/shared/facades/validator.mjs +2 -0
- package/dist/shared/index.d.mts +49 -1327
- package/dist/shared/index.mjs +1 -2
- package/dist/shared/mixins/BaseEntityMixin.d.mts +21 -0
- package/dist/shared/mixins/BaseEntityMixin.mjs +2 -0
- package/dist/shared/mixins/HooksMixin.d.mts +31 -0
- package/dist/shared/mixins/HooksMixin.mjs +2 -0
- package/dist/shared/mixins/SoftDeleteMixin.d.mts +11 -0
- package/dist/shared/mixins/SoftDeleteMixin.mjs +2 -0
- package/dist/shared/mixins/TimestampMixin.d.mts +12 -0
- package/dist/shared/mixins/TimestampMixin.mjs +2 -0
- package/dist/shared/schemas/dashboardMetaSchema.d.mts +129 -0
- package/dist/shared/schemas/dashboardMetaSchema.mjs +2 -0
- package/dist/shared/schemas/dashboardSchema.d.mts +128 -0
- package/dist/shared/schemas/dashboardSchema.mjs +2 -0
- package/dist/shared/schemas/permissionAssignmentSchema.d.mts +15 -0
- package/dist/shared/schemas/permissionAssignmentSchema.mjs +2 -0
- package/dist/shared/schemas/permissionSchema.d.mts +18 -0
- package/dist/shared/schemas/permissionSchema.mjs +2 -0
- package/dist/shared/schemas/tokenSchema.d.mts +17 -0
- package/dist/shared/schemas/tokenSchema.mjs +2 -0
- package/dist/shared/schemas/userSchema.d.mts +168 -0
- package/dist/shared/schemas/userSchema.mjs +2 -0
- package/dist/shared/services/ConfigService.d.mts +26 -0
- package/dist/shared/services/ConfigService.mjs +2 -0
- package/dist/shared/services/ContainerService.d.mts +20 -0
- package/dist/shared/services/ContainerService.mjs +2 -0
- package/dist/shared/services/EmmitterService.d.mts +57 -0
- package/dist/shared/services/EmmitterService.mjs +2 -0
- package/dist/shared/services/LifecycleService.d.mts +45 -0
- package/dist/shared/services/LifecycleService.mjs +2 -0
- package/dist/shared/services/LoggerService.d.mts +12 -0
- package/dist/shared/services/LoggerService.mjs +2 -0
- package/dist/shared/services/TranslatorService.d.mts +26 -0
- package/dist/shared/services/TranslatorService.mjs +2 -0
- package/dist/shared/services/UploadService.d.mts +9 -0
- package/dist/shared/services/UploadService.mjs +2 -0
- package/dist/shared/services/ValidatorService.d.mts +2 -0
- package/dist/shared/services/ValidatorService.mjs +1 -0
- package/dist/shared/typing-CBF7x7JF.d.mts +7 -0
- package/dist/shared/utils/compose.d.mts +2 -0
- package/dist/shared/utils/compose.mjs +2 -0
- package/dist/shared/utils/createId.d.mts +5 -0
- package/dist/shared/utils/createId.mjs +2 -0
- package/dist/shared/utils/flatten.d.mts +6 -0
- package/dist/shared/utils/flatten.mjs +2 -0
- package/dist/shared/utils/formatBytes.d.mts +5 -0
- package/dist/shared/utils/formatBytes.mjs +2 -0
- package/dist/shared/utils/index.d.mts +7 -0
- package/dist/shared/utils/index.mjs +1 -0
- package/dist/shared/utils/matchPaths.d.mts +5 -0
- package/dist/shared/utils/matchPaths.mjs +2 -0
- package/dist/shared/utils/parseRouteUrl.d.mts +6 -0
- package/dist/shared/utils/parseRouteUrl.mjs +2 -0
- package/dist/shared/utils/safeJson.d.mts +6 -0
- package/dist/shared/utils/safeJson.mjs +2 -0
- package/dist/shared/utils/tryCatch.d.mts +16 -0
- package/dist/shared/utils/tryCatch.mjs +2 -0
- package/dist/shared/utils/typing.d.mts +2 -0
- package/dist/shared/utils/typing.mjs +1 -0
- package/package.json +14 -16
- package/src/build/createTsdownConfig.ts +22 -0
- package/src/build/createViteConfig.ts +51 -0
- package/src/client/components.ts +1 -0
- package/src/client/composables/useFetchPagination.ts +6 -1
- package/src/client/composables/useForm.ts +1 -1
- package/src/client/composables/useRoute.ts +10 -0
- package/src/client/composables/useRouteQuery.ts +5 -4
- package/src/client/facades/emmitter.ts +1 -1
- package/src/client/index.ts +1 -0
- package/src/client/services/LayoutService.ts +1 -1
- package/src/client/zenith-env.d.ts +2 -1
- package/src/server/__tests__/helpers/createUser.ts +1 -1
- package/src/server/__tests__/setup.ts +1 -1
- package/src/server/commands/pluginBuild.ts +60 -0
- package/src/server/commands/pluginGenerateId.ts +18 -0
- package/src/server/contracts/HttpContextContract.ts +1 -1
- package/src/server/entities/MigrationEntity.ts +1 -1
- package/src/server/entities/PluginEntity.ts +0 -35
- package/src/server/entities/PluginEntryEntity.ts +0 -28
- package/src/server/entities/RoutineEntity.ts +1 -1
- package/src/server/entities/SeederEntity.ts +1 -1
- package/src/server/facades/emmitter.ts +2 -2
- package/src/server/facades/lifecycle.ts +6 -0
- package/src/server/gateways/DriveS3Gateway.ts +102 -32
- package/src/server/gateways/GitGateway.ts +2 -2
- package/src/server/globals.ts +2 -1
- package/src/server/index.ts +3 -2
- package/src/server/loaders/hasManyThroughLoader.ts +15 -6
- package/src/server/loaders/loadMetas.ts +1 -1
- package/src/server/middlewares/AuthMiddleware.ts +4 -3
- package/src/server/repositories/ConfigRepository.ts +1 -1
- package/src/server/repositories/UserRepository.ts +1 -1
- package/src/server/schemas/envSchema.ts +3 -2
- package/src/server/services/CliService.ts +12 -2
- package/src/server/services/CliWrapperService.ts +50 -4
- package/src/server/services/ConfigManagerService.ts +13 -5
- package/src/server/services/EncryptService.ts +1 -1
- package/src/server/services/EnvService.ts +2 -1
- package/src/server/services/ExceptionService.ts +2 -1
- package/src/server/services/HasherService.ts +6 -2
- package/src/server/services/HttpService.ts +24 -12
- package/src/server/services/MigratorService.ts +1 -1
- package/src/server/services/RouterService.ts +1 -1
- package/src/server/services/SchedulerService.ts +5 -2
- package/src/server/services/SeederService.ts +1 -1
- package/src/server/utils/basePath.ts +16 -1
- package/src/server/utils/config.ts +19 -0
- package/src/server/utils/createLoaderFactory.ts +1 -1
- package/src/server/utils/importAll.ts +1 -1
- package/src/server/utils/printTable.ts +7 -1
- package/src/shared/services/ConfigService.ts +5 -2
- package/src/shared/services/EmmitterService.ts +3 -2
- package/src/shared/utils/flatten.ts +1 -1
- package/src/shared/validators/array.ts +13 -0
- package/src/shared/validators/index.ts +1 -0
- package/src/shared/validators/paginationValidator.ts +5 -5
- package/src/shared/validators/urlValidator.ts +1 -1
- package/src/tests/services/HttpTesterService.ts +63 -0
- package/tsdown.config.ts +152 -121
- package/vite/createViteConfig.js +1 -1
- package/bin/zkit.js +0 -26
- package/cli/commands/build.js +0 -55
- package/cli/commands/generateLegacyFolder.js +0 -38
- package/cli/commands/generatePluginId.js +0 -17
- package/cli/config.js +0 -23
- package/cli/utils/createWrapper.js +0 -17
- package/commands/release.js +0 -78
- package/legacy/client/components/Alert.vue +0 -3
- package/legacy/client/components/AlertButton.vue +0 -3
- package/legacy/client/components/Button.vue +0 -3
- package/legacy/client/components/ClientOnly.vue +0 -3
- package/legacy/client/components/ColorPicker.vue +0 -3
- package/legacy/client/components/ColorWheel.vue +0 -3
- package/legacy/client/components/Component.vue +0 -3
- package/legacy/client/components/DataTable.vue +0 -4
- package/legacy/client/components/DataTablePagination.vue +0 -3
- package/legacy/client/components/DatePicker.vue +0 -3
- package/legacy/client/components/DialogForm.vue +0 -4
- package/legacy/client/components/FileUploader.vue +0 -3
- package/legacy/client/components/FormAutoFieldList.vue +0 -5
- package/legacy/client/components/FormAutocomplete.vue +0 -3
- package/legacy/client/components/FormColorPicker.vue +0 -3
- package/legacy/client/components/FormDatePicker.vue +0 -3
- package/legacy/client/components/FormFilePicker.vue +0 -3
- package/legacy/client/components/FormFileUploader.vue +0 -3
- package/legacy/client/components/FormImageUploader.vue +0 -3
- package/legacy/client/components/FormJsonInput.vue +0 -3
- package/legacy/client/components/FormSelect.vue +0 -3
- package/legacy/client/components/FormStringListInput.vue +0 -3
- package/legacy/client/components/FormSwitch.vue +0 -3
- package/legacy/client/components/FormTextField.vue +0 -3
- package/legacy/client/components/FormTextarea.vue +0 -3
- package/legacy/client/components/Icon.vue +0 -3
- package/legacy/client/components/Image.vue +0 -3
- package/legacy/client/components/JsonInput.vue +0 -3
- package/legacy/client/components/Logo.vue +0 -3
- package/legacy/client/components/LogoIcon.vue +0 -3
- package/legacy/client/components/ObjectInspect.vue +0 -3
- package/legacy/client/components/PageCrud.vue +0 -3
- package/legacy/client/components/PageSubtitle.vue +0 -3
- package/legacy/client/components/PageTable.vue +0 -3
- package/legacy/client/components/PageTitle.vue +0 -3
- package/legacy/client/components/Pagination.vue +0 -3
- package/legacy/client/components/Select.vue +0 -3
- package/legacy/client/components/StringListInput.vue +0 -3
- package/legacy/client/components/Switch.vue +0 -3
- package/legacy/client/components/TextField.vue +0 -3
- package/legacy/client/components/Textarea.vue +0 -3
- package/legacy/client/components/UserMenu.vue +0 -3
- package/legacy/client/components/index.ts +0 -349
- package/legacy/client/components/ui/accordion/Accordion.vue +0 -3
- package/legacy/client/components/ui/accordion/AccordionContent.vue +0 -3
- package/legacy/client/components/ui/accordion/AccordionItem.vue +0 -3
- package/legacy/client/components/ui/accordion/AccordionTrigger.vue +0 -3
- package/legacy/client/components/ui/accordion/index.ts +0 -1
- package/legacy/client/components/ui/alert/Alert.vue +0 -3
- package/legacy/client/components/ui/alert/AlertDescription.vue +0 -3
- package/legacy/client/components/ui/alert/AlertTitle.vue +0 -3
- package/legacy/client/components/ui/alert/index.ts +0 -1
- package/legacy/client/components/ui/alert-dialog/AlertDialog.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogAction.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogCancel.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogContent.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogDescription.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogFooter.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogHeader.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogTitle.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/AlertDialogTrigger.vue +0 -3
- package/legacy/client/components/ui/alert-dialog/index.ts +0 -1
- package/legacy/client/components/ui/aspect-ratio/AspectRatio.vue +0 -3
- package/legacy/client/components/ui/aspect-ratio/index.ts +0 -1
- package/legacy/client/components/ui/avatar/Avatar.vue +0 -3
- package/legacy/client/components/ui/avatar/AvatarFallback.vue +0 -3
- package/legacy/client/components/ui/avatar/AvatarImage.vue +0 -3
- package/legacy/client/components/ui/avatar/index.ts +0 -1
- package/legacy/client/components/ui/badge/Badge.vue +0 -3
- package/legacy/client/components/ui/badge/index.ts +0 -1
- package/legacy/client/components/ui/breadcrumb/Breadcrumb.vue +0 -3
- package/legacy/client/components/ui/breadcrumb/BreadcrumbEllipsis.vue +0 -3
- package/legacy/client/components/ui/breadcrumb/BreadcrumbItem.vue +0 -3
- package/legacy/client/components/ui/breadcrumb/BreadcrumbLink.vue +0 -3
- package/legacy/client/components/ui/breadcrumb/BreadcrumbList.vue +0 -3
- package/legacy/client/components/ui/breadcrumb/BreadcrumbPage.vue +0 -3
- package/legacy/client/components/ui/breadcrumb/BreadcrumbSeparator.vue +0 -3
- package/legacy/client/components/ui/breadcrumb/index.ts +0 -1
- package/legacy/client/components/ui/button/Button.vue +0 -3
- package/legacy/client/components/ui/button/index.ts +0 -1
- package/legacy/client/components/ui/calendar/Calendar.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarCell.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarCellTrigger.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarGrid.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarGridBody.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarGridHead.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarGridRow.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarHeadCell.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarHeader.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarHeading.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarNextButton.vue +0 -3
- package/legacy/client/components/ui/calendar/CalendarPrevButton.vue +0 -3
- package/legacy/client/components/ui/calendar/index.ts +0 -1
- package/legacy/client/components/ui/card/Card.vue +0 -3
- package/legacy/client/components/ui/card/CardAction.vue +0 -3
- package/legacy/client/components/ui/card/CardContent.vue +0 -3
- package/legacy/client/components/ui/card/CardDescription.vue +0 -3
- package/legacy/client/components/ui/card/CardFooter.vue +0 -3
- package/legacy/client/components/ui/card/CardHeader.vue +0 -3
- package/legacy/client/components/ui/card/CardTitle.vue +0 -3
- package/legacy/client/components/ui/card/index.ts +0 -1
- package/legacy/client/components/ui/carousel/Carousel.vue +0 -3
- package/legacy/client/components/ui/carousel/CarouselContent.vue +0 -3
- package/legacy/client/components/ui/carousel/CarouselItem.vue +0 -3
- package/legacy/client/components/ui/carousel/CarouselNext.vue +0 -3
- package/legacy/client/components/ui/carousel/CarouselPrevious.vue +0 -3
- package/legacy/client/components/ui/carousel/index.ts +0 -1
- package/legacy/client/components/ui/checkbox/Checkbox.vue +0 -3
- package/legacy/client/components/ui/checkbox/index.ts +0 -1
- package/legacy/client/components/ui/collapsible/Collapsible.vue +0 -3
- package/legacy/client/components/ui/collapsible/CollapsibleContent.vue +0 -3
- package/legacy/client/components/ui/collapsible/CollapsibleTrigger.vue +0 -3
- package/legacy/client/components/ui/collapsible/index.ts +0 -1
- package/legacy/client/components/ui/combobox/Combobox.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxAnchor.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxEmpty.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxGroup.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxInput.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxItem.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxItemIndicator.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxList.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxSeparator.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxTrigger.vue +0 -3
- package/legacy/client/components/ui/combobox/ComboboxViewport.vue +0 -3
- package/legacy/client/components/ui/combobox/index.ts +0 -1
- package/legacy/client/components/ui/command/Command.vue +0 -3
- package/legacy/client/components/ui/command/CommandDialog.vue +0 -3
- package/legacy/client/components/ui/command/CommandEmpty.vue +0 -3
- package/legacy/client/components/ui/command/CommandGroup.vue +0 -3
- package/legacy/client/components/ui/command/CommandInput.vue +0 -3
- package/legacy/client/components/ui/command/CommandItem.vue +0 -3
- package/legacy/client/components/ui/command/CommandList.vue +0 -3
- package/legacy/client/components/ui/command/CommandSeparator.vue +0 -3
- package/legacy/client/components/ui/command/CommandShortcut.vue +0 -3
- package/legacy/client/components/ui/command/index.ts +0 -1
- package/legacy/client/components/ui/context-menu/ContextMenu.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuCheckboxItem.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuContent.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuGroup.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuItem.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuLabel.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuPortal.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuRadioGroup.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuRadioItem.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuSeparator.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuShortcut.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuSub.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuSubContent.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuSubTrigger.vue +0 -3
- package/legacy/client/components/ui/context-menu/ContextMenuTrigger.vue +0 -3
- package/legacy/client/components/ui/context-menu/index.ts +0 -1
- package/legacy/client/components/ui/dialog/Dialog.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogClose.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogContent.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogDescription.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogFooter.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogHeader.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogOverlay.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogScrollContent.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogTitle.vue +0 -3
- package/legacy/client/components/ui/dialog/DialogTrigger.vue +0 -3
- package/legacy/client/components/ui/dialog/index.ts +0 -1
- package/legacy/client/components/ui/drawer/Drawer.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerClose.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerContent.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerDescription.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerFooter.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerHeader.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerOverlay.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerTitle.vue +0 -3
- package/legacy/client/components/ui/drawer/DrawerTrigger.vue +0 -3
- package/legacy/client/components/ui/drawer/index.ts +0 -1
- package/legacy/client/components/ui/dropdown-menu/DropdownMenu.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -3
- package/legacy/client/components/ui/dropdown-menu/index.ts +0 -1
- package/legacy/client/components/ui/form/FormControl.vue +0 -3
- package/legacy/client/components/ui/form/FormDescription.vue +0 -3
- package/legacy/client/components/ui/form/FormItem.vue +0 -3
- package/legacy/client/components/ui/form/FormLabel.vue +0 -3
- package/legacy/client/components/ui/form/FormMessage.vue +0 -3
- package/legacy/client/components/ui/form/index.ts +0 -1
- package/legacy/client/components/ui/hover-card/HoverCard.vue +0 -3
- package/legacy/client/components/ui/hover-card/HoverCardContent.vue +0 -3
- package/legacy/client/components/ui/hover-card/HoverCardTrigger.vue +0 -3
- package/legacy/client/components/ui/hover-card/index.ts +0 -1
- package/legacy/client/components/ui/input/Input.vue +0 -3
- package/legacy/client/components/ui/input/index.ts +0 -1
- package/legacy/client/components/ui/label/Label.vue +0 -3
- package/legacy/client/components/ui/label/index.ts +0 -1
- package/legacy/client/components/ui/menubar/Menubar.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarCheckboxItem.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarContent.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarGroup.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarItem.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarLabel.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarMenu.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarRadioGroup.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarRadioItem.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarSeparator.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarShortcut.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarSub.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarSubContent.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarSubTrigger.vue +0 -3
- package/legacy/client/components/ui/menubar/MenubarTrigger.vue +0 -3
- package/legacy/client/components/ui/menubar/index.ts +0 -1
- package/legacy/client/components/ui/navigation-menu/NavigationMenu.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/NavigationMenuContent.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/NavigationMenuIndicator.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/NavigationMenuItem.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/NavigationMenuLink.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/NavigationMenuList.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/NavigationMenuTrigger.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/NavigationMenuViewport.vue +0 -3
- package/legacy/client/components/ui/navigation-menu/index.ts +0 -1
- package/legacy/client/components/ui/number-field/NumberField.vue +0 -3
- package/legacy/client/components/ui/number-field/NumberFieldContent.vue +0 -3
- package/legacy/client/components/ui/number-field/NumberFieldDecrement.vue +0 -3
- package/legacy/client/components/ui/number-field/NumberFieldIncrement.vue +0 -3
- package/legacy/client/components/ui/number-field/NumberFieldInput.vue +0 -3
- package/legacy/client/components/ui/number-field/index.ts +0 -1
- package/legacy/client/components/ui/pagination/Pagination.vue +0 -3
- package/legacy/client/components/ui/pagination/PaginationContent.vue +0 -3
- package/legacy/client/components/ui/pagination/PaginationEllipsis.vue +0 -3
- package/legacy/client/components/ui/pagination/PaginationFirst.vue +0 -3
- package/legacy/client/components/ui/pagination/PaginationItem.vue +0 -3
- package/legacy/client/components/ui/pagination/PaginationLast.vue +0 -3
- package/legacy/client/components/ui/pagination/PaginationNext.vue +0 -3
- package/legacy/client/components/ui/pagination/PaginationPrevious.vue +0 -3
- package/legacy/client/components/ui/pagination/index.ts +0 -1
- package/legacy/client/components/ui/pin-input/PinInput.vue +0 -3
- package/legacy/client/components/ui/pin-input/PinInputGroup.vue +0 -3
- package/legacy/client/components/ui/pin-input/PinInputSeparator.vue +0 -3
- package/legacy/client/components/ui/pin-input/PinInputSlot.vue +0 -3
- package/legacy/client/components/ui/pin-input/index.ts +0 -1
- package/legacy/client/components/ui/popover/Popover.vue +0 -3
- package/legacy/client/components/ui/popover/PopoverAnchor.vue +0 -3
- package/legacy/client/components/ui/popover/PopoverContent.vue +0 -3
- package/legacy/client/components/ui/popover/PopoverTrigger.vue +0 -3
- package/legacy/client/components/ui/popover/index.ts +0 -1
- package/legacy/client/components/ui/progress/Progress.vue +0 -3
- package/legacy/client/components/ui/progress/index.ts +0 -1
- package/legacy/client/components/ui/radio-group/RadioGroup.vue +0 -3
- package/legacy/client/components/ui/radio-group/RadioGroupItem.vue +0 -3
- package/legacy/client/components/ui/radio-group/index.ts +0 -1
- package/legacy/client/components/ui/range-calendar/RangeCalendar.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarCell.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarCellTrigger.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarGrid.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarGridBody.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarGridHead.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarGridRow.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarHeadCell.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarHeader.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarHeading.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarNextButton.vue +0 -3
- package/legacy/client/components/ui/range-calendar/RangeCalendarPrevButton.vue +0 -3
- package/legacy/client/components/ui/range-calendar/index.ts +0 -1
- package/legacy/client/components/ui/resizable/ResizableHandle.vue +0 -3
- package/legacy/client/components/ui/resizable/ResizablePanel.vue +0 -3
- package/legacy/client/components/ui/resizable/ResizablePanelGroup.vue +0 -3
- package/legacy/client/components/ui/resizable/index.ts +0 -1
- package/legacy/client/components/ui/scroll-area/ScrollArea.vue +0 -3
- package/legacy/client/components/ui/scroll-area/ScrollBar.vue +0 -3
- package/legacy/client/components/ui/scroll-area/index.ts +0 -1
- package/legacy/client/components/ui/select/Select.vue +0 -3
- package/legacy/client/components/ui/select/SelectContent.vue +0 -3
- package/legacy/client/components/ui/select/SelectGroup.vue +0 -3
- package/legacy/client/components/ui/select/SelectItem.vue +0 -3
- package/legacy/client/components/ui/select/SelectItemText.vue +0 -3
- package/legacy/client/components/ui/select/SelectLabel.vue +0 -3
- package/legacy/client/components/ui/select/SelectScrollDownButton.vue +0 -3
- package/legacy/client/components/ui/select/SelectScrollUpButton.vue +0 -3
- package/legacy/client/components/ui/select/SelectSeparator.vue +0 -3
- package/legacy/client/components/ui/select/SelectTrigger.vue +0 -3
- package/legacy/client/components/ui/select/SelectValue.vue +0 -3
- package/legacy/client/components/ui/select/index.ts +0 -1
- package/legacy/client/components/ui/separator/Separator.vue +0 -3
- package/legacy/client/components/ui/separator/index.ts +0 -1
- package/legacy/client/components/ui/sheet/Sheet.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetClose.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetContent.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetDescription.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetFooter.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetHeader.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetOverlay.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetTitle.vue +0 -3
- package/legacy/client/components/ui/sheet/SheetTrigger.vue +0 -3
- package/legacy/client/components/ui/sheet/index.ts +0 -1
- package/legacy/client/components/ui/sidebar/Sidebar.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarContent.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarFooter.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarGroup.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarGroupAction.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarGroupContent.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarGroupLabel.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarHeader.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarInput.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarInset.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenu.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuAction.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuBadge.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuButton.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuButtonChild.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuItem.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuSkeleton.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuSub.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuSubButton.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarMenuSubItem.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarProvider.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarRail.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarSeparator.vue +0 -3
- package/legacy/client/components/ui/sidebar/SidebarTrigger.vue +0 -3
- package/legacy/client/components/ui/sidebar/index.ts +0 -1
- package/legacy/client/components/ui/skeleton/Skeleton.vue +0 -3
- package/legacy/client/components/ui/skeleton/index.ts +0 -1
- package/legacy/client/components/ui/slider/Slider.vue +0 -3
- package/legacy/client/components/ui/slider/index.ts +0 -1
- package/legacy/client/components/ui/sonner/Sonner.vue +0 -3
- package/legacy/client/components/ui/sonner/index.ts +0 -1
- package/legacy/client/components/ui/stepper/Stepper.vue +0 -3
- package/legacy/client/components/ui/stepper/StepperDescription.vue +0 -3
- package/legacy/client/components/ui/stepper/StepperIndicator.vue +0 -3
- package/legacy/client/components/ui/stepper/StepperItem.vue +0 -3
- package/legacy/client/components/ui/stepper/StepperSeparator.vue +0 -3
- package/legacy/client/components/ui/stepper/StepperTitle.vue +0 -3
- package/legacy/client/components/ui/stepper/StepperTrigger.vue +0 -3
- package/legacy/client/components/ui/stepper/index.ts +0 -1
- package/legacy/client/components/ui/switch/Switch.vue +0 -3
- package/legacy/client/components/ui/switch/index.ts +0 -1
- package/legacy/client/components/ui/table/Table.vue +0 -3
- package/legacy/client/components/ui/table/TableBody.vue +0 -3
- package/legacy/client/components/ui/table/TableCaption.vue +0 -3
- package/legacy/client/components/ui/table/TableCell.vue +0 -3
- package/legacy/client/components/ui/table/TableEmpty.vue +0 -3
- package/legacy/client/components/ui/table/TableFooter.vue +0 -3
- package/legacy/client/components/ui/table/TableHead.vue +0 -3
- package/legacy/client/components/ui/table/TableHeader.vue +0 -3
- package/legacy/client/components/ui/table/TableRow.vue +0 -3
- package/legacy/client/components/ui/table/index.ts +0 -1
- package/legacy/client/components/ui/tabs/Tabs.vue +0 -3
- package/legacy/client/components/ui/tabs/TabsContent.vue +0 -3
- package/legacy/client/components/ui/tabs/TabsList.vue +0 -3
- package/legacy/client/components/ui/tabs/TabsTrigger.vue +0 -3
- package/legacy/client/components/ui/tabs/index.ts +0 -1
- package/legacy/client/components/ui/tags-input/TagsInput.vue +0 -3
- package/legacy/client/components/ui/tags-input/TagsInputInput.vue +0 -3
- package/legacy/client/components/ui/tags-input/TagsInputItem.vue +0 -3
- package/legacy/client/components/ui/tags-input/TagsInputItemDelete.vue +0 -3
- package/legacy/client/components/ui/tags-input/TagsInputItemText.vue +0 -3
- package/legacy/client/components/ui/tags-input/index.ts +0 -1
- package/legacy/client/components/ui/textarea/Textarea.vue +0 -3
- package/legacy/client/components/ui/textarea/index.ts +0 -1
- package/legacy/client/components/ui/toggle/Toggle.vue +0 -3
- package/legacy/client/components/ui/toggle/index.ts +0 -1
- package/legacy/client/components/ui/toggle-group/ToggleGroup.vue +0 -3
- package/legacy/client/components/ui/toggle-group/ToggleGroupItem.vue +0 -3
- package/legacy/client/components/ui/toggle-group/index.ts +0 -1
- package/legacy/client/components/ui/tooltip/Tooltip.vue +0 -3
- package/legacy/client/components/ui/tooltip/TooltipContent.vue +0 -3
- package/legacy/client/components/ui/tooltip/TooltipProvider.vue +0 -3
- package/legacy/client/components/ui/tooltip/TooltipTrigger.vue +0 -3
- package/legacy/client/components/ui/tooltip/index.ts +0 -1
- package/legacy/client/facades/acl.facade.ts +0 -1
- package/legacy/client/facades/app.facade.ts +0 -6
- package/legacy/client/facades/auth.facade.ts +0 -1
- package/legacy/client/facades/config.facade.ts +0 -1
- package/legacy/client/facades/fetch.facade.ts +0 -1
- package/legacy/client/facades/logger.facade.ts +0 -1
- package/legacy/client/facades/menu.facade.ts +0 -1
- package/legacy/client/facades/router.facade.ts +0 -1
- package/legacy/client/facades/translator.facade.ts +0 -10
- package/legacy/client/layouts/AdminLayout.vue +0 -3
- package/legacy/client/utils/autoPages.ts +0 -1
- package/legacy/client/utils/createId.ts +0 -1
- package/legacy/client/utils/di.ts +0 -1
- package/legacy/client/utils/fetcher.ts +0 -1
- package/legacy/client/utils/file.ts +0 -1
- package/legacy/client/utils/index.ts +0 -7
- package/legacy/client/utils/logger.ts +0 -1
- package/legacy/client/utils/toast.ts +0 -1
- package/legacy/server/entities/file.entity.ts +0 -4
- package/legacy/server/exceptions/base.ts +0 -4
- package/legacy/server/facades/arte.facade.ts +0 -6
- package/legacy/server/facades/config.facade.ts +0 -4
- package/legacy/server/facades/db.facade.ts +0 -4
- package/legacy/server/facades/download.facade.ts +0 -4
- package/legacy/server/facades/drive.facade.ts +0 -4
- package/legacy/server/facades/emmitter.facade.ts +0 -4
- package/legacy/server/facades/logger.facade.ts +0 -4
- package/legacy/server/facades/router.facade.ts +0 -4
- package/legacy/server/facades/scheduler.facade.ts +0 -4
- package/legacy/server/middlewares/auth.middleware.ts +0 -6
- package/legacy/server/middlewares/authorization.middleware.ts +0 -8
- package/legacy/server/mixins/hooks.mixin.ts +0 -6
- package/legacy/server/mixins/model.mixin.ts +0 -6
- package/legacy/server/mixins/modelConfig.mixin.ts +0 -4
- package/legacy/server/queries/index.ts +0 -6
- package/legacy/server/services/metadataQuery.service.ts +0 -6
- package/legacy/server/services/routerResourceConfig.service.ts +0 -5
- package/legacy/shared/services/validator.service.ts +0 -4
- package/legacy/shared/utils/compose.ts +0 -8
- package/legacy/shared/utils/tryCatch.ts +0 -7
- package/src/server/services/HttpTesterService.ts +0 -62
package/dist/shared/index.d.mts
CHANGED
|
@@ -1,1327 +1,49 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
info(message: string, meta?: any): void;
|
|
51
|
-
debug(message: string, meta?: any): void;
|
|
52
|
-
warn(message: string, meta?: any): void;
|
|
53
|
-
error(message: string | Error, meta?: any): void;
|
|
54
|
-
child(options: any): LoggerService;
|
|
55
|
-
}
|
|
56
|
-
//#endregion
|
|
57
|
-
//#region src/shared/services/EmmitterService.d.ts
|
|
58
|
-
interface EmmitterListenerOptions {
|
|
59
|
-
event: string;
|
|
60
|
-
}
|
|
61
|
-
interface EmmitterListener {
|
|
62
|
-
(data: any, options: EmmitterListenerOptions): void;
|
|
63
|
-
}
|
|
64
|
-
interface EmmitterHandler {
|
|
65
|
-
id: string;
|
|
66
|
-
event: string;
|
|
67
|
-
listener: EmmitterListener;
|
|
68
|
-
originalListener?: EmmitterListener;
|
|
69
|
-
}
|
|
70
|
-
interface OnOptions {
|
|
71
|
-
id?: string;
|
|
72
|
-
unique?: boolean;
|
|
73
|
-
}
|
|
74
|
-
interface OnDebounceOptions extends OnOptions {
|
|
75
|
-
debounce?: number;
|
|
76
|
-
}
|
|
77
|
-
interface EmmitterServiceOptions {
|
|
78
|
-
debug?: boolean;
|
|
79
|
-
logger?: LoggerService;
|
|
80
|
-
}
|
|
81
|
-
declare class EmmitterService<Events extends Record<string, any> = Record<string, any>> {
|
|
82
|
-
static __container_entry_key: string;
|
|
83
|
-
handlers: EmmitterHandler[];
|
|
84
|
-
debug: boolean;
|
|
85
|
-
logger: LoggerService;
|
|
86
|
-
constructor(options?: EmmitterServiceOptions);
|
|
87
|
-
static create<Events extends Record<string, any> = Record<string, any>>(options?: EmmitterServiceOptions): EmmitterService<Events>;
|
|
88
|
-
setDebug(debug: boolean): void;
|
|
89
|
-
setLogger(logger: LoggerService): void;
|
|
90
|
-
on<K extends keyof Events>(event: K, listener: (args: Events[K]) => void, options?: OnOptions): EmmitterHandler;
|
|
91
|
-
on(event: string, listener: (args: any) => void, options?: OnOptions): EmmitterHandler;
|
|
92
|
-
once<K extends keyof Events>(event: K, listener: (args: Events[K]) => void, options?: OnOptions): EmmitterHandler;
|
|
93
|
-
once(event: string, listener: (args: any) => void, options?: OnOptions): EmmitterHandler;
|
|
94
|
-
onDebounce<K extends keyof Events>(event: K, listener: (args: Events[K]) => void, options?: OnDebounceOptions): EmmitterHandler;
|
|
95
|
-
onDebounce(event: string, listener: (args: any) => void, options?: OnDebounceOptions): EmmitterHandler;
|
|
96
|
-
onAnyOf<K extends keyof Events>(events: K[], listener: (args: Events[K]) => void, options?: OnOptions): EmmitterHandler[];
|
|
97
|
-
onAnyOf(events: string[], listener: (args: any) => void, options?: OnOptions): EmmitterHandler[];
|
|
98
|
-
off(event: string, listener: EmmitterHandler['listener']): void;
|
|
99
|
-
emit<K extends keyof Events>(event: K, args: Events[K]): void;
|
|
100
|
-
emit(event: string, args?: any): void;
|
|
101
|
-
emitAndWait<K extends keyof Events>(event: K, args: Events[K]): Promise<void>;
|
|
102
|
-
emitAndWait(event: string, args?: any): Promise<void>;
|
|
103
|
-
list(): EmmitterHandler[];
|
|
104
|
-
listByEvent(event: string): EmmitterHandler[];
|
|
105
|
-
remove(payload: string | string[]): void;
|
|
106
|
-
clear(): void;
|
|
107
|
-
hasHandlers(): boolean;
|
|
108
|
-
}
|
|
109
|
-
//#endregion
|
|
110
|
-
//#region src/shared/entities/LifecycleHook.d.ts
|
|
111
|
-
declare class LifecycleHook {
|
|
112
|
-
hook_id: string;
|
|
113
|
-
hook_aliases?: string[];
|
|
114
|
-
order?: number;
|
|
115
|
-
subhooks?: LifecycleHook[];
|
|
116
|
-
register(): Promise<void>;
|
|
117
|
-
load(): Promise<void>;
|
|
118
|
-
boot(): Promise<void>;
|
|
119
|
-
shutdown(): Promise<void>;
|
|
120
|
-
/** @deprecated Use register */
|
|
121
|
-
onRegister(): Promise<void>;
|
|
122
|
-
/** @deprecated Use load */
|
|
123
|
-
onLoad(): Promise<void>;
|
|
124
|
-
/** @deprecated Use boot */
|
|
125
|
-
onBoot(): Promise<void>;
|
|
126
|
-
/** @deprecated Use shutdown */
|
|
127
|
-
onShutdown(): Promise<void>;
|
|
128
|
-
}
|
|
129
|
-
//#endregion
|
|
130
|
-
//#region src/shared/utils/typing.d.ts
|
|
131
|
-
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
|
|
132
|
-
type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
133
|
-
type PublicData<T> = { [K in keyof T as T[K] extends Function ? never : K]: T[K] };
|
|
134
|
-
//#endregion
|
|
135
|
-
//#region src/shared/utils/compose.d.ts
|
|
136
|
-
type AnyClass = new (...args: any[]) => any;
|
|
137
|
-
type Constructor<T = {}> = new (...args: any[]) => T;
|
|
138
|
-
type Mixin<T> = (base: Constructor) => Constructor<T>;
|
|
139
|
-
/**
|
|
140
|
-
* Composes multiple mixins into a single class that can be extended.
|
|
141
|
-
* Allows for multiple inheritance-like behavior by applying mixins sequentially.
|
|
142
|
-
*
|
|
143
|
-
* @param mixins - Array of mixin functions to compose
|
|
144
|
-
* @returns A class constructor that includes all mixin functionality
|
|
145
|
-
*
|
|
146
|
-
* @example
|
|
147
|
-
* ```typescript
|
|
148
|
-
* class User extends compose(Timestamp, SoftDelete) {
|
|
149
|
-
* constructor(public name: string) {
|
|
150
|
-
* super()
|
|
151
|
-
* }
|
|
152
|
-
* }
|
|
153
|
-
* ```
|
|
154
|
-
*/
|
|
155
|
-
declare function compose<M extends Array<(base: Constructor<any>) => Constructor<any>>>(...mixins: M): UnionToIntersection<ReturnType<M[number]>>;
|
|
156
|
-
/**
|
|
157
|
-
* Alternative compose function that starts with a base class
|
|
158
|
-
*
|
|
159
|
-
* @param baseClass - The base class to start with
|
|
160
|
-
* @param mixins - Array of mixin functions to apply
|
|
161
|
-
* @returns A class constructor that extends the base class with all mixin functionality
|
|
162
|
-
*
|
|
163
|
-
* @example
|
|
164
|
-
* ```typescript
|
|
165
|
-
* class User extends composeWith(BaseEntity, Timestamp, SoftDelete) {
|
|
166
|
-
* constructor(public name: string) {
|
|
167
|
-
* super()
|
|
168
|
-
* }
|
|
169
|
-
* }
|
|
170
|
-
* ```
|
|
171
|
-
*/
|
|
172
|
-
declare function composeWith<TBase extends Constructor, M extends Array<(base: Constructor) => Constructor<any>>>(baseClass: TBase, ...mixins: M): TBase & UnionToIntersection<ReturnType<M[number]>>;
|
|
173
|
-
declare function mixin<TBase extends Constructor>(Source: TBase): <TTarget extends Constructor>(Target: TTarget) => TTarget & TBase;
|
|
174
|
-
//#endregion
|
|
175
|
-
//#region src/shared/services/LifecycleService.d.ts
|
|
176
|
-
type LifecycleMethod = 'register' | 'load' | 'boot' | 'shutdown';
|
|
177
|
-
interface ListOptions {
|
|
178
|
-
include?: string | string[];
|
|
179
|
-
exclude?: string | string[];
|
|
180
|
-
}
|
|
181
|
-
interface LifecycleServiceOptions {
|
|
182
|
-
debug?: boolean;
|
|
183
|
-
hooks?: Map<string, LifecycleHook>;
|
|
184
|
-
logger?: LoggerService;
|
|
185
|
-
onError?: (error: Error, context: {
|
|
186
|
-
hookId: string;
|
|
187
|
-
method: LifecycleMethod;
|
|
188
|
-
}) => void;
|
|
189
|
-
}
|
|
190
|
-
declare class LifecycleService {
|
|
191
|
-
static __container_entry_key: string;
|
|
192
|
-
hooks: Map<string, LifecycleHook>;
|
|
193
|
-
logger: LoggerService;
|
|
194
|
-
debug: boolean;
|
|
195
|
-
constructor(data?: LifecycleServiceOptions);
|
|
196
|
-
setOnError(handler: Required<LifecycleServiceOptions>['onError']): void;
|
|
197
|
-
onError(error: Error, context: {
|
|
198
|
-
hookId: string;
|
|
199
|
-
method: LifecycleMethod;
|
|
200
|
-
}): void;
|
|
201
|
-
mapAliases(args: string[]): string[];
|
|
202
|
-
list(options?: ListOptions): LifecycleHook[];
|
|
203
|
-
add(...payload: (LifecycleHook | Constructor<LifecycleHook>)[]): void;
|
|
204
|
-
emitMethod(method: LifecycleMethod, options?: ListOptions): Promise<void>;
|
|
205
|
-
emit(payload: LifecycleMethod | LifecycleMethod[], options?: ListOptions): Promise<void>;
|
|
206
|
-
on(method: LifecycleMethod, handler: () => Promise<void>): void;
|
|
207
|
-
register(options?: ListOptions): Promise<void>;
|
|
208
|
-
load(options?: ListOptions): Promise<void>;
|
|
209
|
-
boot(options?: ListOptions): Promise<void>;
|
|
210
|
-
shutdown(options?: ListOptions): Promise<void>;
|
|
211
|
-
clear(): void;
|
|
212
|
-
}
|
|
213
|
-
//#endregion
|
|
214
|
-
//#region src/shared/services/TranslatorService.d.ts
|
|
215
|
-
declare class TranslatorService {
|
|
216
|
-
static __container_entry_key: string;
|
|
217
|
-
entries: Map<string, string>;
|
|
218
|
-
locale: string;
|
|
219
|
-
localeLoaders: Map<string, () => Promise<Record<string, string>>>;
|
|
220
|
-
debug: boolean;
|
|
221
|
-
logger: LoggerService;
|
|
222
|
-
cache: Map<string, Record<string, string>>;
|
|
223
|
-
constructor(data?: Partial<TranslatorService>);
|
|
224
|
-
get locales(): string[];
|
|
225
|
-
list(): {
|
|
226
|
-
key: string;
|
|
227
|
-
value: string;
|
|
228
|
-
}[];
|
|
229
|
-
getEntries(locale: string): Promise<Record<string, string>>;
|
|
230
|
-
load(locale: string): Promise<void>;
|
|
231
|
-
t(key: string, args?: any): string;
|
|
232
|
-
date(data: string | number | Date): string;
|
|
233
|
-
datetime(data: string | number | Date): string;
|
|
234
|
-
}
|
|
235
|
-
//#endregion
|
|
236
|
-
//#region src/shared/services/UploadService.d.ts
|
|
237
|
-
declare class UploadService {
|
|
238
|
-
static __container_entry_key: string;
|
|
239
|
-
single(name: string): void;
|
|
240
|
-
multiple(name: string): void;
|
|
241
|
-
}
|
|
242
|
-
//#endregion
|
|
243
|
-
//#region src/shared/validators/urlValidator.d.ts
|
|
244
|
-
declare const number: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>;
|
|
245
|
-
declare const boolean: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>], undefined>, v.TransformAction<string | boolean, boolean>]>;
|
|
246
|
-
declare const date: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.DateSchema<undefined>], undefined>, v.TransformAction<string | Date, Date>, v.TransformAction<Date, string | Date>]>;
|
|
247
|
-
declare const datetime: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.DateSchema<undefined>], undefined>, v.TransformAction<string | Date, string | Date>]>;
|
|
248
|
-
declare const array: <T extends v.BaseSchema<any, any, any>>(schema?: T) => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<T, undefined>]>;
|
|
249
|
-
declare const arrayNumber: () => v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.BaseSchema<any, any, any>, undefined>]>, v.TransformAction<any[], number[]>]>;
|
|
250
|
-
declare const object: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>], undefined>, v.TransformAction<string | {
|
|
251
|
-
[x: string]: any;
|
|
252
|
-
}, {
|
|
253
|
-
[x: string]: any;
|
|
254
|
-
}>, v.TransformAction<{
|
|
255
|
-
[x: string]: any;
|
|
256
|
-
}, Record<string, any>>]>;
|
|
257
|
-
declare function url(): v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>], undefined>, v.TransformAction<string | {
|
|
258
|
-
[x: string]: any;
|
|
259
|
-
}, {
|
|
260
|
-
[x: string]: any;
|
|
261
|
-
}>, v.TransformAction<{
|
|
262
|
-
[x: string]: any;
|
|
263
|
-
}, Record<string, any>>]>;
|
|
264
|
-
declare namespace url {
|
|
265
|
-
var number: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>;
|
|
266
|
-
var boolean: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.BooleanSchema<undefined>], undefined>, v.TransformAction<string | boolean, boolean>]>;
|
|
267
|
-
var date: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.DateSchema<undefined>], undefined>, v.TransformAction<string | Date, Date>, v.TransformAction<Date, string | Date>]>;
|
|
268
|
-
var datetime: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.DateSchema<undefined>], undefined>, v.TransformAction<string | Date, string | Date>]>;
|
|
269
|
-
var array: <T extends v.BaseSchema<any, any, any>>(schema?: T) => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<T, undefined>]>;
|
|
270
|
-
var arrayNumber: () => v.SchemaWithPipe<readonly [v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.BaseSchema<any, any, any>, undefined>]>, v.TransformAction<any[], number[]>]>;
|
|
271
|
-
var object: () => v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>], undefined>, v.TransformAction<string | {
|
|
272
|
-
[x: string]: any;
|
|
273
|
-
}, {
|
|
274
|
-
[x: string]: any;
|
|
275
|
-
}>, v.TransformAction<{
|
|
276
|
-
[x: string]: any;
|
|
277
|
-
}, Record<string, any>>]>;
|
|
278
|
-
}
|
|
279
|
-
//#endregion
|
|
280
|
-
//#region src/shared/validators/keyValueValidator.d.ts
|
|
281
|
-
declare const keyValue: () => v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TransformAction<string, Record<string, any>>]>;
|
|
282
|
-
//#endregion
|
|
283
|
-
//#region src/shared/validators/paginationValidator.d.ts
|
|
284
|
-
interface PaginationParams {
|
|
285
|
-
maxLimit?: number;
|
|
286
|
-
orderFields?: string[];
|
|
287
|
-
}
|
|
288
|
-
declare const base: (options?: PaginationParams) => v.ObjectSchema<{
|
|
289
|
-
readonly page: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>, 1>;
|
|
290
|
-
readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>, number>;
|
|
291
|
-
readonly orderBy: v.NullishSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.PicklistSchema<string[], undefined>, undefined>]> | v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.StringSchema<undefined>, undefined>]>, readonly []>;
|
|
292
|
-
readonly orderDirection: v.NullishSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.UnionSchema<[v.LiteralSchema<"asc", undefined>, v.LiteralSchema<"desc", undefined>], undefined>, undefined>]>, readonly []>;
|
|
293
|
-
}, undefined>;
|
|
294
|
-
declare function pagination(options?: PaginationParams): v.ObjectSchema<{
|
|
295
|
-
readonly page: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>, 1>;
|
|
296
|
-
readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>, number>;
|
|
297
|
-
readonly orderBy: v.NullishSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.PicklistSchema<string[], undefined>, undefined>]> | v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.StringSchema<undefined>, undefined>]>, readonly []>;
|
|
298
|
-
readonly orderDirection: v.NullishSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.UnionSchema<[v.LiteralSchema<"asc", undefined>, v.LiteralSchema<"desc", undefined>], undefined>, undefined>]>, readonly []>;
|
|
299
|
-
}, undefined>;
|
|
300
|
-
declare namespace pagination {
|
|
301
|
-
var base: (options?: PaginationParams) => v.ObjectSchema<{
|
|
302
|
-
readonly page: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>, 1>;
|
|
303
|
-
readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.NumberSchema<undefined>], undefined>, v.TransformAction<any, number>, v.IntegerAction<number, undefined>]>, number>;
|
|
304
|
-
readonly orderBy: v.NullishSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.PicklistSchema<string[], undefined>, undefined>]> | v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.StringSchema<undefined>, undefined>]>, readonly []>;
|
|
305
|
-
readonly orderDirection: v.NullishSchema<v.SchemaWithPipe<readonly [v.UnionSchema<[v.StringSchema<undefined>, v.ArraySchema<v.StringSchema<undefined>, undefined>], undefined>, v.TransformAction<string | string[], string[]>, v.ArraySchema<v.UnionSchema<[v.LiteralSchema<"asc", undefined>, v.LiteralSchema<"desc", undefined>], undefined>, undefined>]>, readonly []>;
|
|
306
|
-
}, undefined>;
|
|
307
|
-
}
|
|
308
|
-
declare namespace index_d_exports {
|
|
309
|
-
export { PaginationParams, array, arrayNumber, base, boolean, date, datetime, keyValue, number, object, pagination, url };
|
|
310
|
-
}
|
|
311
|
-
//#endregion
|
|
312
|
-
//#region src/shared/services/ValidatorService.d.ts
|
|
313
|
-
type Valibot = typeof v & {
|
|
314
|
-
extras: typeof index_d_exports;
|
|
315
|
-
};
|
|
316
|
-
type ValibotSchema = v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>;
|
|
317
|
-
type ValibotObjectSchema = v.ObjectSchema<any, any>;
|
|
318
|
-
type ValibotSchemaAsync = v.BaseSchemaAsync<unknown, unknown, v.BaseIssue<unknown>>;
|
|
319
|
-
interface ValidatorCallback<T extends ValibotSchema> {
|
|
320
|
-
(_v: Valibot): T;
|
|
321
|
-
}
|
|
322
|
-
type ValidatorCallbackAsync<T extends ValibotSchemaAsync> = {
|
|
323
|
-
(_v: Valibot): T;
|
|
324
|
-
};
|
|
325
|
-
type ValidatorResult<T extends v.BaseSchema<any, any, any>> = v.InferOutput<T>;
|
|
326
|
-
type ValidatePayload<T extends ValibotSchema = ValibotSchema> = ValidatorCallback<T> | T;
|
|
327
|
-
type ValidateResult<T extends ValidatePayload> = T extends ValibotSchema ? v.InferOutput<T> : T extends ValidatorCallback<infer U> ? v.InferOutput<U> : unknown;
|
|
328
|
-
declare class ValidatorService {
|
|
329
|
-
static __container_entry_key: string;
|
|
330
|
-
v: Valibot;
|
|
331
|
-
create<T extends ValibotSchema>(cb: ValidatorCallback<T>): T;
|
|
332
|
-
validate<T extends ValibotSchema>(payload: any, cb: ValidatePayload<T>): v.InferOutput<T>;
|
|
333
|
-
validateAsync<T extends ValibotSchemaAsync>(payload: any, cb: ValidatorCallbackAsync<T> | T): Promise<v.InferOutput<T>>;
|
|
334
|
-
isValid<T extends ValibotSchema>(payload: any, cb: ValidatePayload<T>): boolean;
|
|
335
|
-
}
|
|
336
|
-
//#endregion
|
|
337
|
-
//#region src/shared/utils/createId.d.ts
|
|
338
|
-
declare function createId(prefix?: string): string;
|
|
339
|
-
//#endregion
|
|
340
|
-
//#region src/shared/utils/flatten.d.ts
|
|
341
|
-
declare function flatten(obj: any, prefix?: string, res?: any): Record<string, any>;
|
|
342
|
-
declare function unflatten(obj: any): Record<string, any>;
|
|
343
|
-
//#endregion
|
|
344
|
-
//#region src/shared/utils/formatBytes.d.ts
|
|
345
|
-
declare function formatBytes(bytes: number, decimals?: number): string;
|
|
346
|
-
//#endregion
|
|
347
|
-
//#region src/shared/utils/tryCatch.d.ts
|
|
348
|
-
interface Tryer {
|
|
349
|
-
(...args: any[]): any;
|
|
350
|
-
}
|
|
351
|
-
interface TryerAsync {
|
|
352
|
-
(...args: any[]): Promise<any> | any;
|
|
353
|
-
}
|
|
354
|
-
type TryCatchResult<T extends Tryer> = [null, ReturnType<T>] | [Error, null];
|
|
355
|
-
type TryCatchAsyncResult<T extends TryerAsync> = [null, Awaited<ReturnType<T>>] | [Error, null];
|
|
356
|
-
declare function tryCatch<T extends TryerAsync>(tryer: T): Promise<TryCatchAsyncResult<T>>;
|
|
357
|
-
declare namespace tryCatch {
|
|
358
|
-
var sync: <T extends Tryer>(tryer: T) => TryCatchResult<T>;
|
|
359
|
-
}
|
|
360
|
-
//#endregion
|
|
361
|
-
//#region src/shared/utils/matchPaths.d.ts
|
|
362
|
-
declare function matchPath(pattern: string, path: string): boolean;
|
|
363
|
-
//#endregion
|
|
364
|
-
//#region src/shared/utils/parseRouteUrl.d.ts
|
|
365
|
-
declare function parseUrlParams(routePath: string, requestPath: string): Record<string, string>;
|
|
366
|
-
declare function parseUrlQuery(requestPath: string): Record<string, any>;
|
|
367
|
-
//#endregion
|
|
368
|
-
//#region src/shared/utils/safeJson.d.ts
|
|
369
|
-
declare function safeJsonParse<T>(jsonString: string): T | null;
|
|
370
|
-
declare function safeJsonStringify<T>(value: T): string | null;
|
|
371
|
-
//#endregion
|
|
372
|
-
//#region src/shared/schemas/dashboardMetaSchema.d.ts
|
|
373
|
-
type DashboardMetaSchema = ValidatorResult<ReturnType<typeof dashboardMetaSchema>>;
|
|
374
|
-
declare function dashboardMetaSchema(): v.ObjectSchema<{
|
|
375
|
-
readonly id: v.NumberSchema<undefined>;
|
|
376
|
-
readonly dashboard_id: v.NumberSchema<undefined>;
|
|
377
|
-
readonly name: v.StringSchema<undefined>;
|
|
378
|
-
readonly value: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
379
|
-
}, undefined>;
|
|
380
|
-
declare namespace dashboardMetaSchema {
|
|
381
|
-
var create: Omit<v.ObjectSchema<{
|
|
382
|
-
readonly id: v.NumberSchema<undefined>;
|
|
383
|
-
readonly dashboard_id: v.NumberSchema<undefined>;
|
|
384
|
-
readonly name: v.StringSchema<undefined>;
|
|
385
|
-
readonly value: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
386
|
-
}, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
|
|
387
|
-
readonly entries: Pick<{
|
|
388
|
-
readonly id: v.NumberSchema<undefined>;
|
|
389
|
-
readonly dashboard_id: v.NumberSchema<undefined>;
|
|
390
|
-
readonly name: v.StringSchema<undefined>;
|
|
391
|
-
readonly value: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
392
|
-
}, "value" | "dashboard_id" | "name">;
|
|
393
|
-
readonly "~standard": v.StandardProps<{
|
|
394
|
-
value: string;
|
|
395
|
-
dashboard_id: number;
|
|
396
|
-
name: string;
|
|
397
|
-
}, {
|
|
398
|
-
value: string;
|
|
399
|
-
dashboard_id: number;
|
|
400
|
-
name: string;
|
|
401
|
-
}>;
|
|
402
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
403
|
-
value: string;
|
|
404
|
-
dashboard_id: number;
|
|
405
|
-
name: string;
|
|
406
|
-
}, v.ObjectIssue | v.NumberIssue | v.StringIssue>;
|
|
407
|
-
readonly "~types"?: {
|
|
408
|
-
readonly input: {
|
|
409
|
-
value: string;
|
|
410
|
-
dashboard_id: number;
|
|
411
|
-
name: string;
|
|
412
|
-
};
|
|
413
|
-
readonly output: {
|
|
414
|
-
value: string;
|
|
415
|
-
dashboard_id: number;
|
|
416
|
-
name: string;
|
|
417
|
-
};
|
|
418
|
-
readonly issue: v.ObjectIssue | v.NumberIssue | v.StringIssue;
|
|
419
|
-
};
|
|
420
|
-
};
|
|
421
|
-
var update: Omit<Omit<v.ObjectSchema<{
|
|
422
|
-
readonly id: v.NumberSchema<undefined>;
|
|
423
|
-
readonly dashboard_id: v.NumberSchema<undefined>;
|
|
424
|
-
readonly name: v.StringSchema<undefined>;
|
|
425
|
-
readonly value: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
426
|
-
}, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
|
|
427
|
-
readonly entries: Pick<{
|
|
428
|
-
readonly id: v.NumberSchema<undefined>;
|
|
429
|
-
readonly dashboard_id: v.NumberSchema<undefined>;
|
|
430
|
-
readonly name: v.StringSchema<undefined>;
|
|
431
|
-
readonly value: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
432
|
-
}, "value" | "dashboard_id" | "name">;
|
|
433
|
-
readonly "~standard": v.StandardProps<{
|
|
434
|
-
value: string;
|
|
435
|
-
dashboard_id: number;
|
|
436
|
-
name: string;
|
|
437
|
-
}, {
|
|
438
|
-
value: string;
|
|
439
|
-
dashboard_id: number;
|
|
440
|
-
name: string;
|
|
441
|
-
}>;
|
|
442
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
443
|
-
value: string;
|
|
444
|
-
dashboard_id: number;
|
|
445
|
-
name: string;
|
|
446
|
-
}, v.ObjectIssue | v.NumberIssue | v.StringIssue>;
|
|
447
|
-
readonly "~types"?: {
|
|
448
|
-
readonly input: {
|
|
449
|
-
value: string;
|
|
450
|
-
dashboard_id: number;
|
|
451
|
-
name: string;
|
|
452
|
-
};
|
|
453
|
-
readonly output: {
|
|
454
|
-
value: string;
|
|
455
|
-
dashboard_id: number;
|
|
456
|
-
name: string;
|
|
457
|
-
};
|
|
458
|
-
readonly issue: v.ObjectIssue | v.NumberIssue | v.StringIssue;
|
|
459
|
-
};
|
|
460
|
-
}, "~types" | "~run" | "~standard" | "entries"> & {
|
|
461
|
-
readonly entries: {
|
|
462
|
-
readonly value: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
463
|
-
readonly dashboard_id: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
|
|
464
|
-
readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
465
|
-
};
|
|
466
|
-
readonly "~standard": v.StandardProps<{
|
|
467
|
-
value?: string;
|
|
468
|
-
dashboard_id?: number;
|
|
469
|
-
name?: string;
|
|
470
|
-
}, {
|
|
471
|
-
value?: string;
|
|
472
|
-
dashboard_id?: number;
|
|
473
|
-
name?: string;
|
|
474
|
-
}>;
|
|
475
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
476
|
-
value?: string;
|
|
477
|
-
dashboard_id?: number;
|
|
478
|
-
name?: string;
|
|
479
|
-
}, v.ObjectIssue | v.NumberIssue | v.StringIssue>;
|
|
480
|
-
readonly "~types"?: {
|
|
481
|
-
readonly input: {
|
|
482
|
-
value?: string;
|
|
483
|
-
dashboard_id?: number;
|
|
484
|
-
name?: string;
|
|
485
|
-
};
|
|
486
|
-
readonly output: {
|
|
487
|
-
value?: string;
|
|
488
|
-
dashboard_id?: number;
|
|
489
|
-
name?: string;
|
|
490
|
-
};
|
|
491
|
-
readonly issue: v.ObjectIssue | v.NumberIssue | v.StringIssue;
|
|
492
|
-
};
|
|
493
|
-
};
|
|
494
|
-
}
|
|
495
|
-
//#endregion
|
|
496
|
-
//#region src/shared/schemas/dashboardSchema.d.ts
|
|
497
|
-
type DashboardSchema = ValidatorResult<ReturnType<typeof dashboardSchema>>;
|
|
498
|
-
declare function dashboardSchema(): v.ObjectSchema<{
|
|
499
|
-
readonly id: v.NumberSchema<undefined>;
|
|
500
|
-
readonly name: v.StringSchema<undefined>;
|
|
501
|
-
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
502
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
503
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
504
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
505
|
-
readonly metas: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, undefined>;
|
|
506
|
-
}, undefined>;
|
|
507
|
-
declare namespace dashboardSchema {
|
|
508
|
-
var create: Omit<v.ObjectSchema<{
|
|
509
|
-
readonly id: v.NumberSchema<undefined>;
|
|
510
|
-
readonly name: v.StringSchema<undefined>;
|
|
511
|
-
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
512
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
513
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
514
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
515
|
-
readonly metas: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, undefined>;
|
|
516
|
-
}, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
|
|
517
|
-
readonly entries: Pick<{
|
|
518
|
-
readonly id: v.NumberSchema<undefined>;
|
|
519
|
-
readonly name: v.StringSchema<undefined>;
|
|
520
|
-
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
521
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
522
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
523
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
524
|
-
readonly metas: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, undefined>;
|
|
525
|
-
}, "name" | "description">;
|
|
526
|
-
readonly "~standard": v.StandardProps<{
|
|
527
|
-
name: string;
|
|
528
|
-
description: string;
|
|
529
|
-
}, {
|
|
530
|
-
name: string;
|
|
531
|
-
description: string;
|
|
532
|
-
}>;
|
|
533
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
534
|
-
name: string;
|
|
535
|
-
description: string;
|
|
536
|
-
}, v.ObjectIssue | v.StringIssue>;
|
|
537
|
-
readonly "~types"?: {
|
|
538
|
-
readonly input: {
|
|
539
|
-
name: string;
|
|
540
|
-
description: string;
|
|
541
|
-
};
|
|
542
|
-
readonly output: {
|
|
543
|
-
name: string;
|
|
544
|
-
description: string;
|
|
545
|
-
};
|
|
546
|
-
readonly issue: v.ObjectIssue | v.StringIssue;
|
|
547
|
-
};
|
|
548
|
-
};
|
|
549
|
-
var update: Omit<Omit<v.ObjectSchema<{
|
|
550
|
-
readonly id: v.NumberSchema<undefined>;
|
|
551
|
-
readonly name: v.StringSchema<undefined>;
|
|
552
|
-
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
553
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
554
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
555
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
556
|
-
readonly metas: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, undefined>;
|
|
557
|
-
}, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
|
|
558
|
-
readonly entries: Pick<{
|
|
559
|
-
readonly id: v.NumberSchema<undefined>;
|
|
560
|
-
readonly name: v.StringSchema<undefined>;
|
|
561
|
-
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
562
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
563
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
564
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
565
|
-
readonly metas: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.AnySchema, undefined>, undefined>;
|
|
566
|
-
}, "name" | "description">;
|
|
567
|
-
readonly "~standard": v.StandardProps<{
|
|
568
|
-
name: string;
|
|
569
|
-
description: string;
|
|
570
|
-
}, {
|
|
571
|
-
name: string;
|
|
572
|
-
description: string;
|
|
573
|
-
}>;
|
|
574
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
575
|
-
name: string;
|
|
576
|
-
description: string;
|
|
577
|
-
}, v.ObjectIssue | v.StringIssue>;
|
|
578
|
-
readonly "~types"?: {
|
|
579
|
-
readonly input: {
|
|
580
|
-
name: string;
|
|
581
|
-
description: string;
|
|
582
|
-
};
|
|
583
|
-
readonly output: {
|
|
584
|
-
name: string;
|
|
585
|
-
description: string;
|
|
586
|
-
};
|
|
587
|
-
readonly issue: v.ObjectIssue | v.StringIssue;
|
|
588
|
-
};
|
|
589
|
-
}, "~types" | "~run" | "~standard" | "entries"> & {
|
|
590
|
-
readonly entries: {
|
|
591
|
-
readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
592
|
-
readonly description: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
593
|
-
};
|
|
594
|
-
readonly "~standard": v.StandardProps<{
|
|
595
|
-
name?: string;
|
|
596
|
-
description?: string;
|
|
597
|
-
}, {
|
|
598
|
-
name?: string;
|
|
599
|
-
description?: string;
|
|
600
|
-
}>;
|
|
601
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
602
|
-
name?: string;
|
|
603
|
-
description?: string;
|
|
604
|
-
}, v.ObjectIssue | v.StringIssue>;
|
|
605
|
-
readonly "~types"?: {
|
|
606
|
-
readonly input: {
|
|
607
|
-
name?: string;
|
|
608
|
-
description?: string;
|
|
609
|
-
};
|
|
610
|
-
readonly output: {
|
|
611
|
-
name?: string;
|
|
612
|
-
description?: string;
|
|
613
|
-
};
|
|
614
|
-
readonly issue: v.ObjectIssue | v.StringIssue;
|
|
615
|
-
};
|
|
616
|
-
};
|
|
617
|
-
}
|
|
618
|
-
//#endregion
|
|
619
|
-
//#region src/shared/schemas/permissionAssignmentSchema.d.ts
|
|
620
|
-
type PermissionAssignment = v.InferOutput<typeof permissionAssignmentSchema>;
|
|
621
|
-
declare const permissionAssignmentSchema: v.ObjectSchema<{
|
|
622
|
-
readonly id: v.NumberSchema<undefined>;
|
|
623
|
-
readonly permission_id: v.NumberSchema<undefined>;
|
|
624
|
-
readonly assignable_type: v.StringSchema<undefined>;
|
|
625
|
-
readonly assignable_id: v.StringSchema<undefined>;
|
|
626
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
627
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
628
|
-
}, undefined>;
|
|
629
|
-
//#endregion
|
|
630
|
-
//#region src/shared/schemas/permissionSchema.d.ts
|
|
631
|
-
type Permission = v.InferOutput<typeof permissionSchema>;
|
|
632
|
-
declare const permissionSchema: v.ObjectSchema<{
|
|
633
|
-
readonly id: v.NumberSchema<undefined>;
|
|
634
|
-
readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
635
|
-
readonly description: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
636
|
-
readonly action: v.StringSchema<undefined>;
|
|
637
|
-
readonly subject: v.StringSchema<undefined>;
|
|
638
|
-
readonly conditions: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
639
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
640
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
641
|
-
readonly expires_at: v.StringSchema<undefined>;
|
|
642
|
-
}, undefined>;
|
|
643
|
-
//#endregion
|
|
644
|
-
//#region src/shared/schemas/tokenSchema.d.ts
|
|
645
|
-
type Token = v.InferOutput<typeof tokenSchema>;
|
|
646
|
-
declare const tokenSchema: v.ObjectSchema<{
|
|
647
|
-
readonly id: v.NumberSchema<undefined>;
|
|
648
|
-
readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
649
|
-
readonly type: v.StringSchema<undefined>;
|
|
650
|
-
readonly user_id: v.NumberSchema<undefined>;
|
|
651
|
-
readonly token: v.StringSchema<undefined>;
|
|
652
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
653
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
654
|
-
readonly expires_at: v.StringSchema<undefined>;
|
|
655
|
-
}, undefined>;
|
|
656
|
-
//#endregion
|
|
657
|
-
//#region src/shared/schemas/userSchema.d.ts
|
|
658
|
-
declare function userSchema(): v.ObjectSchema<{
|
|
659
|
-
readonly id: v.NumberSchema<undefined>;
|
|
660
|
-
readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
661
|
-
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.EmailAction<string, undefined>]>;
|
|
662
|
-
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 6, undefined>]>;
|
|
663
|
-
readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
|
|
664
|
-
readonly verified_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
665
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
666
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
667
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
668
|
-
}, undefined>;
|
|
669
|
-
declare namespace userSchema {
|
|
670
|
-
var create: () => Omit<v.ObjectSchema<{
|
|
671
|
-
readonly id: v.NumberSchema<undefined>;
|
|
672
|
-
readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
673
|
-
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.EmailAction<string, undefined>]>;
|
|
674
|
-
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 6, undefined>]>;
|
|
675
|
-
readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
|
|
676
|
-
readonly verified_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
677
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
678
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
679
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
680
|
-
}, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
|
|
681
|
-
readonly entries: Omit<{
|
|
682
|
-
readonly id: v.NumberSchema<undefined>;
|
|
683
|
-
readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
684
|
-
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.EmailAction<string, undefined>]>;
|
|
685
|
-
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 6, undefined>]>;
|
|
686
|
-
readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
|
|
687
|
-
readonly verified_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
688
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
689
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
690
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
691
|
-
}, "id" | "deleted_at" | "created_at" | "updated_at" | "verified_at">;
|
|
692
|
-
readonly "~standard": v.StandardProps<{
|
|
693
|
-
name?: string;
|
|
694
|
-
email: string;
|
|
695
|
-
password: string;
|
|
696
|
-
username: string;
|
|
697
|
-
}, {
|
|
698
|
-
name?: string;
|
|
699
|
-
email: string;
|
|
700
|
-
password: string;
|
|
701
|
-
username: string;
|
|
702
|
-
}>;
|
|
703
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
704
|
-
name?: string;
|
|
705
|
-
email: string;
|
|
706
|
-
password: string;
|
|
707
|
-
username: string;
|
|
708
|
-
}, v.ObjectIssue | v.StringIssue | v.EmailIssue<string> | v.MinLengthIssue<string, 6> | v.RegexIssue<string>>;
|
|
709
|
-
readonly "~types"?: {
|
|
710
|
-
readonly input: {
|
|
711
|
-
name?: string;
|
|
712
|
-
email: string;
|
|
713
|
-
password: string;
|
|
714
|
-
username: string;
|
|
715
|
-
};
|
|
716
|
-
readonly output: {
|
|
717
|
-
name?: string;
|
|
718
|
-
email: string;
|
|
719
|
-
password: string;
|
|
720
|
-
username: string;
|
|
721
|
-
};
|
|
722
|
-
readonly issue: v.ObjectIssue | v.StringIssue | v.EmailIssue<string> | v.MinLengthIssue<string, 6> | v.RegexIssue<string>;
|
|
723
|
-
};
|
|
724
|
-
};
|
|
725
|
-
var update: () => Omit<Omit<v.ObjectSchema<{
|
|
726
|
-
readonly id: v.NumberSchema<undefined>;
|
|
727
|
-
readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
728
|
-
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.EmailAction<string, undefined>]>;
|
|
729
|
-
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 6, undefined>]>;
|
|
730
|
-
readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
|
|
731
|
-
readonly verified_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
732
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
733
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
734
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
735
|
-
}, undefined>, "~types" | "~run" | "~standard" | "entries"> & {
|
|
736
|
-
readonly entries: Omit<{
|
|
737
|
-
readonly id: v.NumberSchema<undefined>;
|
|
738
|
-
readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
739
|
-
readonly email: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.EmailAction<string, undefined>]>;
|
|
740
|
-
readonly password: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 6, undefined>]>;
|
|
741
|
-
readonly username: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
|
|
742
|
-
readonly verified_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
743
|
-
readonly created_at: v.StringSchema<undefined>;
|
|
744
|
-
readonly updated_at: v.StringSchema<undefined>;
|
|
745
|
-
readonly deleted_at: v.NullableSchema<v.StringSchema<undefined>, undefined>;
|
|
746
|
-
}, "id" | "deleted_at" | "created_at" | "updated_at" | "verified_at">;
|
|
747
|
-
readonly "~standard": v.StandardProps<{
|
|
748
|
-
name?: string;
|
|
749
|
-
email: string;
|
|
750
|
-
password: string;
|
|
751
|
-
username: string;
|
|
752
|
-
}, {
|
|
753
|
-
name?: string;
|
|
754
|
-
email: string;
|
|
755
|
-
password: string;
|
|
756
|
-
username: string;
|
|
757
|
-
}>;
|
|
758
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
759
|
-
name?: string;
|
|
760
|
-
email: string;
|
|
761
|
-
password: string;
|
|
762
|
-
username: string;
|
|
763
|
-
}, v.ObjectIssue | v.StringIssue | v.EmailIssue<string> | v.MinLengthIssue<string, 6> | v.RegexIssue<string>>;
|
|
764
|
-
readonly "~types"?: {
|
|
765
|
-
readonly input: {
|
|
766
|
-
name?: string;
|
|
767
|
-
email: string;
|
|
768
|
-
password: string;
|
|
769
|
-
username: string;
|
|
770
|
-
};
|
|
771
|
-
readonly output: {
|
|
772
|
-
name?: string;
|
|
773
|
-
email: string;
|
|
774
|
-
password: string;
|
|
775
|
-
username: string;
|
|
776
|
-
};
|
|
777
|
-
readonly issue: v.ObjectIssue | v.StringIssue | v.EmailIssue<string> | v.MinLengthIssue<string, 6> | v.RegexIssue<string>;
|
|
778
|
-
};
|
|
779
|
-
}, "~types" | "~run" | "~standard" | "entries"> & {
|
|
780
|
-
readonly entries: {
|
|
781
|
-
readonly name: v.OptionalSchema<v.OptionalSchema<v.StringSchema<undefined>, undefined>, undefined>;
|
|
782
|
-
readonly email: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.EmailAction<string, undefined>]>, undefined>;
|
|
783
|
-
readonly password: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 6, undefined>]>, undefined>;
|
|
784
|
-
readonly username: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>, undefined>;
|
|
785
|
-
};
|
|
786
|
-
readonly "~standard": v.StandardProps<{
|
|
787
|
-
name?: string;
|
|
788
|
-
email?: string;
|
|
789
|
-
password?: string;
|
|
790
|
-
username?: string;
|
|
791
|
-
}, {
|
|
792
|
-
name?: string;
|
|
793
|
-
email?: string;
|
|
794
|
-
password?: string;
|
|
795
|
-
username?: string;
|
|
796
|
-
}>;
|
|
797
|
-
readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
|
|
798
|
-
name?: string;
|
|
799
|
-
email?: string;
|
|
800
|
-
password?: string;
|
|
801
|
-
username?: string;
|
|
802
|
-
}, v.ObjectIssue | v.StringIssue | v.EmailIssue<string> | v.MinLengthIssue<string, 6> | v.RegexIssue<string>>;
|
|
803
|
-
readonly "~types"?: {
|
|
804
|
-
readonly input: {
|
|
805
|
-
name?: string;
|
|
806
|
-
email?: string;
|
|
807
|
-
password?: string;
|
|
808
|
-
username?: string;
|
|
809
|
-
};
|
|
810
|
-
readonly output: {
|
|
811
|
-
name?: string;
|
|
812
|
-
email?: string;
|
|
813
|
-
password?: string;
|
|
814
|
-
username?: string;
|
|
815
|
-
};
|
|
816
|
-
readonly issue: v.ObjectIssue | v.StringIssue | v.EmailIssue<string> | v.MinLengthIssue<string, 6> | v.RegexIssue<string>;
|
|
817
|
-
};
|
|
818
|
-
};
|
|
819
|
-
}
|
|
820
|
-
//#endregion
|
|
821
|
-
//#region src/shared/exceptions/BaseException.d.ts
|
|
822
|
-
declare class BaseException extends Error {
|
|
823
|
-
status: number;
|
|
824
|
-
constructor(message: string, status?: number);
|
|
825
|
-
static fromError(error: Error): BaseException;
|
|
826
|
-
}
|
|
827
|
-
//#endregion
|
|
828
|
-
//#region src/shared/exceptions/ShellException.d.ts
|
|
829
|
-
declare class ShellException extends BaseException {
|
|
830
|
-
output: string;
|
|
831
|
-
bin: string;
|
|
832
|
-
args: string[];
|
|
833
|
-
constructor(message: string, output: string, bin: string, args: string[]);
|
|
834
|
-
}
|
|
835
|
-
//#endregion
|
|
836
|
-
//#region src/shared/facades/validator.d.ts
|
|
837
|
-
declare const validator: ValidatorService;
|
|
838
|
-
//#endregion
|
|
839
|
-
//#region src/shared/mixins/BaseEntityMixin.d.ts
|
|
840
|
-
interface CreateBaseEntityOptions {
|
|
841
|
-
parse?: (data: any) => any;
|
|
842
|
-
}
|
|
843
|
-
declare function createBaseEntity(options?: CreateBaseEntityOptions): <TBase extends Constructor>(Base: TBase) => {
|
|
844
|
-
new (...args: any[]): {
|
|
845
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
846
|
-
};
|
|
847
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
848
|
-
} & TBase;
|
|
849
|
-
declare function BaseEntity<TBase extends Constructor>(Base: TBase): {
|
|
850
|
-
new (...args: any[]): {
|
|
851
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
852
|
-
};
|
|
853
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
854
|
-
} & TBase;
|
|
855
|
-
//#endregion
|
|
856
|
-
//#region src/shared/mixins/HooksMixin.d.ts
|
|
857
|
-
interface Listener {
|
|
858
|
-
event: string;
|
|
859
|
-
listener: (...args: any[]) => void;
|
|
860
|
-
}
|
|
861
|
-
declare function emitHook(constructor: any, event: string, ...args: any[]): Promise<void>;
|
|
862
|
-
declare function onHook(constructor: any, event: string, listener: (...args: any[]) => void): void;
|
|
863
|
-
declare function HooksStatic<TBase extends Constructor>(Base: TBase): {
|
|
864
|
-
new (...args: any[]): {};
|
|
865
|
-
listeners: Array<(...args: any[]) => void>;
|
|
866
|
-
on(event: string, listener: (...args: any[]) => void): void;
|
|
867
|
-
emit(event: string, ...args: any[]): Promise<void>;
|
|
868
|
-
} & TBase;
|
|
869
|
-
declare namespace HooksStatic {
|
|
870
|
-
var emit: typeof emitHook;
|
|
871
|
-
var on: typeof onHook;
|
|
872
|
-
}
|
|
873
|
-
declare function Hooks<TBase extends Constructor>(Base: TBase): {
|
|
874
|
-
new (...args: any[]): {
|
|
875
|
-
listeners: Listener[];
|
|
876
|
-
on(event: string, listener: (...args: any[]) => void): void;
|
|
877
|
-
off(event: string, listener: (...args: any[]) => void): void;
|
|
878
|
-
emit(event: string, ...args: any[]): void;
|
|
879
|
-
emitAsync(event: string, ...args: any[]): Promise<void>;
|
|
880
|
-
};
|
|
881
|
-
} & TBase;
|
|
882
|
-
//#endregion
|
|
883
|
-
//#region src/shared/mixins/SoftDeleteMixin.d.ts
|
|
884
|
-
declare function SoftDeleteMixin<T extends Constructor>(base: T): {
|
|
885
|
-
new (...args: any[]): {
|
|
886
|
-
deleted_at: Date | string | null;
|
|
887
|
-
};
|
|
888
|
-
} & T;
|
|
889
|
-
//#endregion
|
|
890
|
-
//#region src/shared/mixins/TimestampMixin.d.ts
|
|
891
|
-
declare function TimestampMixin<T extends Constructor>(base: T): {
|
|
892
|
-
new (...args: any[]): {
|
|
893
|
-
created_at: Date | string;
|
|
894
|
-
updated_at: Date | string;
|
|
895
|
-
};
|
|
896
|
-
} & T;
|
|
897
|
-
//#endregion
|
|
898
|
-
//#region src/shared/entities/PermissionEntity.d.ts
|
|
899
|
-
declare const PermissionEntity_base: {
|
|
900
|
-
new (...args: any[]): {
|
|
901
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
902
|
-
};
|
|
903
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
904
|
-
} & Constructor;
|
|
905
|
-
declare class PermissionEntity extends PermissionEntity_base {
|
|
906
|
-
id: number;
|
|
907
|
-
name: string;
|
|
908
|
-
description: string | null;
|
|
909
|
-
origin: string;
|
|
910
|
-
subject: string;
|
|
911
|
-
action: string;
|
|
912
|
-
conditions: string | null | Record<string, any>;
|
|
913
|
-
get editable(): boolean;
|
|
914
|
-
get parsedConditions(): any;
|
|
915
|
-
}
|
|
916
|
-
//#endregion
|
|
917
|
-
//#region src/shared/entities/AclEntity.d.ts
|
|
918
|
-
declare class AclEntity {
|
|
919
|
-
static __container_entry_key: string;
|
|
920
|
-
ability: ReturnType<typeof defineAbility>;
|
|
921
|
-
permissions: PermissionEntity[];
|
|
922
|
-
debug: boolean;
|
|
923
|
-
logger: LoggerService;
|
|
924
|
-
constructor(data?: Partial<AclEntity>);
|
|
925
|
-
can(action: string, subject: any, object?: Record<string, any>): boolean;
|
|
926
|
-
cannot(action: string, subject: any, object?: Record<string, any>): boolean;
|
|
927
|
-
subject(subject: string, object: Record<string, any>): Record<string, any> & _$_casl_ability0.ForcedSubject<string>;
|
|
928
|
-
}
|
|
929
|
-
//#endregion
|
|
930
|
-
//#region src/shared/entities/CookieMapEntity.d.ts
|
|
931
|
-
interface CookieMapEntityOptions {
|
|
932
|
-
cookies?: Map<string, string>;
|
|
933
|
-
prefix?: string;
|
|
934
|
-
}
|
|
935
|
-
declare class CookieMapEntity {
|
|
936
|
-
static __container_entry_key: string;
|
|
937
|
-
cookies: Map<string, string>;
|
|
938
|
-
prefix: string;
|
|
939
|
-
constructor(data?: CookieMapEntityOptions);
|
|
940
|
-
load(cookies: Record<string, string> | Map<string, string>): void;
|
|
941
|
-
get(name: string, defaultValue?: string | null): string | null;
|
|
942
|
-
set(name: string, value: string, options?: any): void;
|
|
943
|
-
toRecord(): Record<string, string>;
|
|
944
|
-
}
|
|
945
|
-
//#endregion
|
|
946
|
-
//#region src/shared/entities/DriveConfigEntity.d.ts
|
|
947
|
-
declare const TYPES: () => ({
|
|
948
|
-
id: string;
|
|
949
|
-
label: any;
|
|
950
|
-
description: any;
|
|
951
|
-
config_fields: {
|
|
952
|
-
directory: {
|
|
953
|
-
component: string;
|
|
954
|
-
label: any;
|
|
955
|
-
description: any;
|
|
956
|
-
hint: any;
|
|
957
|
-
};
|
|
958
|
-
accessKeyId?: undefined;
|
|
959
|
-
secretAccessKey?: undefined;
|
|
960
|
-
bucket?: undefined;
|
|
961
|
-
region?: undefined;
|
|
962
|
-
prefix?: undefined;
|
|
963
|
-
endpoint?: undefined;
|
|
964
|
-
};
|
|
965
|
-
} | {
|
|
966
|
-
id: string;
|
|
967
|
-
label: string;
|
|
968
|
-
description: any;
|
|
969
|
-
config_fields: {
|
|
970
|
-
accessKeyId: {
|
|
971
|
-
component: string;
|
|
972
|
-
label: any;
|
|
973
|
-
hint: any;
|
|
974
|
-
type: string;
|
|
975
|
-
};
|
|
976
|
-
secretAccessKey: {
|
|
977
|
-
component: string;
|
|
978
|
-
label: any;
|
|
979
|
-
hint: any;
|
|
980
|
-
type: string;
|
|
981
|
-
};
|
|
982
|
-
bucket: {
|
|
983
|
-
component: string;
|
|
984
|
-
label: any;
|
|
985
|
-
hint: any;
|
|
986
|
-
};
|
|
987
|
-
region: {
|
|
988
|
-
component: string;
|
|
989
|
-
label: any;
|
|
990
|
-
hint: any;
|
|
991
|
-
};
|
|
992
|
-
prefix: {
|
|
993
|
-
component: string;
|
|
994
|
-
label: any;
|
|
995
|
-
hint: any;
|
|
996
|
-
};
|
|
997
|
-
endpoint: {
|
|
998
|
-
component: string;
|
|
999
|
-
label: any;
|
|
1000
|
-
hint: any;
|
|
1001
|
-
};
|
|
1002
|
-
directory?: undefined;
|
|
1003
|
-
};
|
|
1004
|
-
})[];
|
|
1005
|
-
declare class DriveConfig {
|
|
1006
|
-
static get TYPES(): ({
|
|
1007
|
-
id: string;
|
|
1008
|
-
label: any;
|
|
1009
|
-
description: any;
|
|
1010
|
-
config_fields: {
|
|
1011
|
-
directory: {
|
|
1012
|
-
component: string;
|
|
1013
|
-
label: any;
|
|
1014
|
-
description: any;
|
|
1015
|
-
hint: any;
|
|
1016
|
-
};
|
|
1017
|
-
accessKeyId?: undefined;
|
|
1018
|
-
secretAccessKey?: undefined;
|
|
1019
|
-
bucket?: undefined;
|
|
1020
|
-
region?: undefined;
|
|
1021
|
-
prefix?: undefined;
|
|
1022
|
-
endpoint?: undefined;
|
|
1023
|
-
};
|
|
1024
|
-
} | {
|
|
1025
|
-
id: string;
|
|
1026
|
-
label: string;
|
|
1027
|
-
description: any;
|
|
1028
|
-
config_fields: {
|
|
1029
|
-
accessKeyId: {
|
|
1030
|
-
component: string;
|
|
1031
|
-
label: any;
|
|
1032
|
-
hint: any;
|
|
1033
|
-
type: string;
|
|
1034
|
-
};
|
|
1035
|
-
secretAccessKey: {
|
|
1036
|
-
component: string;
|
|
1037
|
-
label: any;
|
|
1038
|
-
hint: any;
|
|
1039
|
-
type: string;
|
|
1040
|
-
};
|
|
1041
|
-
bucket: {
|
|
1042
|
-
component: string;
|
|
1043
|
-
label: any;
|
|
1044
|
-
hint: any;
|
|
1045
|
-
};
|
|
1046
|
-
region: {
|
|
1047
|
-
component: string;
|
|
1048
|
-
label: any;
|
|
1049
|
-
hint: any;
|
|
1050
|
-
};
|
|
1051
|
-
prefix: {
|
|
1052
|
-
component: string;
|
|
1053
|
-
label: any;
|
|
1054
|
-
hint: any;
|
|
1055
|
-
};
|
|
1056
|
-
endpoint: {
|
|
1057
|
-
component: string;
|
|
1058
|
-
label: any;
|
|
1059
|
-
hint: any;
|
|
1060
|
-
};
|
|
1061
|
-
directory?: undefined;
|
|
1062
|
-
};
|
|
1063
|
-
})[];
|
|
1064
|
-
id: string;
|
|
1065
|
-
name: string;
|
|
1066
|
-
type: string;
|
|
1067
|
-
is_default: boolean;
|
|
1068
|
-
config: Record<string, any>;
|
|
1069
|
-
constructor(data: DriveConfig);
|
|
1070
|
-
get config_fields(): {};
|
|
1071
|
-
}
|
|
1072
|
-
//#endregion
|
|
1073
|
-
//#region src/shared/entities/DriveEntryEntity.d.ts
|
|
1074
|
-
declare class DriveEntry {
|
|
1075
|
-
name: string;
|
|
1076
|
-
path: string;
|
|
1077
|
-
type: 'file' | 'directory';
|
|
1078
|
-
metas: Record<string, any>;
|
|
1079
|
-
constructor(data: DriveEntry);
|
|
1080
|
-
}
|
|
1081
|
-
//#endregion
|
|
1082
|
-
//#region src/shared/entities/FileEntity.d.ts
|
|
1083
|
-
declare const FileEntity_base: {
|
|
1084
|
-
new (...args: any[]): {
|
|
1085
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1086
|
-
};
|
|
1087
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1088
|
-
} & Constructor & {
|
|
1089
|
-
new (...args: any[]): {
|
|
1090
|
-
created_at: Date | string;
|
|
1091
|
-
updated_at: Date | string;
|
|
1092
|
-
};
|
|
1093
|
-
} & {
|
|
1094
|
-
new (...args: any[]): {
|
|
1095
|
-
deleted_at: Date | string | null;
|
|
1096
|
-
};
|
|
1097
|
-
};
|
|
1098
|
-
declare class FileEntity extends FileEntity_base {
|
|
1099
|
-
id: number;
|
|
1100
|
-
drive: string;
|
|
1101
|
-
mimetype: string;
|
|
1102
|
-
purpose: string;
|
|
1103
|
-
client_name: string;
|
|
1104
|
-
filename: string;
|
|
1105
|
-
public: boolean;
|
|
1106
|
-
url?: string;
|
|
1107
|
-
metas?: Record<string, any>;
|
|
1108
|
-
isImage(): boolean;
|
|
1109
|
-
}
|
|
1110
|
-
//#endregion
|
|
1111
|
-
//#region src/shared/entities/FileMetaEntity.d.ts
|
|
1112
|
-
declare const FileMeta_base: {
|
|
1113
|
-
new (...args: any[]): {
|
|
1114
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1115
|
-
};
|
|
1116
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1117
|
-
} & Constructor & {
|
|
1118
|
-
new (...args: any[]): {
|
|
1119
|
-
created_at: Date | string;
|
|
1120
|
-
updated_at: Date | string;
|
|
1121
|
-
};
|
|
1122
|
-
} & {
|
|
1123
|
-
new (...args: any[]): {
|
|
1124
|
-
deleted_at: Date | string | null;
|
|
1125
|
-
};
|
|
1126
|
-
};
|
|
1127
|
-
declare class FileMeta extends FileMeta_base {
|
|
1128
|
-
id: number;
|
|
1129
|
-
file_id: number;
|
|
1130
|
-
name: string;
|
|
1131
|
-
value: string | null;
|
|
1132
|
-
}
|
|
1133
|
-
//#endregion
|
|
1134
|
-
//#region src/shared/entities/FileUploadSessionEntity.d.ts
|
|
1135
|
-
declare const UploadSession_base: {
|
|
1136
|
-
new (...args: any[]): {
|
|
1137
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1138
|
-
};
|
|
1139
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1140
|
-
} & Constructor & {
|
|
1141
|
-
new (...args: any[]): {
|
|
1142
|
-
created_at: Date | string;
|
|
1143
|
-
updated_at: Date | string;
|
|
1144
|
-
};
|
|
1145
|
-
} & {
|
|
1146
|
-
new (...args: any[]): {
|
|
1147
|
-
deleted_at: Date | string | null;
|
|
1148
|
-
};
|
|
1149
|
-
};
|
|
1150
|
-
declare class UploadSession extends UploadSession_base {
|
|
1151
|
-
id: number;
|
|
1152
|
-
purpose: string;
|
|
1153
|
-
mime_types: string;
|
|
1154
|
-
max_size: number;
|
|
1155
|
-
upload_url?: string;
|
|
1156
|
-
create_file_url?: string;
|
|
1157
|
-
getParsedMimeTypes(): string[];
|
|
1158
|
-
isAllowedMimeType(mimeType: string): boolean;
|
|
1159
|
-
isAllowedSize(size: number): boolean;
|
|
1160
|
-
}
|
|
1161
|
-
//#endregion
|
|
1162
|
-
//#region src/shared/entities/GitBranchEntity.d.ts
|
|
1163
|
-
declare class GitBranchEntity {
|
|
1164
|
-
name: string;
|
|
1165
|
-
remote: string | null;
|
|
1166
|
-
is_current: boolean;
|
|
1167
|
-
is_remote: boolean;
|
|
1168
|
-
constructor(data: GitBranchEntity);
|
|
1169
|
-
}
|
|
1170
|
-
//#endregion
|
|
1171
|
-
//#region src/shared/entities/GitCommitEntity.d.ts
|
|
1172
|
-
declare class GitCommitEntity {
|
|
1173
|
-
hash: string;
|
|
1174
|
-
short_hash: string;
|
|
1175
|
-
message: string;
|
|
1176
|
-
body: string;
|
|
1177
|
-
author_name: string;
|
|
1178
|
-
author_email: string;
|
|
1179
|
-
date: string;
|
|
1180
|
-
constructor(data: GitCommitEntity);
|
|
1181
|
-
}
|
|
1182
|
-
//#endregion
|
|
1183
|
-
//#region src/shared/entities/HeaderMapEntity.d.ts
|
|
1184
|
-
interface HeaderMapEntityOptions {
|
|
1185
|
-
headers?: Record<string, string>;
|
|
1186
|
-
setHeader?: (name: string, value: string) => void;
|
|
1187
|
-
}
|
|
1188
|
-
declare class HeaderMapEntity {
|
|
1189
|
-
static __container_entry_key: string;
|
|
1190
|
-
entries: Map<string, string>;
|
|
1191
|
-
setHeader?: (name: string, value: string) => void;
|
|
1192
|
-
constructor(data?: HeaderMapEntityOptions);
|
|
1193
|
-
loadFromRecord(cookies: Record<string, string>): void;
|
|
1194
|
-
get(name: string, defaultValue?: string | null): string | null;
|
|
1195
|
-
set(name: string, value: string): void;
|
|
1196
|
-
toRecord(): Record<string, string>;
|
|
1197
|
-
}
|
|
1198
|
-
//#endregion
|
|
1199
|
-
//#region src/shared/entities/ModuleManifestEntity.d.ts
|
|
1200
|
-
interface ModuleManifestBuildImport {
|
|
1201
|
-
from: string;
|
|
1202
|
-
to?: string;
|
|
1203
|
-
type: 'global_import';
|
|
1204
|
-
}
|
|
1205
|
-
interface ModuleManifestBuild {
|
|
1206
|
-
imports?: ModuleManifestBuildImport[];
|
|
1207
|
-
}
|
|
1208
|
-
declare const ModuleManifest_base: {
|
|
1209
|
-
new (...args: any[]): {
|
|
1210
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1211
|
-
};
|
|
1212
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1213
|
-
} & Constructor;
|
|
1214
|
-
declare class ModuleManifest extends ModuleManifest_base {
|
|
1215
|
-
id: string;
|
|
1216
|
-
name: string;
|
|
1217
|
-
version: string;
|
|
1218
|
-
description?: string;
|
|
1219
|
-
enabled: boolean;
|
|
1220
|
-
author?: string;
|
|
1221
|
-
dependencies?: Record<string, string>;
|
|
1222
|
-
build?: ModuleManifestBuild;
|
|
1223
|
-
[key: string]: any;
|
|
1224
|
-
}
|
|
1225
|
-
//#endregion
|
|
1226
|
-
//#region src/shared/entities/ModuleEntity.d.ts
|
|
1227
|
-
interface ModuleUpgradeInfo {
|
|
1228
|
-
source: 'git' | 'zip';
|
|
1229
|
-
[key: string]: any;
|
|
1230
|
-
}
|
|
1231
|
-
declare const Module_base: {
|
|
1232
|
-
new (...args: any[]): {
|
|
1233
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1234
|
-
};
|
|
1235
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1236
|
-
} & Constructor & Constructor<{}> & typeof LifecycleHook;
|
|
1237
|
-
declare class Module extends Module_base {
|
|
1238
|
-
id: string;
|
|
1239
|
-
name: string;
|
|
1240
|
-
enabled: boolean;
|
|
1241
|
-
dependencies: Record<string, any>;
|
|
1242
|
-
build: ModuleManifest['build'];
|
|
1243
|
-
directory: string;
|
|
1244
|
-
upgrade_info?: ModuleUpgradeInfo;
|
|
1245
|
-
setData(data: Partial<Module | ModuleManifest>): void;
|
|
1246
|
-
}
|
|
1247
|
-
//#endregion
|
|
1248
|
-
//#region src/shared/entities/PaginationEntity.d.ts
|
|
1249
|
-
declare class PaginationEntity<T = Record<string, any>> {
|
|
1250
|
-
items: T[];
|
|
1251
|
-
total: number;
|
|
1252
|
-
page: number;
|
|
1253
|
-
per_page: number;
|
|
1254
|
-
total_pages: number;
|
|
1255
|
-
constructor(data: Partial<PaginationEntity>);
|
|
1256
|
-
static from<T = Record<string, string>>(payload: Partial<PaginationEntity<T>>): PaginationEntity<T>;
|
|
1257
|
-
}
|
|
1258
|
-
//#endregion
|
|
1259
|
-
//#region src/shared/entities/PluginEntity.d.ts
|
|
1260
|
-
declare const PluginEntity_base: {
|
|
1261
|
-
new (...args: any[]): {
|
|
1262
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1263
|
-
};
|
|
1264
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1265
|
-
} & Constructor;
|
|
1266
|
-
declare class PluginEntity extends PluginEntity_base {
|
|
1267
|
-
id: string;
|
|
1268
|
-
name: string;
|
|
1269
|
-
version: string;
|
|
1270
|
-
enabled: boolean;
|
|
1271
|
-
aliases: string[];
|
|
1272
|
-
version_channel: string;
|
|
1273
|
-
version_available_channels: string[];
|
|
1274
|
-
}
|
|
1275
|
-
//#endregion
|
|
1276
|
-
//#region src/shared/entities/RoleEntity.d.ts
|
|
1277
|
-
declare const Role_base: {
|
|
1278
|
-
new (...args: any[]): {
|
|
1279
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1280
|
-
};
|
|
1281
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1282
|
-
} & Constructor & {
|
|
1283
|
-
new (...args: any[]): {
|
|
1284
|
-
created_at: Date | string;
|
|
1285
|
-
updated_at: Date | string;
|
|
1286
|
-
};
|
|
1287
|
-
} & {
|
|
1288
|
-
new (...args: any[]): {
|
|
1289
|
-
deleted_at: Date | string | null;
|
|
1290
|
-
};
|
|
1291
|
-
};
|
|
1292
|
-
declare class Role extends Role_base {
|
|
1293
|
-
id: number;
|
|
1294
|
-
name: string;
|
|
1295
|
-
description?: string;
|
|
1296
|
-
}
|
|
1297
|
-
//#endregion
|
|
1298
|
-
//#region src/shared/entities/UserEntity.d.ts
|
|
1299
|
-
declare const UserEntity_base: {
|
|
1300
|
-
new (...args: any[]): {
|
|
1301
|
-
merge(data: Partial< /*elided*/any>): /*elided*/any;
|
|
1302
|
-
};
|
|
1303
|
-
from<T>(this: new () => T, data: Partial<T>): T;
|
|
1304
|
-
} & Constructor & {
|
|
1305
|
-
new (...args: any[]): {
|
|
1306
|
-
created_at: Date | string;
|
|
1307
|
-
updated_at: Date | string;
|
|
1308
|
-
};
|
|
1309
|
-
} & {
|
|
1310
|
-
new (...args: any[]): {
|
|
1311
|
-
deleted_at: Date | string | null;
|
|
1312
|
-
};
|
|
1313
|
-
};
|
|
1314
|
-
declare class UserEntity extends UserEntity_base {
|
|
1315
|
-
id: number;
|
|
1316
|
-
email: string;
|
|
1317
|
-
name: string;
|
|
1318
|
-
username: string;
|
|
1319
|
-
password?: string;
|
|
1320
|
-
verified_at?: Date | string | null;
|
|
1321
|
-
permissions?: PermissionEntity[];
|
|
1322
|
-
roles?: Role[];
|
|
1323
|
-
get initials(): string;
|
|
1324
|
-
}
|
|
1325
|
-
//#endregion
|
|
1326
|
-
export { AclEntity, AnyClass, BaseEntity as BaseEntityMixin, BaseException, ConfigService, Constructor, ContainerService, CookieMapEntity, CookieMapEntityOptions, DashboardMetaSchema, DashboardSchema, DriveConfig as DriveConfigEntity, DriveEntry as DriveEntryEntity, EmmitterListener, EmmitterListenerOptions, EmmitterService, EmmitterServiceOptions, FileEntity, FileMeta as FileMetaEntity, UploadSession as FileUploadSessionEntity, GitBranchEntity, GitCommitEntity, HeaderMapEntity, HeaderMapEntityOptions, Hooks as HooksMixin, HooksStatic, LifecycleHook, LifecycleService, LifecycleServiceOptions, Listener, LoggerService, Mixin, Module as ModuleEntity, ModuleManifestBuild, ModuleManifestBuildImport, ModuleManifest as ModuleManifestEntity, PaginationEntity, PartialBy, Permission, PermissionAssignment, PermissionEntity, PluginEntity, PublicData, Role as RoleEntity, ShellException, SoftDeleteMixin, TYPES, TimestampMixin, Token, TranslatorService, UnionToIntersection, UploadService, UserEntity, Valibot, ValibotObjectSchema, ValibotSchema, ValibotSchemaAsync, ValidatePayload, ValidateResult, ValidatorCallback, ValidatorCallbackAsync, ValidatorResult, ValidatorService, compose, composeWith, createBaseEntity, createId, dashboardMetaSchema, dashboardSchema, emitHook, flatten, formatBytes, matchPath, mixin, onHook, parseUrlParams, parseUrlQuery, permissionAssignmentSchema, permissionSchema, safeJsonParse, safeJsonStringify, tokenSchema, tryCatch, unflatten, userSchema, validator };
|
|
1327
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NoYXJlZC9zZXJ2aWNlcy9Db25maWdTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL0NvbnRhaW5lclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zZXJ2aWNlcy9FbW1pdHRlclNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvTGlmZWN5Y2xlSG9vay5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC91dGlscy90eXBpbmcuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvdXRpbHMvY29tcG9zZS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zZXJ2aWNlcy9MaWZlY3ljbGVTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL1RyYW5zbGF0b3JTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NlcnZpY2VzL1VwbG9hZFNlcnZpY2UuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvdmFsaWRhdG9ycy91cmxWYWxpZGF0b3IuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvdmFsaWRhdG9ycy9rZXlWYWx1ZVZhbGlkYXRvci5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC92YWxpZGF0b3JzL3BhZ2luYXRpb25WYWxpZGF0b3IuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvdmFsaWRhdG9ycy9pbmRleC5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zZXJ2aWNlcy9WYWxpZGF0b3JTZXJ2aWNlLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3V0aWxzL2NyZWF0ZUlkLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3V0aWxzL2ZsYXR0ZW4uZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvdXRpbHMvZm9ybWF0Qnl0ZXMuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvdXRpbHMvdHJ5Q2F0Y2guZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvdXRpbHMvbWF0Y2hQYXRocy5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC91dGlscy9wYXJzZVJvdXRlVXJsLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3V0aWxzL3NhZmVKc29uLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NjaGVtYXMvZGFzaGJvYXJkTWV0YVNjaGVtYS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zY2hlbWFzL2Rhc2hib2FyZFNjaGVtYS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zY2hlbWFzL3Blcm1pc3Npb25Bc3NpZ25tZW50U2NoZW1hLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NjaGVtYXMvcGVybWlzc2lvblNjaGVtYS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9zY2hlbWFzL3Rva2VuU2NoZW1hLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL3NjaGVtYXMvdXNlclNjaGVtYS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9leGNlcHRpb25zL0Jhc2VFeGNlcHRpb24uZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZXhjZXB0aW9ucy9TaGVsbEV4Y2VwdGlvbi5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9mYWNhZGVzL3ZhbGlkYXRvci5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9taXhpbnMvQmFzZUVudGl0eU1peGluLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL21peGlucy9Ib29rc01peGluLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL21peGlucy9Tb2Z0RGVsZXRlTWl4aW4uZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvbWl4aW5zL1RpbWVzdGFtcE1peGluLmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL1Blcm1pc3Npb25FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvQWNsRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0Nvb2tpZU1hcEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Ecml2ZUNvbmZpZ0VudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9Ecml2ZUVudHJ5RW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0ZpbGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvRmlsZU1ldGFFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvRmlsZVVwbG9hZFNlc3Npb25FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvR2l0QnJhbmNoRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL0dpdENvbW1pdEVudGl0eS5kLnRzIiwiLi4vLi4vc3JjL3NoYXJlZC9lbnRpdGllcy9IZWFkZXJNYXBFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvTW9kdWxlTWFuaWZlc3RFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvTW9kdWxlRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL1BhZ2luYXRpb25FbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvUGx1Z2luRW50aXR5LmQudHMiLCIuLi8uLi9zcmMvc2hhcmVkL2VudGl0aWVzL1JvbGVFbnRpdHkuZC50cyIsIi4uLy4uL3NyYy9zaGFyZWQvZW50aXRpZXMvVXNlckVudGl0eS5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBFbnRyeSB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IGFueTtcbiAgICBzb3VyY2U6IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbmZpZ1NlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBlbnRyaWVzOiBNYXA8c3RyaW5nLCBFbnRyeT47XG4gICAgY29uc3RydWN0b3IoKTtcbiAgICBsaXN0KCk6IEVudHJ5W107XG4gICAgcGFyc2VWYWx1ZSh2YWx1ZTogYW55KTogYW55O1xuICAgIGxvYWRGcm9tUmVjb3JkKHJlY29yZDogUmVjb3JkPHN0cmluZywgYW55Piwgc291cmNlPzogc3RyaW5nKTogdm9pZDtcbiAgICBsb2FkRnJvbUVudHJpZXMoZW50cmllczogW3N0cmluZywgYW55XVtdLCBzb3VyY2U/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHRvUmVjb3JkKCk6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgaGFzKGtleTogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBnZXQ8VCA9IGFueSB8IHVuZGVmaW5lZD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSk6IFQ7XG4gICAgZ2V0T25lPFQgPSBhbnkgfCB1bmRlZmluZWQ+KGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU/OiBhbnkpOiBUO1xuICAgIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSwgc291cmNlPzogc3RyaW5nKTogdm9pZDtcbiAgICB1bnNldChrZXk6IHN0cmluZyk6IHZvaWQ7XG4gICAgY2xlYXIoKTogdm9pZDtcbiAgICBkdW1wKCk6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5leHBvcnQge307XG4iLCJ0eXBlIENvbnN0cnVjdG9yPFQgPSBvYmplY3Q+ID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVDtcbnR5cGUgRW50cnlLZXkgPSBzdHJpbmcgfCBzeW1ib2wgfCBDb25zdHJ1Y3RvcjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRhaW5lclNlcnZpY2Uge1xuICAgIHByaXZhdGUgZW50cmllcztcbiAgICBsb2FkRnJvbVJlY29yZChyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkO1xuICAgIHRvUmVjb3JkKCk6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgcHJpdmF0ZSBnZXRLZXk7XG4gICAgc2V0KHBheWxvYWQ6IEVudHJ5S2V5LCB2YWx1ZTogYW55KTogdGhpcztcbiAgICBoYXMocGF5bG9hZDogRW50cnlLZXkpOiBib29sZWFuO1xuICAgIGdldDxUPihwYXlsb2FkOiBFbnRyeUtleSk6IFQ7XG4gICAgdW5zZXQocGF5bG9hZDogRW50cnlLZXkpOiB2b2lkO1xuICAgIHNpbmdsZXRvbjxUPihjbGFzc0NvbnN0cnVjdG9yOiBDb25zdHJ1Y3RvcjxUPik6IFQ7XG4gICAgbG9hZChlbnRyaWVzOiBSZWNvcmQ8YW55LCBhbnk+KTogdm9pZDtcbiAgICBwcm94eTxUID0gdW5rbm93bj4oa2V5OiBFbnRyeUtleSk6IFQ7XG4gICAga2V5cygpOiBFbnRyeUtleVtdO1xufVxuZXhwb3J0IHt9O1xuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9nZ2VyU2VydmljZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGluZm8obWVzc2FnZTogc3RyaW5nLCBtZXRhPzogYW55KTogdm9pZDtcbiAgICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIG1ldGE/OiBhbnkpOiB2b2lkO1xuICAgIHdhcm4obWVzc2FnZTogc3RyaW5nLCBtZXRhPzogYW55KTogdm9pZDtcbiAgICBlcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvciwgbWV0YT86IGFueSk6IHZvaWQ7XG4gICAgY2hpbGQob3B0aW9uczogYW55KTogTG9nZ2VyU2VydmljZTtcbn1cbiIsImltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJy4vTG9nZ2VyU2VydmljZS50cyc7XG5leHBvcnQgaW50ZXJmYWNlIEVtbWl0dGVyTGlzdGVuZXJPcHRpb25zIHtcbiAgICBldmVudDogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBFbW1pdHRlckxpc3RlbmVyIHtcbiAgICAoZGF0YTogYW55LCBvcHRpb25zOiBFbW1pdHRlckxpc3RlbmVyT3B0aW9ucyk6IHZvaWQ7XG59XG5pbnRlcmZhY2UgRW1taXR0ZXJIYW5kbGVyIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGV2ZW50OiBzdHJpbmc7XG4gICAgbGlzdGVuZXI6IEVtbWl0dGVyTGlzdGVuZXI7XG4gICAgb3JpZ2luYWxMaXN0ZW5lcj86IEVtbWl0dGVyTGlzdGVuZXI7XG59XG5pbnRlcmZhY2UgT25PcHRpb25zIHtcbiAgICBpZD86IHN0cmluZztcbiAgICB1bmlxdWU/OiBib29sZWFuO1xufVxuaW50ZXJmYWNlIE9uRGVib3VuY2VPcHRpb25zIGV4dGVuZHMgT25PcHRpb25zIHtcbiAgICBkZWJvdW5jZT86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW1taXR0ZXJTZXJ2aWNlT3B0aW9ucyB7XG4gICAgZGVidWc/OiBib29sZWFuO1xuICAgIGxvZ2dlcj86IExvZ2dlclNlcnZpY2U7XG59XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbW1pdHRlclNlcnZpY2U8RXZlbnRzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgaGFuZGxlcnM6IEVtbWl0dGVySGFuZGxlcltdO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zPzogRW1taXR0ZXJTZXJ2aWNlT3B0aW9ucyk7XG4gICAgc3RhdGljIGNyZWF0ZTxFdmVudHMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ob3B0aW9ucz86IEVtbWl0dGVyU2VydmljZU9wdGlvbnMpOiBFbW1pdHRlclNlcnZpY2U8RXZlbnRzPjtcbiAgICBzZXREZWJ1ZyhkZWJ1ZzogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0TG9nZ2VyKGxvZ2dlcjogTG9nZ2VyU2VydmljZSk6IHZvaWQ7XG4gICAgb248SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnQ6IEssIGxpc3RlbmVyOiAoYXJnczogRXZlbnRzW0tdKSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyO1xuICAgIG9uKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoYXJnczogYW55KSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyO1xuICAgIG9uY2U8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnQ6IEssIGxpc3RlbmVyOiAoYXJnczogRXZlbnRzW0tdKSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyO1xuICAgIG9uY2UoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6IChhcmdzOiBhbnkpID0+IHZvaWQsIG9wdGlvbnM/OiBPbk9wdGlvbnMpOiBFbW1pdHRlckhhbmRsZXI7XG4gICAgb25EZWJvdW5jZTxLIGV4dGVuZHMga2V5b2YgRXZlbnRzPihldmVudDogSywgbGlzdGVuZXI6IChhcmdzOiBFdmVudHNbS10pID0+IHZvaWQsIG9wdGlvbnM/OiBPbkRlYm91bmNlT3B0aW9ucyk6IEVtbWl0dGVySGFuZGxlcjtcbiAgICBvbkRlYm91bmNlKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoYXJnczogYW55KSA9PiB2b2lkLCBvcHRpb25zPzogT25EZWJvdW5jZU9wdGlvbnMpOiBFbW1pdHRlckhhbmRsZXI7XG4gICAgb25BbnlPZjxLIGV4dGVuZHMga2V5b2YgRXZlbnRzPihldmVudHM6IEtbXSwgbGlzdGVuZXI6IChhcmdzOiBFdmVudHNbS10pID0+IHZvaWQsIG9wdGlvbnM/OiBPbk9wdGlvbnMpOiBFbW1pdHRlckhhbmRsZXJbXTtcbiAgICBvbkFueU9mKGV2ZW50czogc3RyaW5nW10sIGxpc3RlbmVyOiAoYXJnczogYW55KSA9PiB2b2lkLCBvcHRpb25zPzogT25PcHRpb25zKTogRW1taXR0ZXJIYW5kbGVyW107XG4gICAgb2ZmKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiBFbW1pdHRlckhhbmRsZXJbJ2xpc3RlbmVyJ10pOiB2b2lkO1xuICAgIGVtaXQ8SyBleHRlbmRzIGtleW9mIEV2ZW50cz4oZXZlbnQ6IEssIGFyZ3M6IEV2ZW50c1tLXSk6IHZvaWQ7XG4gICAgZW1pdChldmVudDogc3RyaW5nLCBhcmdzPzogYW55KTogdm9pZDtcbiAgICBlbWl0QW5kV2FpdDxLIGV4dGVuZHMga2V5b2YgRXZlbnRzPihldmVudDogSywgYXJnczogRXZlbnRzW0tdKTogUHJvbWlzZTx2b2lkPjtcbiAgICBlbWl0QW5kV2FpdChldmVudDogc3RyaW5nLCBhcmdzPzogYW55KTogUHJvbWlzZTx2b2lkPjtcbiAgICBsaXN0KCk6IEVtbWl0dGVySGFuZGxlcltdO1xuICAgIGxpc3RCeUV2ZW50KGV2ZW50OiBzdHJpbmcpOiBFbW1pdHRlckhhbmRsZXJbXTtcbiAgICByZW1vdmUocGF5bG9hZDogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkO1xuICAgIGNsZWFyKCk6IHZvaWQ7XG4gICAgaGFzSGFuZGxlcnMoKTogYm9vbGVhbjtcbn1cbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIExpZmVjeWNsZUhvb2sge1xuICAgIGhvb2tfaWQ6IHN0cmluZztcbiAgICBob29rX2FsaWFzZXM/OiBzdHJpbmdbXTtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBzdWJob29rcz86IExpZmVjeWNsZUhvb2tbXTtcbiAgICByZWdpc3RlcigpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGxvYWQoKTogUHJvbWlzZTx2b2lkPjtcbiAgICBib290KCk6IFByb21pc2U8dm9pZD47XG4gICAgc2h1dGRvd24oKTogUHJvbWlzZTx2b2lkPjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgVXNlIHJlZ2lzdGVyICovXG4gICAgb25SZWdpc3RlcigpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2UgbG9hZCAqL1xuICAgIG9uTG9hZCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2UgYm9vdCAqL1xuICAgIG9uQm9vdCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgIC8qKiBAZGVwcmVjYXRlZCBVc2Ugc2h1dGRvd24gKi9cbiAgICBvblNodXRkb3duKCk6IFByb21pc2U8dm9pZD47XG59XG4iLCJleHBvcnQgdHlwZSBVbmlvblRvSW50ZXJzZWN0aW9uPFU+ID0gKFUgZXh0ZW5kcyBhbnkgPyAoazogVSkgPT4gdm9pZCA6IG5ldmVyKSBleHRlbmRzIChrOiBpbmZlciBJKSA9PiB2b2lkID8gSSA6IG5ldmVyO1xuZXhwb3J0IHR5cGUgUGFydGlhbEJ5PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IE9taXQ8VCwgSz4gJiBQYXJ0aWFsPFBpY2s8VCwgSz4+O1xuZXhwb3J0IHR5cGUgUHVibGljRGF0YTxUPiA9IHtcbiAgICBbSyBpbiBrZXlvZiBUIGFzIFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogS106IFRbS107XG59O1xuIiwiaW1wb3J0IHR5cGUgeyBVbmlvblRvSW50ZXJzZWN0aW9uIH0gZnJvbSAnLi90eXBpbmcudHMnO1xuZXhwb3J0IHR5cGUgQW55Q2xhc3MgPSBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG5leHBvcnQgdHlwZSBDb25zdHJ1Y3RvcjxUID0ge30+ID0gbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVDtcbmV4cG9ydCB0eXBlIE1peGluPFQ+ID0gKGJhc2U6IENvbnN0cnVjdG9yKSA9PiBDb25zdHJ1Y3RvcjxUPjtcbi8qKlxuICogQ29tcG9zZXMgbXVsdGlwbGUgbWl4aW5zIGludG8gYSBzaW5nbGUgY2xhc3MgdGhhdCBjYW4gYmUgZXh0ZW5kZWQuXG4gKiBBbGxvd3MgZm9yIG11bHRpcGxlIGluaGVyaXRhbmNlLWxpa2UgYmVoYXZpb3IgYnkgYXBwbHlpbmcgbWl4aW5zIHNlcXVlbnRpYWxseS5cbiAqXG4gKiBAcGFyYW0gbWl4aW5zIC0gQXJyYXkgb2YgbWl4aW4gZnVuY3Rpb25zIHRvIGNvbXBvc2VcbiAqIEByZXR1cm5zIEEgY2xhc3MgY29uc3RydWN0b3IgdGhhdCBpbmNsdWRlcyBhbGwgbWl4aW4gZnVuY3Rpb25hbGl0eVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBVc2VyIGV4dGVuZHMgY29tcG9zZShUaW1lc3RhbXAsIFNvZnREZWxldGUpIHtcbiAqICAgY29uc3RydWN0b3IocHVibGljIG5hbWU6IHN0cmluZykge1xuICogICAgIHN1cGVyKClcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGNvbXBvc2U8TSBleHRlbmRzIEFycmF5PChiYXNlOiBDb25zdHJ1Y3Rvcjxhbnk+KSA9PiBDb25zdHJ1Y3Rvcjxhbnk+Pj4oLi4ubWl4aW5zOiBNKTogVW5pb25Ub0ludGVyc2VjdGlvbjxSZXR1cm5UeXBlPE1bbnVtYmVyXT4+O1xuLyoqXG4gKiBBbHRlcm5hdGl2ZSBjb21wb3NlIGZ1bmN0aW9uIHRoYXQgc3RhcnRzIHdpdGggYSBiYXNlIGNsYXNzXG4gKlxuICogQHBhcmFtIGJhc2VDbGFzcyAtIFRoZSBiYXNlIGNsYXNzIHRvIHN0YXJ0IHdpdGhcbiAqIEBwYXJhbSBtaXhpbnMgLSBBcnJheSBvZiBtaXhpbiBmdW5jdGlvbnMgdG8gYXBwbHlcbiAqIEByZXR1cm5zIEEgY2xhc3MgY29uc3RydWN0b3IgdGhhdCBleHRlbmRzIHRoZSBiYXNlIGNsYXNzIHdpdGggYWxsIG1peGluIGZ1bmN0aW9uYWxpdHlcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY2xhc3MgVXNlciBleHRlbmRzIGNvbXBvc2VXaXRoKEJhc2VFbnRpdHksIFRpbWVzdGFtcCwgU29mdERlbGV0ZSkge1xuICogICBjb25zdHJ1Y3RvcihwdWJsaWMgbmFtZTogc3RyaW5nKSB7XG4gKiAgICAgc3VwZXIoKVxuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY29tcG9zZVdpdGg8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3RvciwgTSBleHRlbmRzIEFycmF5PChiYXNlOiBDb25zdHJ1Y3RvcikgPT4gQ29uc3RydWN0b3I8YW55Pj4+KGJhc2VDbGFzczogVEJhc2UsIC4uLm1peGluczogTSk6IFRCYXNlICYgVW5pb25Ub0ludGVyc2VjdGlvbjxSZXR1cm5UeXBlPE1bbnVtYmVyXT4+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gbWl4aW48VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oU291cmNlOiBUQmFzZSk6IDxUVGFyZ2V0IGV4dGVuZHMgQ29uc3RydWN0b3I+KFRhcmdldDogVFRhcmdldCkgPT4gVFRhcmdldCAmIFRCYXNlO1xuIiwiaW1wb3J0IExvZ2dlclNlcnZpY2UgZnJvbSAnLi9Mb2dnZXJTZXJ2aWNlLnRzJztcbmltcG9ydCBMaWZlY3ljbGVIb29rIGZyb20gJyNzaGFyZWQvZW50aXRpZXMvTGlmZWN5Y2xlSG9vay50cyc7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbnR5cGUgTGlmZWN5Y2xlTWV0aG9kID0gJ3JlZ2lzdGVyJyB8ICdsb2FkJyB8ICdib290JyB8ICdzaHV0ZG93bic7XG5pbnRlcmZhY2UgTGlzdE9wdGlvbnMge1xuICAgIGluY2x1ZGU/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICBleGNsdWRlPzogc3RyaW5nIHwgc3RyaW5nW107XG59XG5leHBvcnQgaW50ZXJmYWNlIExpZmVjeWNsZVNlcnZpY2VPcHRpb25zIHtcbiAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgaG9va3M/OiBNYXA8c3RyaW5nLCBMaWZlY3ljbGVIb29rPjtcbiAgICBsb2dnZXI/OiBMb2dnZXJTZXJ2aWNlO1xuICAgIG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yLCBjb250ZXh0OiB7XG4gICAgICAgIGhvb2tJZDogc3RyaW5nO1xuICAgICAgICBtZXRob2Q6IExpZmVjeWNsZU1ldGhvZDtcbiAgICB9KSA9PiB2b2lkO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTGlmZWN5Y2xlU2VydmljZSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGhvb2tzOiBNYXA8c3RyaW5nLCBMaWZlY3ljbGVIb29rPjtcbiAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2U7XG4gICAgZGVidWc6IGJvb2xlYW47XG4gICAgY29uc3RydWN0b3IoZGF0YT86IExpZmVjeWNsZVNlcnZpY2VPcHRpb25zKTtcbiAgICBzZXRPbkVycm9yKGhhbmRsZXI6IFJlcXVpcmVkPExpZmVjeWNsZVNlcnZpY2VPcHRpb25zPlsnb25FcnJvciddKTogdm9pZDtcbiAgICBvbkVycm9yKGVycm9yOiBFcnJvciwgY29udGV4dDoge1xuICAgICAgICBob29rSWQ6IHN0cmluZztcbiAgICAgICAgbWV0aG9kOiBMaWZlY3ljbGVNZXRob2Q7XG4gICAgfSk6IHZvaWQ7XG4gICAgbWFwQWxpYXNlcyhhcmdzOiBzdHJpbmdbXSk6IHN0cmluZ1tdO1xuICAgIGxpc3Qob3B0aW9ucz86IExpc3RPcHRpb25zKTogTGlmZWN5Y2xlSG9va1tdO1xuICAgIGFkZCguLi5wYXlsb2FkOiAoTGlmZWN5Y2xlSG9vayB8IENvbnN0cnVjdG9yPExpZmVjeWNsZUhvb2s+KVtdKTogdm9pZDtcbiAgICBlbWl0TWV0aG9kKG1ldGhvZDogTGlmZWN5Y2xlTWV0aG9kLCBvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGVtaXQocGF5bG9hZDogTGlmZWN5Y2xlTWV0aG9kIHwgTGlmZWN5Y2xlTWV0aG9kW10sIG9wdGlvbnM/OiBMaXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgb24obWV0aG9kOiBMaWZlY3ljbGVNZXRob2QsIGhhbmRsZXI6ICgpID0+IFByb21pc2U8dm9pZD4pOiB2b2lkO1xuICAgIHJlZ2lzdGVyKG9wdGlvbnM/OiBMaXN0T3B0aW9ucyk6IFByb21pc2U8dm9pZD47XG4gICAgbG9hZChvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGJvb3Qob3B0aW9ucz86IExpc3RPcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcbiAgICBzaHV0ZG93bihvcHRpb25zPzogTGlzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuICAgIGNsZWFyKCk6IHZvaWQ7XG59XG5leHBvcnQge307XG4iLCJpbXBvcnQgTG9nZ2VyU2VydmljZSBmcm9tICcuL0xvZ2dlclNlcnZpY2UudHMnO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHJhbnNsYXRvclNlcnZpY2Uge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBlbnRyaWVzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIGxvY2FsZUxvYWRlcnM6IE1hcDxzdHJpbmcsICgpID0+IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4+O1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBjYWNoZTogTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG4gICAgY29uc3RydWN0b3IoZGF0YT86IFBhcnRpYWw8VHJhbnNsYXRvclNlcnZpY2U+KTtcbiAgICBnZXQgbG9jYWxlcygpOiBzdHJpbmdbXTtcbiAgICBsaXN0KCk6IHtcbiAgICAgICAga2V5OiBzdHJpbmc7XG4gICAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgfVtdO1xuICAgIGdldEVudHJpZXMobG9jYWxlOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xuICAgIGxvYWQobG9jYWxlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xuICAgIHQoa2V5OiBzdHJpbmcsIGFyZ3M/OiBhbnkpOiBzdHJpbmc7XG4gICAgZGF0ZShkYXRhOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlKTogc3RyaW5nO1xuICAgIGRhdGV0aW1lKGRhdGE6IHN0cmluZyB8IG51bWJlciB8IERhdGUpOiBzdHJpbmc7XG59XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBVcGxvYWRTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgc2luZ2xlKG5hbWU6IHN0cmluZyk6IHZvaWQ7XG4gICAgbXVsdGlwbGUobmFtZTogc3RyaW5nKTogdm9pZDtcbn1cbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBudW1iZXI6ICgpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxhbnksIG51bWJlcj4sIHYuSW50ZWdlckFjdGlvbjxudW1iZXIsIHVuZGVmaW5lZD5dPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGJvb2xlYW46ICgpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQm9vbGVhblNjaGVtYTx1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nIHwgYm9vbGVhbiwgYm9vbGVhbj5dPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGRhdGU6ICgpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuRGF0ZVNjaGVtYTx1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nIHwgRGF0ZSwgRGF0ZT4sIHYuVHJhbnNmb3JtQWN0aW9uPERhdGUsIHN0cmluZyB8IERhdGU+XT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBkYXRldGltZTogKCkgPT4gdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5EYXRlU2NoZW1hPHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBEYXRlLCBzdHJpbmcgfCBEYXRlPl0+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgYXJyYXk6IDxUIGV4dGVuZHMgdi5CYXNlU2NoZW1hPGFueSwgYW55LCBhbnk+PihzY2hlbWE/OiBUKSA9PiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlVuaW9uU2NoZW1hPFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkFycmF5U2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBzdHJpbmdbXSwgc3RyaW5nW10+LCB2LkFycmF5U2NoZW1hPFQsIHVuZGVmaW5lZD5dPjtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IGFycmF5TnVtYmVyOiAoKSA9PiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlVuaW9uU2NoZW1hPFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkFycmF5U2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBzdHJpbmdbXSwgc3RyaW5nW10+LCB2LkFycmF5U2NoZW1hPHYuQmFzZVNjaGVtYTxhbnksIGFueSwgYW55PiwgdW5kZWZpbmVkPl0+LCB2LlRyYW5zZm9ybUFjdGlvbjxhbnlbXSwgbnVtYmVyW10+XT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCBvYmplY3Q6ICgpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuUmVjb3JkU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQW55U2NoZW1hLCB1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nIHwge1xuICAgIFt4OiBzdHJpbmddOiBhbnk7XG59LCB7XG4gICAgW3g6IHN0cmluZ106IGFueTtcbn0+LCB2LlRyYW5zZm9ybUFjdGlvbjx7XG4gICAgW3g6IHN0cmluZ106IGFueTtcbn0sIFJlY29yZDxzdHJpbmcsIGFueT4+XT47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiB1cmwoKTogdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5SZWNvcmRTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5BbnlTY2hlbWEsIHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCB7XG4gICAgW3g6IHN0cmluZ106IGFueTtcbn0sIHtcbiAgICBbeDogc3RyaW5nXTogYW55O1xufT4sIHYuVHJhbnNmb3JtQWN0aW9uPHtcbiAgICBbeDogc3RyaW5nXTogYW55O1xufSwgUmVjb3JkPHN0cmluZywgYW55Pj5dPjtcbmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSB1cmwge1xuICAgIHZhciBudW1iZXI6ICgpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxhbnksIG51bWJlcj4sIHYuSW50ZWdlckFjdGlvbjxudW1iZXIsIHVuZGVmaW5lZD5dPjtcbiAgICB2YXIgYm9vbGVhbjogKCkgPT4gdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5Cb29sZWFuU2NoZW1hPHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBib29sZWFuLCBib29sZWFuPl0+O1xuICAgIHZhciBkYXRlOiAoKSA9PiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlVuaW9uU2NoZW1hPFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkRhdGVTY2hlbWE8dW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZyB8IERhdGUsIERhdGU+LCB2LlRyYW5zZm9ybUFjdGlvbjxEYXRlLCBzdHJpbmcgfCBEYXRlPl0+O1xuICAgIHZhciBkYXRldGltZTogKCkgPT4gdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5EYXRlU2NoZW1hPHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBEYXRlLCBzdHJpbmcgfCBEYXRlPl0+O1xuICAgIHZhciBhcnJheTogPFQgZXh0ZW5kcyB2LkJhc2VTY2hlbWE8YW55LCBhbnksIGFueT4+KHNjaGVtYT86IFQpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQXJyYXlTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZyB8IHN0cmluZ1tdLCBzdHJpbmdbXT4sIHYuQXJyYXlTY2hlbWE8VCwgdW5kZWZpbmVkPl0+O1xuICAgIHZhciBhcnJheU51bWJlcjogKCkgPT4gdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5BcnJheVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nIHwgc3RyaW5nW10sIHN0cmluZ1tdPiwgdi5BcnJheVNjaGVtYTx2LkJhc2VTY2hlbWE8YW55LCBhbnksIGFueT4sIHVuZGVmaW5lZD5dPiwgdi5UcmFuc2Zvcm1BY3Rpb248YW55W10sIG51bWJlcltdPl0+O1xuICAgIHZhciBvYmplY3Q6ICgpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuUmVjb3JkU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQW55U2NoZW1hLCB1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nIHwge1xuICAgICAgICBbeDogc3RyaW5nXTogYW55O1xuICAgIH0sIHtcbiAgICAgICAgW3g6IHN0cmluZ106IGFueTtcbiAgICB9Piwgdi5UcmFuc2Zvcm1BY3Rpb248e1xuICAgICAgICBbeDogc3RyaW5nXTogYW55O1xuICAgIH0sIFJlY29yZDxzdHJpbmcsIGFueT4+XT47XG59XG4iLCJpbXBvcnQgKiBhcyB2IGZyb20gJ3ZhbGlib3QnO1xuZXhwb3J0IGRlY2xhcmUgY29uc3Qga2V5VmFsdWU6ICgpID0+IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj5dPjtcbiIsImltcG9ydCAqIGFzIHYgZnJvbSAndmFsaWJvdCc7XG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25QYXJhbXMge1xuICAgIG1heExpbWl0PzogbnVtYmVyO1xuICAgIG9yZGVyRmllbGRzPzogc3RyaW5nW107XG59XG5leHBvcnQgZGVjbGFyZSBjb25zdCBiYXNlOiAob3B0aW9ucz86IFBhZ2luYXRpb25QYXJhbXMpID0+IHYuT2JqZWN0U2NoZW1hPHtcbiAgICByZWFkb25seSBwYWdlOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxhbnksIG51bWJlcj4sIHYuSW50ZWdlckFjdGlvbjxudW1iZXIsIHVuZGVmaW5lZD5dPiwgMT47XG4gICAgcmVhZG9ubHkgbGltaXQ6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPGFueSwgbnVtYmVyPiwgdi5JbnRlZ2VyQWN0aW9uPG51bWJlciwgdW5kZWZpbmVkPl0+LCBudW1iZXI+O1xuICAgIHJlYWRvbmx5IG9yZGVyQnk6IHYuTnVsbGlzaFNjaGVtYTx2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlVuaW9uU2NoZW1hPFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkFycmF5U2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBzdHJpbmdbXSwgc3RyaW5nW10+LCB2LkFycmF5U2NoZW1hPHYuUGlja2xpc3RTY2hlbWE8c3RyaW5nW10sIHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dPiB8IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQXJyYXlTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZyB8IHN0cmluZ1tdLCBzdHJpbmdbXT4sIHYuQXJyYXlTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPl0+LCByZWFkb25seSBbXT47XG4gICAgcmVhZG9ubHkgb3JkZXJEaXJlY3Rpb246IHYuTnVsbGlzaFNjaGVtYTx2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlVuaW9uU2NoZW1hPFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkFycmF5U2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBzdHJpbmdbXSwgc3RyaW5nW10+LCB2LkFycmF5U2NoZW1hPHYuVW5pb25TY2hlbWE8W3YuTGl0ZXJhbFNjaGVtYTxcImFzY1wiLCB1bmRlZmluZWQ+LCB2LkxpdGVyYWxTY2hlbWE8XCJkZXNjXCIsIHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB1bmRlZmluZWQ+XT4sIHJlYWRvbmx5IFtdPjtcbn0sIHVuZGVmaW5lZD47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBwYWdpbmF0aW9uKG9wdGlvbnM/OiBQYWdpbmF0aW9uUGFyYW1zKTogdi5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IHBhZ2U6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPGFueSwgbnVtYmVyPiwgdi5JbnRlZ2VyQWN0aW9uPG51bWJlciwgdW5kZWZpbmVkPl0+LCAxPjtcbiAgICByZWFkb25seSBsaW1pdDogdi5PcHRpb25hbFNjaGVtYTx2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlVuaW9uU2NoZW1hPFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248YW55LCBudW1iZXI+LCB2LkludGVnZXJBY3Rpb248bnVtYmVyLCB1bmRlZmluZWQ+XT4sIG51bWJlcj47XG4gICAgcmVhZG9ubHkgb3JkZXJCeTogdi5OdWxsaXNoU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQXJyYXlTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZyB8IHN0cmluZ1tdLCBzdHJpbmdbXT4sIHYuQXJyYXlTY2hlbWE8di5QaWNrbGlzdFNjaGVtYTxzdHJpbmdbXSwgdW5kZWZpbmVkPiwgdW5kZWZpbmVkPl0+IHwgdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5BcnJheVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nIHwgc3RyaW5nW10sIHN0cmluZ1tdPiwgdi5BcnJheVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+XT4sIHJlYWRvbmx5IFtdPjtcbiAgICByZWFkb25seSBvcmRlckRpcmVjdGlvbjogdi5OdWxsaXNoU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQXJyYXlTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZyB8IHN0cmluZ1tdLCBzdHJpbmdbXT4sIHYuQXJyYXlTY2hlbWE8di5VbmlvblNjaGVtYTxbdi5MaXRlcmFsU2NoZW1hPFwiYXNjXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcImRlc2NcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dPiwgcmVhZG9ubHkgW10+O1xufSwgdW5kZWZpbmVkPjtcbmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBwYWdpbmF0aW9uIHtcbiAgICB2YXIgYmFzZTogKG9wdGlvbnM/OiBQYWdpbmF0aW9uUGFyYW1zKSA9PiB2Lk9iamVjdFNjaGVtYTx7XG4gICAgICAgIHJlYWRvbmx5IHBhZ2U6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPGFueSwgbnVtYmVyPiwgdi5JbnRlZ2VyQWN0aW9uPG51bWJlciwgdW5kZWZpbmVkPl0+LCAxPjtcbiAgICAgICAgcmVhZG9ubHkgbGltaXQ6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPGFueSwgbnVtYmVyPiwgdi5JbnRlZ2VyQWN0aW9uPG51bWJlciwgdW5kZWZpbmVkPl0+LCBudW1iZXI+O1xuICAgICAgICByZWFkb25seSBvcmRlckJ5OiB2Lk51bGxpc2hTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5VbmlvblNjaGVtYTxbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5BcnJheVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+XSwgdW5kZWZpbmVkPiwgdi5UcmFuc2Zvcm1BY3Rpb248c3RyaW5nIHwgc3RyaW5nW10sIHN0cmluZ1tdPiwgdi5BcnJheVNjaGVtYTx2LlBpY2tsaXN0U2NoZW1hPHN0cmluZ1tdLCB1bmRlZmluZWQ+LCB1bmRlZmluZWQ+XT4gfCB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlVuaW9uU2NoZW1hPFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkFycmF5U2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dLCB1bmRlZmluZWQ+LCB2LlRyYW5zZm9ybUFjdGlvbjxzdHJpbmcgfCBzdHJpbmdbXSwgc3RyaW5nW10+LCB2LkFycmF5U2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dPiwgcmVhZG9ubHkgW10+O1xuICAgICAgICByZWFkb25seSBvcmRlckRpcmVjdGlvbjogdi5OdWxsaXNoU2NoZW1hPHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuVW5pb25TY2hlbWE8W3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuQXJyYXlTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHYuVHJhbnNmb3JtQWN0aW9uPHN0cmluZyB8IHN0cmluZ1tdLCBzdHJpbmdbXT4sIHYuQXJyYXlTY2hlbWE8di5VbmlvblNjaGVtYTxbdi5MaXRlcmFsU2NoZW1hPFwiYXNjXCIsIHVuZGVmaW5lZD4sIHYuTGl0ZXJhbFNjaGVtYTxcImRlc2NcIiwgdW5kZWZpbmVkPl0sIHVuZGVmaW5lZD4sIHVuZGVmaW5lZD5dPiwgcmVhZG9ubHkgW10+O1xuICAgIH0sIHVuZGVmaW5lZD47XG59XG4iLCJleHBvcnQgKiBmcm9tICcuL3VybFZhbGlkYXRvci50cyc7XG5leHBvcnQgKiBmcm9tICcuL2tleVZhbHVlVmFsaWRhdG9yLnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnaW5hdGlvblZhbGlkYXRvci50cyc7XG4iLCJpbXBvcnQgKiBhcyB2IGZyb20gJ3ZhbGlib3QnO1xuaW1wb3J0ICogYXMgZXh0cmFzIGZyb20gJyNzaGFyZWQvdmFsaWRhdG9ycy9pbmRleC50cyc7XG5leHBvcnQgdHlwZSBWYWxpYm90ID0gdHlwZW9mIHYgJiB7XG4gICAgZXh0cmFzOiB0eXBlb2YgZXh0cmFzO1xufTtcbmV4cG9ydCB0eXBlIFZhbGlib3RTY2hlbWEgPSB2LkJhc2VTY2hlbWE8dW5rbm93biwgdW5rbm93biwgdi5CYXNlSXNzdWU8dW5rbm93bj4+O1xuZXhwb3J0IHR5cGUgVmFsaWJvdE9iamVjdFNjaGVtYSA9IHYuT2JqZWN0U2NoZW1hPGFueSwgYW55PjtcbmV4cG9ydCB0eXBlIFZhbGlib3RTY2hlbWFBc3luYyA9IHYuQmFzZVNjaGVtYUFzeW5jPHVua25vd24sIHVua25vd24sIHYuQmFzZUlzc3VlPHVua25vd24+PjtcbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdG9yQ2FsbGJhY2s8VCBleHRlbmRzIFZhbGlib3RTY2hlbWE+IHtcbiAgICAoX3Y6IFZhbGlib3QpOiBUO1xufVxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yQ2FsbGJhY2tBc3luYzxUIGV4dGVuZHMgVmFsaWJvdFNjaGVtYUFzeW5jPiA9IHtcbiAgICAoX3Y6IFZhbGlib3QpOiBUO1xufTtcbmV4cG9ydCB0eXBlIFZhbGlkYXRvclJlc3VsdDxUIGV4dGVuZHMgdi5CYXNlU2NoZW1hPGFueSwgYW55LCBhbnk+PiA9IHYuSW5mZXJPdXRwdXQ8VD47XG5leHBvcnQgdHlwZSBWYWxpZGF0ZVBheWxvYWQ8VCBleHRlbmRzIFZhbGlib3RTY2hlbWEgPSBWYWxpYm90U2NoZW1hPiA9IFZhbGlkYXRvckNhbGxiYWNrPFQ+IHwgVDtcbmV4cG9ydCB0eXBlIFZhbGlkYXRlUmVzdWx0PFQgZXh0ZW5kcyBWYWxpZGF0ZVBheWxvYWQ+ID0gVCBleHRlbmRzIFZhbGlib3RTY2hlbWEgPyB2LkluZmVyT3V0cHV0PFQ+IDogVCBleHRlbmRzIFZhbGlkYXRvckNhbGxiYWNrPGluZmVyIFU+ID8gdi5JbmZlck91dHB1dDxVPiA6IHVua25vd247XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWYWxpZGF0b3JTZXJ2aWNlIHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgdjogVmFsaWJvdDtcbiAgICBjcmVhdGU8VCBleHRlbmRzIFZhbGlib3RTY2hlbWE+KGNiOiBWYWxpZGF0b3JDYWxsYmFjazxUPik6IFQ7XG4gICAgdmFsaWRhdGU8VCBleHRlbmRzIFZhbGlib3RTY2hlbWE+KHBheWxvYWQ6IGFueSwgY2I6IFZhbGlkYXRlUGF5bG9hZDxUPik6IHYuSW5mZXJPdXRwdXQ8VD47XG4gICAgdmFsaWRhdGVBc3luYzxUIGV4dGVuZHMgVmFsaWJvdFNjaGVtYUFzeW5jPihwYXlsb2FkOiBhbnksIGNiOiBWYWxpZGF0b3JDYWxsYmFja0FzeW5jPFQ+IHwgVCk6IFByb21pc2U8di5JbmZlck91dHB1dDxUPj47XG4gICAgaXNWYWxpZDxUIGV4dGVuZHMgVmFsaWJvdFNjaGVtYT4ocGF5bG9hZDogYW55LCBjYjogVmFsaWRhdGVQYXlsb2FkPFQ+KTogYm9vbGVhbjtcbn1cbiIsImV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGNyZWF0ZUlkKHByZWZpeD86IHN0cmluZyk6IHN0cmluZztcbiIsImV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGZsYXR0ZW4ob2JqOiBhbnksIHByZWZpeD86IHN0cmluZywgcmVzPzogYW55KTogUmVjb3JkPHN0cmluZywgYW55PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHVuZmxhdHRlbihvYmo6IGFueSk6IFJlY29yZDxzdHJpbmcsIGFueT47XG4iLCJleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBmb3JtYXRCeXRlcyhieXRlczogbnVtYmVyLCBkZWNpbWFscz86IG51bWJlcik6IHN0cmluZztcbiIsImludGVyZmFjZSBUcnllciB7XG4gICAgKC4uLmFyZ3M6IGFueVtdKTogYW55O1xufVxuaW50ZXJmYWNlIFRyeWVyQXN5bmMge1xuICAgICguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8YW55PiB8IGFueTtcbn1cbnR5cGUgVHJ5Q2F0Y2hSZXN1bHQ8VCBleHRlbmRzIFRyeWVyPiA9IFtudWxsLCBSZXR1cm5UeXBlPFQ+XSB8IFtFcnJvciwgbnVsbF07XG50eXBlIFRyeUNhdGNoQXN5bmNSZXN1bHQ8VCBleHRlbmRzIFRyeWVyQXN5bmM+ID0gW251bGwsIEF3YWl0ZWQ8UmV0dXJuVHlwZTxUPj5dIHwgW0Vycm9yLCBudWxsXTtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHRyeUNhdGNoPFQgZXh0ZW5kcyBUcnllckFzeW5jPih0cnllcjogVCk6IFByb21pc2U8VHJ5Q2F0Y2hBc3luY1Jlc3VsdDxUPj47XG5leHBvcnQgZGVjbGFyZSBuYW1lc3BhY2UgdHJ5Q2F0Y2gge1xuICAgIHZhciBzeW5jOiA8VCBleHRlbmRzIFRyeWVyPih0cnllcjogVCkgPT4gVHJ5Q2F0Y2hSZXN1bHQ8VD47XG59XG5leHBvcnQge307XG4iLCJleHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBtYXRjaFBhdGgocGF0dGVybjogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuO1xuIiwiZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gcGFyc2VVcmxQYXJhbXMocm91dGVQYXRoOiBzdHJpbmcsIHJlcXVlc3RQYXRoOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gcGFyc2VVcmxRdWVyeShyZXF1ZXN0UGF0aDogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgYW55PjtcbiIsImV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIHNhZmVKc29uUGFyc2U8VD4oanNvblN0cmluZzogc3RyaW5nKTogVCB8IG51bGw7XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBzYWZlSnNvblN0cmluZ2lmeTxUPih2YWx1ZTogVCk6IHN0cmluZyB8IG51bGw7XG4iLCJpbXBvcnQgdHlwZSB7IFZhbGlkYXRvclJlc3VsdCB9IGZyb20gJyNzaGFyZWQvc2VydmljZXMvVmFsaWRhdG9yU2VydmljZS50cyc7XG5leHBvcnQgdHlwZSBEYXNoYm9hcmRNZXRhU2NoZW1hID0gVmFsaWRhdG9yUmVzdWx0PFJldHVyblR5cGU8dHlwZW9mIGRhc2hib2FyZE1ldGFTY2hlbWE+PjtcbmV4cG9ydCBkZWNsYXJlIGZ1bmN0aW9uIGRhc2hib2FyZE1ldGFTY2hlbWEoKTogaW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IGlkOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGRhc2hib2FyZF9pZDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBuYW1lOiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHZhbHVlOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bGxhYmxlU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG59LCB1bmRlZmluZWQ+O1xuZXhwb3J0IGRlY2xhcmUgbmFtZXNwYWNlIGRhc2hib2FyZE1ldGFTY2hlbWEge1xuICAgIHZhciBjcmVhdGU6IE9taXQ8aW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RTY2hlbWE8e1xuICAgICAgICByZWFkb25seSBpZDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgZGFzaGJvYXJkX2lkOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSBuYW1lOiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSB2YWx1ZTogaW1wb3J0KFwidmFsaWJvdFwiKS5OdWxsYWJsZVNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIH0sIHVuZGVmaW5lZD4sIFwifnR5cGVzXCIgfCBcIn5ydW5cIiB8IFwifnN0YW5kYXJkXCIgfCBcImVudHJpZXNcIj4gJiB7XG4gICAgICAgIHJlYWRvbmx5IGVudHJpZXM6IFBpY2s8e1xuICAgICAgICAgICAgcmVhZG9ubHkgaWQ6IGltcG9ydChcInZhbGlib3RcIikuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBkYXNoYm9hcmRfaWQ6IGltcG9ydChcInZhbGlib3RcIikuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBuYW1lOiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgdmFsdWU6IGltcG9ydChcInZhbGlib3RcIikuTnVsbGFibGVTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgfSwgXCJ2YWx1ZVwiIHwgXCJkYXNoYm9hcmRfaWRcIiB8IFwibmFtZVwiPjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+c3RhbmRhcmRcIjogaW1wb3J0KFwidmFsaWJvdFwiKS5TdGFuZGFyZFByb3BzPHtcbiAgICAgICAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICAgICAgICBkYXNoYm9hcmRfaWQ6IG51bWJlcjtcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgICAgICAgIGRhc2hib2FyZF9pZDogbnVtYmVyO1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICB9PjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+cnVuXCI6IChkYXRhc2V0OiBpbXBvcnQoXCJ2YWxpYm90XCIpLlVua25vd25EYXRhc2V0LCBjb25maWc6IGltcG9ydChcInZhbGlib3RcIikuQ29uZmlnPGltcG9ydChcInZhbGlib3RcIikuQmFzZUlzc3VlPHVua25vd24+PikgPT4gaW1wb3J0KFwidmFsaWJvdFwiKS5PdXRwdXREYXRhc2V0PHtcbiAgICAgICAgICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgICAgICAgICBkYXNoYm9hcmRfaWQ6IG51bWJlcjtcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgfSwgaW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RJc3N1ZSB8IGltcG9ydChcInZhbGlib3RcIikuTnVtYmVySXNzdWUgfCBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ0lzc3VlPjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+dHlwZXNcIj86IHtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlucHV0OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICBkYXNoYm9hcmRfaWQ6IG51bWJlcjtcbiAgICAgICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZG9ubHkgb3V0cHV0OiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICBkYXNoYm9hcmRfaWQ6IG51bWJlcjtcbiAgICAgICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZG9ubHkgaXNzdWU6IGltcG9ydChcInZhbGlib3RcIikuT2JqZWN0SXNzdWUgfCBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bWJlcklzc3VlIHwgaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdJc3N1ZTtcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHZhciB1cGRhdGU6IE9taXQ8T21pdDxpbXBvcnQoXCJ2YWxpYm90XCIpLk9iamVjdFNjaGVtYTx7XG4gICAgICAgIHJlYWRvbmx5IGlkOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSBkYXNoYm9hcmRfaWQ6IGltcG9ydChcInZhbGlib3RcIikuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IG5hbWU6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IHZhbHVlOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bGxhYmxlU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgfSwgdW5kZWZpbmVkPiwgXCJ+dHlwZXNcIiB8IFwifnJ1blwiIHwgXCJ+c3RhbmRhcmRcIiB8IFwiZW50cmllc1wiPiAmIHtcbiAgICAgICAgcmVhZG9ubHkgZW50cmllczogUGljazx7XG4gICAgICAgICAgICByZWFkb25seSBpZDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IGRhc2hib2FyZF9pZDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IG5hbWU6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSB2YWx1ZTogaW1wb3J0KFwidmFsaWJvdFwiKS5OdWxsYWJsZVNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICB9LCBcInZhbHVlXCIgfCBcImRhc2hib2FyZF9pZFwiIHwgXCJuYW1lXCI+O1xuICAgICAgICByZWFkb25seSBcIn5zdGFuZGFyZFwiOiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0YW5kYXJkUHJvcHM8e1xuICAgICAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgICAgICAgIGRhc2hib2FyZF9pZDogbnVtYmVyO1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgICAgICAgZGFzaGJvYXJkX2lkOiBudW1iZXI7XG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIH0+O1xuICAgICAgICByZWFkb25seSBcIn5ydW5cIjogKGRhdGFzZXQ6IGltcG9ydChcInZhbGlib3RcIikuVW5rbm93bkRhdGFzZXQsIGNvbmZpZzogaW1wb3J0KFwidmFsaWJvdFwiKS5Db25maWc8aW1wb3J0KFwidmFsaWJvdFwiKS5CYXNlSXNzdWU8dW5rbm93bj4+KSA9PiBpbXBvcnQoXCJ2YWxpYm90XCIpLk91dHB1dERhdGFzZXQ8e1xuICAgICAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgICAgICAgIGRhc2hib2FyZF9pZDogbnVtYmVyO1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICB9LCBpbXBvcnQoXCJ2YWxpYm90XCIpLk9iamVjdElzc3VlIHwgaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJJc3N1ZSB8IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nSXNzdWU+O1xuICAgICAgICByZWFkb25seSBcIn50eXBlc1wiPzoge1xuICAgICAgICAgICAgcmVhZG9ubHkgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGRhc2hib2FyZF9pZDogbnVtYmVyO1xuICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkb25seSBvdXRwdXQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGRhc2hib2FyZF9pZDogbnVtYmVyO1xuICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkb25seSBpc3N1ZTogaW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RJc3N1ZSB8IGltcG9ydChcInZhbGlib3RcIikuTnVtYmVySXNzdWUgfCBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ0lzc3VlO1xuICAgICAgICB9O1xuICAgIH0sIFwifnR5cGVzXCIgfCBcIn5ydW5cIiB8IFwifnN0YW5kYXJkXCIgfCBcImVudHJpZXNcIj4gJiB7XG4gICAgICAgIHJlYWRvbmx5IGVudHJpZXM6IHtcbiAgICAgICAgICAgIHJlYWRvbmx5IHZhbHVlOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuTnVsbGFibGVTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IGRhc2hib2FyZF9pZDogaW1wb3J0KFwidmFsaWJvdFwiKS5PcHRpb25hbFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLk51bWJlclNjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgbmFtZTogaW1wb3J0KFwidmFsaWJvdFwiKS5PcHRpb25hbFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICB9O1xuICAgICAgICByZWFkb25seSBcIn5zdGFuZGFyZFwiOiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0YW5kYXJkUHJvcHM8e1xuICAgICAgICAgICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBkYXNoYm9hcmRfaWQ/OiBudW1iZXI7XG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICB2YWx1ZT86IHN0cmluZztcbiAgICAgICAgICAgIGRhc2hib2FyZF9pZD86IG51bWJlcjtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgIH0+O1xuICAgICAgICByZWFkb25seSBcIn5ydW5cIjogKGRhdGFzZXQ6IGltcG9ydChcInZhbGlib3RcIikuVW5rbm93bkRhdGFzZXQsIGNvbmZpZzogaW1wb3J0KFwidmFsaWJvdFwiKS5Db25maWc8aW1wb3J0KFwidmFsaWJvdFwiKS5CYXNlSXNzdWU8dW5rbm93bj4+KSA9PiBpbXBvcnQoXCJ2YWxpYm90XCIpLk91dHB1dERhdGFzZXQ8e1xuICAgICAgICAgICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBkYXNoYm9hcmRfaWQ/OiBudW1iZXI7XG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICB9LCBpbXBvcnQoXCJ2YWxpYm90XCIpLk9iamVjdElzc3VlIHwgaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJJc3N1ZSB8IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nSXNzdWU+O1xuICAgICAgICByZWFkb25seSBcIn50eXBlc1wiPzoge1xuICAgICAgICAgICAgcmVhZG9ubHkgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICBkYXNoYm9hcmRfaWQ/OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkb25seSBvdXRwdXQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICBkYXNoYm9hcmRfaWQ/OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkb25seSBpc3N1ZTogaW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RJc3N1ZSB8IGltcG9ydChcInZhbGlib3RcIikuTnVtYmVySXNzdWUgfCBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ0lzc3VlO1xuICAgICAgICB9O1xuICAgIH07XG59XG4iLCJpbXBvcnQgdHlwZSB7IFZhbGlkYXRvclJlc3VsdCB9IGZyb20gJyNzaGFyZWQvc2VydmljZXMvVmFsaWRhdG9yU2VydmljZS50cyc7XG5leHBvcnQgdHlwZSBEYXNoYm9hcmRTY2hlbWEgPSBWYWxpZGF0b3JSZXN1bHQ8UmV0dXJuVHlwZTx0eXBlb2YgZGFzaGJvYXJkU2NoZW1hPj47XG5leHBvcnQgZGVjbGFyZSBmdW5jdGlvbiBkYXNoYm9hcmRTY2hlbWEoKTogaW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IGlkOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IG5hbWU6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IGltcG9ydChcInZhbGlib3RcIikuTnVsbGFibGVTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBjcmVhdGVkX2F0OiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgZGVsZXRlZF9hdDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdWxsYWJsZVNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IG1ldGFzOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuUmVjb3JkU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIGltcG9ydChcInZhbGlib3RcIikuQW55U2NoZW1hLCB1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xufSwgdW5kZWZpbmVkPjtcbmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBkYXNoYm9hcmRTY2hlbWEge1xuICAgIHZhciBjcmVhdGU6IE9taXQ8aW1wb3J0KFwidmFsaWJvdFwiKS5PYmplY3RTY2hlbWE8e1xuICAgICAgICByZWFkb25seSBpZDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgbmFtZTogaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgZGVzY3JpcHRpb246IGltcG9ydChcInZhbGlib3RcIikuTnVsbGFibGVTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgY3JlYXRlZF9hdDogaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgdXBkYXRlZF9hdDogaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgZGVsZXRlZF9hdDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdWxsYWJsZVNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSBtZXRhczogaW1wb3J0KFwidmFsaWJvdFwiKS5PcHRpb25hbFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlJlY29yZFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCBpbXBvcnQoXCJ2YWxpYm90XCIpLkFueVNjaGVtYSwgdW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICB9LCB1bmRlZmluZWQ+LCBcIn50eXBlc1wiIHwgXCJ+cnVuXCIgfCBcIn5zdGFuZGFyZFwiIHwgXCJlbnRyaWVzXCI+ICYge1xuICAgICAgICByZWFkb25seSBlbnRyaWVzOiBQaWNrPHtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlkOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgbmFtZTogaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bGxhYmxlU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBjcmVhdGVkX2F0OiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgdXBkYXRlZF9hdDogaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IGRlbGV0ZWRfYXQ6IGltcG9ydChcInZhbGlib3RcIikuTnVsbGFibGVTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IG1ldGFzOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuUmVjb3JkU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIGltcG9ydChcInZhbGlib3RcIikuQW55U2NoZW1hLCB1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICB9LCBcIm5hbWVcIiB8IFwiZGVzY3JpcHRpb25cIj47XG4gICAgICAgIHJlYWRvbmx5IFwifnN0YW5kYXJkXCI6IGltcG9ydChcInZhbGlib3RcIikuU3RhbmRhcmRQcm9wczx7XG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICB9PjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+cnVuXCI6IChkYXRhc2V0OiBpbXBvcnQoXCJ2YWxpYm90XCIpLlVua25vd25EYXRhc2V0LCBjb25maWc6IGltcG9ydChcInZhbGlib3RcIikuQ29uZmlnPGltcG9ydChcInZhbGlib3RcIikuQmFzZUlzc3VlPHVua25vd24+PikgPT4gaW1wb3J0KFwidmFsaWJvdFwiKS5PdXRwdXREYXRhc2V0PHtcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAgIH0sIGltcG9ydChcInZhbGlib3RcIikuT2JqZWN0SXNzdWUgfCBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ0lzc3VlPjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+dHlwZXNcIj86IHtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlucHV0OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZG9ubHkgb3V0cHV0OiB7XG4gICAgICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZG9ubHkgaXNzdWU6IGltcG9ydChcInZhbGlib3RcIikuT2JqZWN0SXNzdWUgfCBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ0lzc3VlO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgdmFyIHVwZGF0ZTogT21pdDxPbWl0PGltcG9ydChcInZhbGlib3RcIikuT2JqZWN0U2NoZW1hPHtcbiAgICAgICAgcmVhZG9ubHkgaWQ6IGltcG9ydChcInZhbGlib3RcIikuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IG5hbWU6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bGxhYmxlU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IGNyZWF0ZWRfYXQ6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IGRlbGV0ZWRfYXQ6IGltcG9ydChcInZhbGlib3RcIikuTnVsbGFibGVTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgbWV0YXM6IGltcG9ydChcInZhbGlib3RcIikuT3B0aW9uYWxTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5SZWNvcmRTY2hlbWE8aW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgaW1wb3J0KFwidmFsaWJvdFwiKS5BbnlTY2hlbWEsIHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgfSwgdW5kZWZpbmVkPiwgXCJ+dHlwZXNcIiB8IFwifnJ1blwiIHwgXCJ+c3RhbmRhcmRcIiB8IFwiZW50cmllc1wiPiAmIHtcbiAgICAgICAgcmVhZG9ubHkgZW50cmllczogUGljazx7XG4gICAgICAgICAgICByZWFkb25seSBpZDogaW1wb3J0KFwidmFsaWJvdFwiKS5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IG5hbWU6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBkZXNjcmlwdGlvbjogaW1wb3J0KFwidmFsaWJvdFwiKS5OdWxsYWJsZVNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgY3JlYXRlZF9hdDogaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBkZWxldGVkX2F0OiBpbXBvcnQoXCJ2YWxpYm90XCIpLk51bGxhYmxlU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBtZXRhczogaW1wb3J0KFwidmFsaWJvdFwiKS5PcHRpb25hbFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlJlY29yZFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCBpbXBvcnQoXCJ2YWxpYm90XCIpLkFueVNjaGVtYSwgdW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgfSwgXCJuYW1lXCIgfCBcImRlc2NyaXB0aW9uXCI+O1xuICAgICAgICByZWFkb25seSBcIn5zdGFuZGFyZFwiOiBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0YW5kYXJkUHJvcHM8e1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICAgICAgfT47XG4gICAgICAgIHJlYWRvbmx5IFwifnJ1blwiOiAoZGF0YXNldDogaW1wb3J0KFwidmFsaWJvdFwiKS5Vbmtub3duRGF0YXNldCwgY29uZmlnOiBpbXBvcnQoXCJ2YWxpYm90XCIpLkNvbmZpZzxpbXBvcnQoXCJ2YWxpYm90XCIpLkJhc2VJc3N1ZTx1bmtub3duPj4pID0+IGltcG9ydChcInZhbGlib3RcIikuT3V0cHV0RGF0YXNldDx7XG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICB9LCBpbXBvcnQoXCJ2YWxpYm90XCIpLk9iamVjdElzc3VlIHwgaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdJc3N1ZT47XG4gICAgICAgIHJlYWRvbmx5IFwifnR5cGVzXCI/OiB7XG4gICAgICAgICAgICByZWFkb25seSBpbnB1dDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRvbmx5IG91dHB1dDoge1xuICAgICAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlzc3VlOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9iamVjdElzc3VlIHwgaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdJc3N1ZTtcbiAgICAgICAgfTtcbiAgICB9LCBcIn50eXBlc1wiIHwgXCJ+cnVuXCIgfCBcIn5zdGFuZGFyZFwiIHwgXCJlbnRyaWVzXCI+ICYge1xuICAgICAgICByZWFkb25seSBlbnRyaWVzOiB7XG4gICAgICAgICAgICByZWFkb25seSBuYW1lOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9wdGlvbmFsU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBkZXNjcmlwdGlvbjogaW1wb3J0KFwidmFsaWJvdFwiKS5PcHRpb25hbFNjaGVtYTxpbXBvcnQoXCJ2YWxpYm90XCIpLk51bGxhYmxlU2NoZW1hPGltcG9ydChcInZhbGlib3RcIikuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgIH07XG4gICAgICAgIHJlYWRvbmx5IFwifnN0YW5kYXJkXCI6IGltcG9ydChcInZhbGlib3RcIikuU3RhbmRhcmRQcm9wczx7XG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgICAgfT47XG4gICAgICAgIHJlYWRvbmx5IFwifnJ1blwiOiAoZGF0YXNldDogaW1wb3J0KFwidmFsaWJvdFwiKS5Vbmtub3duRGF0YXNldCwgY29uZmlnOiBpbXBvcnQoXCJ2YWxpYm90XCIpLkNvbmZpZzxpbXBvcnQoXCJ2YWxpYm90XCIpLkJhc2VJc3N1ZTx1bmtub3duPj4pID0+IGltcG9ydChcInZhbGlib3RcIikuT3V0cHV0RGF0YXNldDx7XG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgICAgIH0sIGltcG9ydChcInZhbGlib3RcIikuT2JqZWN0SXNzdWUgfCBpbXBvcnQoXCJ2YWxpYm90XCIpLlN0cmluZ0lzc3VlPjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+dHlwZXNcIj86IHtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlucHV0OiB7XG4gICAgICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkb25seSBvdXRwdXQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlzc3VlOiBpbXBvcnQoXCJ2YWxpYm90XCIpLk9iamVjdElzc3VlIHwgaW1wb3J0KFwidmFsaWJvdFwiKS5TdHJpbmdJc3N1ZTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuIiwiaW1wb3J0ICogYXMgdiBmcm9tICd2YWxpYm90JztcbmV4cG9ydCB0eXBlIFBlcm1pc3Npb25Bc3NpZ25tZW50ID0gdi5JbmZlck91dHB1dDx0eXBlb2YgcGVybWlzc2lvbkFzc2lnbm1lbnRTY2hlbWE+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgcGVybWlzc2lvbkFzc2lnbm1lbnRTY2hlbWE6IHYuT2JqZWN0U2NoZW1hPHtcbiAgICByZWFkb25seSBpZDogdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBwZXJtaXNzaW9uX2lkOiB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGFzc2lnbmFibGVfdHlwZTogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBhc3NpZ25hYmxlX2lkOiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGNyZWF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgdXBkYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbn0sIHVuZGVmaW5lZD47XG4iLCJpbXBvcnQgKiBhcyB2IGZyb20gJ3ZhbGlib3QnO1xuZXhwb3J0IHR5cGUgUGVybWlzc2lvbiA9IHYuSW5mZXJPdXRwdXQ8dHlwZW9mIHBlcm1pc3Npb25TY2hlbWE+O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgcGVybWlzc2lvblNjaGVtYTogdi5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IGlkOiB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IG5hbWU6IHYuTnVsbGFibGVTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBkZXNjcmlwdGlvbjogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGFjdGlvbjogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBzdWJqZWN0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGNvbmRpdGlvbnM6IHYuTnVsbGFibGVTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBjcmVhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgZXhwaXJlc19hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbn0sIHVuZGVmaW5lZD47XG4iLCJpbXBvcnQgKiBhcyB2IGZyb20gJ3ZhbGlib3QnO1xuZXhwb3J0IHR5cGUgVG9rZW4gPSB2LkluZmVyT3V0cHV0PHR5cGVvZiB0b2tlblNjaGVtYT47XG5leHBvcnQgZGVjbGFyZSBjb25zdCB0b2tlblNjaGVtYTogdi5PYmplY3RTY2hlbWE8e1xuICAgIHJlYWRvbmx5IGlkOiB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IG5hbWU6IHYuTnVsbGFibGVTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICByZWFkb25seSB0eXBlOiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IHVzZXJfaWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgdG9rZW46IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgY3JlYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSB1cGRhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGV4cGlyZXNfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG59LCB1bmRlZmluZWQ+O1xuIiwiaW1wb3J0ICogYXMgdiBmcm9tICd2YWxpYm90JztcbmRlY2xhcmUgZnVuY3Rpb24gdXNlclNjaGVtYSgpOiB2Lk9iamVjdFNjaGVtYTx7XG4gICAgcmVhZG9ubHkgaWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgbmFtZTogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGVtYWlsOiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkVtYWlsQWN0aW9uPHN0cmluZywgdW5kZWZpbmVkPl0+O1xuICAgIHJlYWRvbmx5IHBhc3N3b3JkOiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2Lk1pbkxlbmd0aEFjdGlvbjxzdHJpbmcsIDYsIHVuZGVmaW5lZD5dPjtcbiAgICByZWFkb25seSB1c2VybmFtZTogdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5SZWdleEFjdGlvbjxzdHJpbmcsIHVuZGVmaW5lZD5dPjtcbiAgICByZWFkb25seSB2ZXJpZmllZF9hdDogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgIHJlYWRvbmx5IGNyZWF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgcmVhZG9ubHkgdXBkYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICByZWFkb25seSBkZWxldGVkX2F0OiB2Lk51bGxhYmxlU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG59LCB1bmRlZmluZWQ+O1xuZGVjbGFyZSBuYW1lc3BhY2UgdXNlclNjaGVtYSB7XG4gICAgdmFyIGNyZWF0ZTogKCkgPT4gT21pdDx2Lk9iamVjdFNjaGVtYTx7XG4gICAgICAgIHJlYWRvbmx5IGlkOiB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSBuYW1lOiB2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IGVtYWlsOiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkVtYWlsQWN0aW9uPHN0cmluZywgdW5kZWZpbmVkPl0+O1xuICAgICAgICByZWFkb25seSBwYXNzd29yZDogdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5NaW5MZW5ndGhBY3Rpb248c3RyaW5nLCA2LCB1bmRlZmluZWQ+XT47XG4gICAgICAgIHJlYWRvbmx5IHVzZXJuYW1lOiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LlJlZ2V4QWN0aW9uPHN0cmluZywgdW5kZWZpbmVkPl0+O1xuICAgICAgICByZWFkb25seSB2ZXJpZmllZF9hdDogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSBjcmVhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSB1cGRhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICByZWFkb25seSBkZWxldGVkX2F0OiB2Lk51bGxhYmxlU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgfSwgdW5kZWZpbmVkPiwgXCJ+dHlwZXNcIiB8IFwifnJ1blwiIHwgXCJ+c3RhbmRhcmRcIiB8IFwiZW50cmllc1wiPiAmIHtcbiAgICAgICAgcmVhZG9ubHkgZW50cmllczogT21pdDx7XG4gICAgICAgICAgICByZWFkb25seSBpZDogdi5OdW1iZXJTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IG5hbWU6IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IGVtYWlsOiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkVtYWlsQWN0aW9uPHN0cmluZywgdW5kZWZpbmVkPl0+O1xuICAgICAgICAgICAgcmVhZG9ubHkgcGFzc3dvcmQ6IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuTWluTGVuZ3RoQWN0aW9uPHN0cmluZywgNiwgdW5kZWZpbmVkPl0+O1xuICAgICAgICAgICAgcmVhZG9ubHkgdXNlcm5hbWU6IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuUmVnZXhBY3Rpb248c3RyaW5nLCB1bmRlZmluZWQ+XT47XG4gICAgICAgICAgICByZWFkb25seSB2ZXJpZmllZF9hdDogdi5OdWxsYWJsZVNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgY3JlYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBkZWxldGVkX2F0OiB2Lk51bGxhYmxlU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgIH0sIFwiaWRcIiB8IFwiZGVsZXRlZF9hdFwiIHwgXCJjcmVhdGVkX2F0XCIgfCBcInVwZGF0ZWRfYXRcIiB8IFwidmVyaWZpZWRfYXRcIj47XG4gICAgICAgIHJlYWRvbmx5IFwifnN0YW5kYXJkXCI6IHYuU3RhbmRhcmRQcm9wczx7XG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgICAgICAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgICAgICAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgICAgICB9PjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+cnVuXCI6IChkYXRhc2V0OiB2LlVua25vd25EYXRhc2V0LCBjb25maWc6IHYuQ29uZmlnPHYuQmFzZUlzc3VlPHVua25vd24+PikgPT4gdi5PdXRwdXREYXRhc2V0PHtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICAgICAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICAgIH0sIHYuT2JqZWN0SXNzdWUgfCB2LlN0cmluZ0lzc3VlIHwgdi5FbWFpbElzc3VlPHN0cmluZz4gfCB2Lk1pbkxlbmd0aElzc3VlPHN0cmluZywgNj4gfCB2LlJlZ2V4SXNzdWU8c3RyaW5nPj47XG4gICAgICAgIHJlYWRvbmx5IFwifnR5cGVzXCI/OiB7XG4gICAgICAgICAgICByZWFkb25seSBpbnB1dDoge1xuICAgICAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgZW1haWw6IHN0cmluZztcbiAgICAgICAgICAgICAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZG9ubHkgb3V0cHV0OiB7XG4gICAgICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkb25seSBpc3N1ZTogdi5PYmplY3RJc3N1ZSB8IHYuU3RyaW5nSXNzdWUgfCB2LkVtYWlsSXNzdWU8c3RyaW5nPiB8IHYuTWluTGVuZ3RoSXNzdWU8c3RyaW5nLCA2PiB8IHYuUmVnZXhJc3N1ZTxzdHJpbmc+O1xuICAgICAgICB9O1xuICAgIH07XG4gICAgdmFyIHVwZGF0ZTogKCkgPT4gT21pdDxPbWl0PHYuT2JqZWN0U2NoZW1hPHtcbiAgICAgICAgcmVhZG9ubHkgaWQ6IHYuTnVtYmVyU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IG5hbWU6IHYuT3B0aW9uYWxTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgcmVhZG9ubHkgZW1haWw6IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuRW1haWxBY3Rpb248c3RyaW5nLCB1bmRlZmluZWQ+XT47XG4gICAgICAgIHJlYWRvbmx5IHBhc3N3b3JkOiB2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2Lk1pbkxlbmd0aEFjdGlvbjxzdHJpbmcsIDYsIHVuZGVmaW5lZD5dPjtcbiAgICAgICAgcmVhZG9ubHkgdXNlcm5hbWU6IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuUmVnZXhBY3Rpb248c3RyaW5nLCB1bmRlZmluZWQ+XT47XG4gICAgICAgIHJlYWRvbmx5IHZlcmlmaWVkX2F0OiB2Lk51bGxhYmxlU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IGNyZWF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IHVwZGF0ZWRfYXQ6IHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD47XG4gICAgICAgIHJlYWRvbmx5IGRlbGV0ZWRfYXQ6IHYuTnVsbGFibGVTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICB9LCB1bmRlZmluZWQ+LCBcIn50eXBlc1wiIHwgXCJ+cnVuXCIgfCBcIn5zdGFuZGFyZFwiIHwgXCJlbnRyaWVzXCI+ICYge1xuICAgICAgICByZWFkb25seSBlbnRyaWVzOiBPbWl0PHtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlkOiB2Lk51bWJlclNjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgbmFtZTogdi5PcHRpb25hbFNjaGVtYTx2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgZW1haWw6IHYuU2NoZW1hV2l0aFBpcGU8cmVhZG9ubHkgW3YuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHYuRW1haWxBY3Rpb248c3RyaW5nLCB1bmRlZmluZWQ+XT47XG4gICAgICAgICAgICByZWFkb25seSBwYXNzd29yZDogdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5NaW5MZW5ndGhBY3Rpb248c3RyaW5nLCA2LCB1bmRlZmluZWQ+XT47XG4gICAgICAgICAgICByZWFkb25seSB1c2VybmFtZTogdi5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5SZWdleEFjdGlvbjxzdHJpbmcsIHVuZGVmaW5lZD5dPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IHZlcmlmaWVkX2F0OiB2Lk51bGxhYmxlU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBjcmVhdGVkX2F0OiB2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgdXBkYXRlZF9hdDogdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPjtcbiAgICAgICAgICAgIHJlYWRvbmx5IGRlbGV0ZWRfYXQ6IHYuTnVsbGFibGVTY2hlbWE8di5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdW5kZWZpbmVkPjtcbiAgICAgICAgfSwgXCJpZFwiIHwgXCJkZWxldGVkX2F0XCIgfCBcImNyZWF0ZWRfYXRcIiB8IFwidXBkYXRlZF9hdFwiIHwgXCJ2ZXJpZmllZF9hdFwiPjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+c3RhbmRhcmRcIjogdi5TdGFuZGFyZFByb3BzPHtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICAgICAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICAgICAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgICAgIH0+O1xuICAgICAgICByZWFkb25seSBcIn5ydW5cIjogKGRhdGFzZXQ6IHYuVW5rbm93bkRhdGFzZXQsIGNvbmZpZzogdi5Db25maWc8di5CYXNlSXNzdWU8dW5rbm93bj4+KSA9PiB2Lk91dHB1dERhdGFzZXQ8e1xuICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAgICAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgICAgICAgICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICAgICAgfSwgdi5PYmplY3RJc3N1ZSB8IHYuU3RyaW5nSXNzdWUgfCB2LkVtYWlsSXNzdWU8c3RyaW5nPiB8IHYuTWluTGVuZ3RoSXNzdWU8c3RyaW5nLCA2PiB8IHYuUmVnZXhJc3N1ZTxzdHJpbmc+PjtcbiAgICAgICAgcmVhZG9ubHkgXCJ+dHlwZXNcIj86IHtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlucHV0OiB7XG4gICAgICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgdXNlcm5hbWU6IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWFkb25seSBvdXRwdXQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICB1c2VybmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRvbmx5IGlzc3VlOiB2Lk9iamVjdElzc3VlIHwgdi5TdHJpbmdJc3N1ZSB8IHYuRW1haWxJc3N1ZTxzdHJpbmc+IHwgdi5NaW5MZW5ndGhJc3N1ZTxzdHJpbmcsIDY+IHwgdi5SZWdleElzc3VlPHN0cmluZz47XG4gICAgICAgIH07XG4gICAgfSwgXCJ+dHlwZXNcIiB8IFwifnJ1blwiIHwgXCJ+c3RhbmRhcmRcIiB8IFwiZW50cmllc1wiPiAmIHtcbiAgICAgICAgcmVhZG9ubHkgZW50cmllczoge1xuICAgICAgICAgICAgcmVhZG9ubHkgbmFtZTogdi5PcHRpb25hbFNjaGVtYTx2Lk9wdGlvbmFsU2NoZW1hPHYuU3RyaW5nU2NoZW1hPHVuZGVmaW5lZD4sIHVuZGVmaW5lZD4sIHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSBlbWFpbDogdi5PcHRpb25hbFNjaGVtYTx2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LkVtYWlsQWN0aW9uPHN0cmluZywgdW5kZWZpbmVkPl0+LCB1bmRlZmluZWQ+O1xuICAgICAgICAgICAgcmVhZG9ubHkgcGFzc3dvcmQ6IHYuT3B0aW9uYWxTY2hlbWE8di5TY2hlbWFXaXRoUGlwZTxyZWFkb25seSBbdi5TdHJpbmdTY2hlbWE8dW5kZWZpbmVkPiwgdi5NaW5MZW5ndGhBY3Rpb248c3RyaW5nLCA2LCB1bmRlZmluZWQ+XT4sIHVuZGVmaW5lZD47XG4gICAgICAgICAgICByZWFkb25seSB1c2VybmFtZTogdi5PcHRpb25hbFNjaGVtYTx2LlNjaGVtYVdpdGhQaXBlPHJlYWRvbmx5IFt2LlN0cmluZ1NjaGVtYTx1bmRlZmluZWQ+LCB2LlJlZ2V4QWN0aW9uPHN0cmluZywgdW5kZWZpbmVkPl0+LCB1bmRlZmluZWQ+O1xuICAgICAgICB9O1xuICAgICAgICByZWFkb25seSBcIn5zdGFuZGFyZFwiOiB2LlN0YW5kYXJkUHJvcHM8e1xuICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIGVtYWlsPzogc3RyaW5nO1xuICAgICAgICAgICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgICAgICAgICB1c2VybmFtZT86IHN0cmluZztcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgbmFtZT86IHN0cmluZztcbiAgICAgICAgICAgIGVtYWlsPzogc3RyaW5nO1xuICAgICAgICAgICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgICAgICAgICB1c2VybmFtZT86IHN0cmluZztcbiAgICAgICAgfT47XG4gICAgICAgIHJlYWRvbmx5IFwifnJ1blwiOiAoZGF0YXNldDogdi5Vbmtub3duRGF0YXNldCwgY29uZmlnOiB2LkNvbmZpZzx2LkJhc2VJc3N1ZTx1bmtub3duPj4pID0+IHYuT3V0cHV0RGF0YXNldDx7XG4gICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgZW1haWw/OiBzdHJpbmc7XG4gICAgICAgICAgICBwYXNzd29yZD86IHN0cmluZztcbiAgICAgICAgICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgICAgICB9LCB2Lk9iamVjdElzc3VlIHwgdi5TdHJpbmdJc3N1ZSB8IHYuRW1haWxJc3N1ZTxzdHJpbmc+IHwgdi5NaW5MZW5ndGhJc3N1ZTxzdHJpbmcsIDY+IHwgdi5SZWdleElzc3VlPHN0cmluZz4+O1xuICAgICAgICByZWFkb25seSBcIn50eXBlc1wiPzoge1xuICAgICAgICAgICAgcmVhZG9ubHkgaW5wdXQ6IHtcbiAgICAgICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGVtYWlsPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIHBhc3N3b3JkPzogc3RyaW5nO1xuICAgICAgICAgICAgICAgIHVzZXJuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRvbmx5IG91dHB1dDoge1xuICAgICAgICAgICAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgZW1haWw/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgdXNlcm5hbWU/OiBzdHJpbmc7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZG9ubHkgaXNzdWU6IHYuT2JqZWN0SXNzdWUgfCB2LlN0cmluZ0lzc3VlIHwgdi5FbWFpbElzc3VlPHN0cmluZz4gfCB2Lk1pbkxlbmd0aElzc3VlPHN0cmluZywgNj4gfCB2LlJlZ2V4SXNzdWU8c3RyaW5nPjtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlclNjaGVtYTtcbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhc2VFeGNlcHRpb24gZXh0ZW5kcyBFcnJvciB7XG4gICAgc3RhdHVzOiBudW1iZXI7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBzdGF0dXM/OiBudW1iZXIpO1xuICAgIHN0YXRpYyBmcm9tRXJyb3IoZXJyb3I6IEVycm9yKTogQmFzZUV4Y2VwdGlvbjtcbn1cbiIsImltcG9ydCBCYXNlRXhjZXB0aW9uIGZyb20gJy4vQmFzZUV4Y2VwdGlvbi50cyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaGVsbEV4Y2VwdGlvbiBleHRlbmRzIEJhc2VFeGNlcHRpb24ge1xuICAgIG91dHB1dDogc3RyaW5nO1xuICAgIGJpbjogc3RyaW5nO1xuICAgIGFyZ3M6IHN0cmluZ1tdO1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgb3V0cHV0OiBzdHJpbmcsIGJpbjogc3RyaW5nLCBhcmdzOiBzdHJpbmdbXSk7XG59XG4iLCJpbXBvcnQgVmFsaWRhdG9yU2VydmljZSBmcm9tIFwiLi4vc2VydmljZXMvVmFsaWRhdG9yU2VydmljZVwiO1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgdmFsaWRhdG9yOiBWYWxpZGF0b3JTZXJ2aWNlO1xuZXhwb3J0IGRlZmF1bHQgdmFsaWRhdG9yO1xuIiwiaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gJyNzaGFyZWQvdXRpbHMvY29tcG9zZS50cyc7XG5pbnRlcmZhY2UgQ3JlYXRlQmFzZUVudGl0eU9wdGlvbnMge1xuICAgIHBhcnNlPzogKGRhdGE6IGFueSkgPT4gYW55O1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gY3JlYXRlQmFzZUVudGl0eShvcHRpb25zPzogQ3JlYXRlQmFzZUVudGl0eU9wdGlvbnMpOiA8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpID0+IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgVEJhc2U7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBCYXNlRW50aXR5PFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I+KEJhc2U6IFRCYXNlKToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBUQmFzZTtcbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIHsgQ29uc3RydWN0b3IgfSBmcm9tICcjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHMnO1xuZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lciB7XG4gICAgZXZlbnQ6IHN0cmluZztcbiAgICBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkO1xufVxuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gZW1pdEhvb2soY29uc3RydWN0b3I6IGFueSwgZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+O1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gb25Ib29rKGNvbnN0cnVjdG9yOiBhbnksIGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuZXhwb3J0IGRlY2xhcmUgZnVuY3Rpb24gSG9va3NTdGF0aWM8VEJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oQmFzZTogVEJhc2UpOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHt9O1xuICAgIGxpc3RlbmVyczogQXJyYXk8KC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkPjtcbiAgICBvbihldmVudDogc3RyaW5nLCBsaXN0ZW5lcjogKC4uLmFyZ3M6IGFueVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgICBlbWl0KGV2ZW50OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPjtcbn0gJiBUQmFzZTtcbmV4cG9ydCBkZWNsYXJlIG5hbWVzcGFjZSBIb29rc1N0YXRpYyB7XG4gICAgdmFyIGVtaXQ6IHR5cGVvZiBlbWl0SG9vaztcbiAgICB2YXIgb246IHR5cGVvZiBvbkhvb2s7XG59XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb29rczxUQmFzZSBleHRlbmRzIENvbnN0cnVjdG9yPihCYXNlOiBUQmFzZSk6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBsaXN0ZW5lcnM6IExpc3RlbmVyW107XG4gICAgICAgIG9uKGV2ZW50OiBzdHJpbmcsIGxpc3RlbmVyOiAoLi4uYXJnczogYW55W10pID0+IHZvaWQpOiB2b2lkO1xuICAgICAgICBvZmYoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI6ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCk6IHZvaWQ7XG4gICAgICAgIGVtaXQoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkO1xuICAgICAgICBlbWl0QXN5bmMoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+O1xuICAgIH07XG59ICYgVEJhc2U7XG4iLCJpbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSAnI3NoYXJlZC91dGlscy9jb21wb3NlLnRzJztcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNvZnREZWxldGVNaXhpbjxUIGV4dGVuZHMgQ29uc3RydWN0b3I+KGJhc2U6IFQpOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn0gJiBUO1xuIiwiaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gJyNzaGFyZWQvdXRpbHMvY29tcG9zZS50cyc7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBUaW1lc3RhbXBNaXhpbjxUIGV4dGVuZHMgQ29uc3RydWN0b3I+KGJhc2U6IFQpOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgY3JlYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICAgICAgdXBkYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICB9O1xufSAmIFQ7XG4iLCJkZWNsYXJlIGNvbnN0IFBlcm1pc3Npb25FbnRpdHlfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3I7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQZXJtaXNzaW9uRW50aXR5IGV4dGVuZHMgUGVybWlzc2lvbkVudGl0eV9iYXNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgICBvcmlnaW46IHN0cmluZztcbiAgICBzdWJqZWN0OiBzdHJpbmc7XG4gICAgYWN0aW9uOiBzdHJpbmc7XG4gICAgY29uZGl0aW9uczogc3RyaW5nIHwgbnVsbCB8IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgZ2V0IGVkaXRhYmxlKCk6IGJvb2xlYW47XG4gICAgZ2V0IHBhcnNlZENvbmRpdGlvbnMoKTogYW55O1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHsgZGVmaW5lQWJpbGl0eSB9IGZyb20gJ0BjYXNsL2FiaWxpdHknO1xuaW1wb3J0IFBlcm1pc3Npb24gZnJvbSAnLi9QZXJtaXNzaW9uRW50aXR5LnRzJztcbmltcG9ydCBMb2dnZXJTZXJ2aWNlIGZyb20gJyNzaGFyZWQvc2VydmljZXMvTG9nZ2VyU2VydmljZS50cyc7XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBY2xFbnRpdHkge1xuICAgIHN0YXRpYyBfX2NvbnRhaW5lcl9lbnRyeV9rZXk6IHN0cmluZztcbiAgICBhYmlsaXR5OiBSZXR1cm5UeXBlPHR5cGVvZiBkZWZpbmVBYmlsaXR5PjtcbiAgICBwZXJtaXNzaW9uczogUGVybWlzc2lvbltdO1xuICAgIGRlYnVnOiBib29sZWFuO1xuICAgIGxvZ2dlcjogTG9nZ2VyU2VydmljZTtcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogUGFydGlhbDxBY2xFbnRpdHk+KTtcbiAgICBjYW4oYWN0aW9uOiBzdHJpbmcsIHN1YmplY3Q6IGFueSwgb2JqZWN0PzogUmVjb3JkPHN0cmluZywgYW55Pik6IGJvb2xlYW47XG4gICAgY2Fubm90KGFjdGlvbjogc3RyaW5nLCBzdWJqZWN0OiBhbnksIG9iamVjdD86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBib29sZWFuO1xuICAgIHN1YmplY3Qoc3ViamVjdDogc3RyaW5nLCBvYmplY3Q6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ICYgaW1wb3J0KFwiQGNhc2wvYWJpbGl0eVwiKS5Gb3JjZWRTdWJqZWN0PHN0cmluZz47XG59XG4iLCJleHBvcnQgaW50ZXJmYWNlIENvb2tpZU1hcEVudGl0eU9wdGlvbnMge1xuICAgIGNvb2tpZXM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHByZWZpeD86IHN0cmluZztcbn1cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvb2tpZU1hcEVudGl0eSB7XG4gICAgc3RhdGljIF9fY29udGFpbmVyX2VudHJ5X2tleTogc3RyaW5nO1xuICAgIGNvb2tpZXM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJlZml4OiBzdHJpbmc7XG4gICAgY29uc3RydWN0b3IoZGF0YT86IENvb2tpZU1hcEVudGl0eU9wdGlvbnMpO1xuICAgIGxvYWQoY29va2llczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IE1hcDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkO1xuICAgIGdldChuYW1lOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyB8IG51bGwpOiBzdHJpbmcgfCBudWxsO1xuICAgIHNldChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBhbnkpOiB2b2lkO1xuICAgIHRvUmVjb3JkKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG4iLCJleHBvcnQgZGVjbGFyZSBjb25zdCBUWVBFUzogKCkgPT4gKHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxhYmVsOiBhbnk7XG4gICAgZGVzY3JpcHRpb246IGFueTtcbiAgICBjb25maWdfZmllbGRzOiB7XG4gICAgICAgIGRpcmVjdG9yeToge1xuICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgfTtcbiAgICAgICAgYWNjZXNzS2V5SWQ/OiB1bmRlZmluZWQ7XG4gICAgICAgIHNlY3JldEFjY2Vzc0tleT86IHVuZGVmaW5lZDtcbiAgICAgICAgYnVja2V0PzogdW5kZWZpbmVkO1xuICAgICAgICByZWdpb24/OiB1bmRlZmluZWQ7XG4gICAgICAgIHByZWZpeD86IHVuZGVmaW5lZDtcbiAgICAgICAgZW5kcG9pbnQ/OiB1bmRlZmluZWQ7XG4gICAgfTtcbn0gfCB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgY29uZmlnX2ZpZWxkczoge1xuICAgICAgICBhY2Nlc3NLZXlJZDoge1xuICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICB9O1xuICAgICAgICBzZWNyZXRBY2Nlc3NLZXk6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgYnVja2V0OiB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgIH07XG4gICAgICAgIHJlZ2lvbjoge1xuICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICB9O1xuICAgICAgICBwcmVmaXg6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgfTtcbiAgICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgfTtcbiAgICAgICAgZGlyZWN0b3J5PzogdW5kZWZpbmVkO1xuICAgIH07XG59KVtdO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJpdmVDb25maWcge1xuICAgIHN0YXRpYyBnZXQgVFlQRVMoKTogKHtcbiAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgZGVzY3JpcHRpb246IGFueTtcbiAgICAgICAgY29uZmlnX2ZpZWxkczoge1xuICAgICAgICAgICAgZGlyZWN0b3J5OiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhY2Nlc3NLZXlJZD86IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleT86IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGJ1Y2tldD86IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJlZ2lvbj86IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHByZWZpeD86IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGVuZHBvaW50PzogdW5kZWZpbmVkO1xuICAgICAgICB9O1xuICAgIH0gfCB7XG4gICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBhbnk7XG4gICAgICAgIGNvbmZpZ19maWVsZHM6IHtcbiAgICAgICAgICAgIGFjY2Vzc0tleUlkOiB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGFueTtcbiAgICAgICAgICAgICAgICBoaW50OiBhbnk7XG4gICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHNlY3JldEFjY2Vzc0tleToge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBidWNrZXQ6IHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZWdpb246IHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBwcmVmaXg6IHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IHN0cmluZztcbiAgICAgICAgICAgICAgICBsYWJlbDogYW55O1xuICAgICAgICAgICAgICAgIGhpbnQ6IGFueTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogc3RyaW5nO1xuICAgICAgICAgICAgICAgIGxhYmVsOiBhbnk7XG4gICAgICAgICAgICAgICAgaGludDogYW55O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGRpcmVjdG9yeT86IHVuZGVmaW5lZDtcbiAgICAgICAgfTtcbiAgICB9KVtdO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBpc19kZWZhdWx0OiBib29sZWFuO1xuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBEcml2ZUNvbmZpZyk7XG4gICAgZ2V0IGNvbmZpZ19maWVsZHMoKToge307XG59XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBEcml2ZUVudHJ5IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHR5cGU6ICdmaWxlJyB8ICdkaXJlY3RvcnknO1xuICAgIG1ldGFzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IERyaXZlRW50cnkpO1xufVxuIiwiZGVjbGFyZSBjb25zdCBGaWxlRW50aXR5X2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgfTtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWxlRW50aXR5IGV4dGVuZHMgRmlsZUVudGl0eV9iYXNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGRyaXZlOiBzdHJpbmc7XG4gICAgbWltZXR5cGU6IHN0cmluZztcbiAgICBwdXJwb3NlOiBzdHJpbmc7XG4gICAgY2xpZW50X25hbWU6IHN0cmluZztcbiAgICBmaWxlbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYzogYm9vbGVhbjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgbWV0YXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGlzSW1hZ2UoKTogYm9vbGVhbjtcbn1cbmV4cG9ydCB7fTtcbiIsImRlY2xhcmUgY29uc3QgRmlsZU1ldGFfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3IgJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgY3JlYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICAgICAgdXBkYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICB9O1xufSAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBkZWxldGVkX2F0OiBEYXRlIHwgc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZpbGVNZXRhIGV4dGVuZHMgRmlsZU1ldGFfYmFzZSB7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBmaWxlX2lkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmcgfCBudWxsO1xufVxuZXhwb3J0IHt9O1xuIiwiZGVjbGFyZSBjb25zdCBVcGxvYWRTZXNzaW9uX2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgfTtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVcGxvYWRTZXNzaW9uIGV4dGVuZHMgVXBsb2FkU2Vzc2lvbl9iYXNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIHB1cnBvc2U6IHN0cmluZztcbiAgICBtaW1lX3R5cGVzOiBzdHJpbmc7XG4gICAgbWF4X3NpemU6IG51bWJlcjtcbiAgICB1cGxvYWRfdXJsPzogc3RyaW5nO1xuICAgIGNyZWF0ZV9maWxlX3VybD86IHN0cmluZztcbiAgICBnZXRQYXJzZWRNaW1lVHlwZXMoKTogc3RyaW5nW107XG4gICAgaXNBbGxvd2VkTWltZVR5cGUobWltZVR5cGU6IHN0cmluZyk6IGJvb2xlYW47XG4gICAgaXNBbGxvd2VkU2l6ZShzaXplOiBudW1iZXIpOiBib29sZWFuO1xufVxuZXhwb3J0IHt9O1xuIiwiZXhwb3J0IGRlZmF1bHQgY2xhc3MgR2l0QnJhbmNoRW50aXR5IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgcmVtb3RlOiBzdHJpbmcgfCBudWxsO1xuICAgIGlzX2N1cnJlbnQ6IGJvb2xlYW47XG4gICAgaXNfcmVtb3RlOiBib29sZWFuO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE6IEdpdEJyYW5jaEVudGl0eSk7XG59XG4iLCJleHBvcnQgZGVmYXVsdCBjbGFzcyBHaXRDb21taXRFbnRpdHkge1xuICAgIGhhc2g6IHN0cmluZztcbiAgICBzaG9ydF9oYXNoOiBzdHJpbmc7XG4gICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIGJvZHk6IHN0cmluZztcbiAgICBhdXRob3JfbmFtZTogc3RyaW5nO1xuICAgIGF1dGhvcl9lbWFpbDogc3RyaW5nO1xuICAgIGRhdGU6IHN0cmluZztcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBHaXRDb21taXRFbnRpdHkpO1xufVxuIiwiZXhwb3J0IGludGVyZmFjZSBIZWFkZXJNYXBFbnRpdHlPcHRpb25zIHtcbiAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBzZXRIZWFkZXI/OiAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xufVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVhZGVyTWFwRW50aXR5IHtcbiAgICBzdGF0aWMgX19jb250YWluZXJfZW50cnlfa2V5OiBzdHJpbmc7XG4gICAgZW50cmllczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBzZXRIZWFkZXI/OiAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICAgIGNvbnN0cnVjdG9yKGRhdGE/OiBIZWFkZXJNYXBFbnRpdHlPcHRpb25zKTtcbiAgICBsb2FkRnJvbVJlY29yZChjb29raWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogdm9pZDtcbiAgICBnZXQobmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHwgbnVsbDtcbiAgICBzZXQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZDtcbiAgICB0b1JlY29yZCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuIiwiZXhwb3J0IGludGVyZmFjZSBNb2R1bGVNYW5pZmVzdEJ1aWxkSW1wb3J0IHtcbiAgICBmcm9tOiBzdHJpbmc7XG4gICAgdG8/OiBzdHJpbmc7XG4gICAgdHlwZTogJ2dsb2JhbF9pbXBvcnQnO1xufVxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVNYW5pZmVzdEJ1aWxkIHtcbiAgICBpbXBvcnRzPzogTW9kdWxlTWFuaWZlc3RCdWlsZEltcG9ydFtdO1xufVxuZGVjbGFyZSBjb25zdCBNb2R1bGVNYW5pZmVzdF9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbWVyZ2UoZGF0YTogUGFydGlhbDwvKmVsaWRlZCovIGFueT4pOiAvKmVsaWRlZCovIGFueTtcbiAgICB9O1xuICAgIGZyb208VD4odGhpczogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUO1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvcjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vZHVsZU1hbmlmZXN0IGV4dGVuZHMgTW9kdWxlTWFuaWZlc3RfYmFzZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgYXV0aG9yPzogc3RyaW5nO1xuICAgIGRlcGVuZGVuY2llcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgYnVpbGQ/OiBNb2R1bGVNYW5pZmVzdEJ1aWxkO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmV4cG9ydCB7fTtcbiIsImltcG9ydCB0eXBlIE1vZHVsZU1hbmlmZXN0IGZyb20gJy4vTW9kdWxlTWFuaWZlc3RFbnRpdHkudHMnO1xuaW1wb3J0IExpZmVjeWNsZUhvb2sgZnJvbSAnI3NoYXJlZC9lbnRpdGllcy9MaWZlY3ljbGVIb29rLnRzJztcbmludGVyZmFjZSBNb2R1bGVVcGdyYWRlSW5mbyB7XG4gICAgc291cmNlOiAnZ2l0JyB8ICd6aXAnO1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn1cbmRlY2xhcmUgY29uc3QgTW9kdWxlX2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yPHt9PiAmIHR5cGVvZiBMaWZlY3ljbGVIb29rO1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9kdWxlIGV4dGVuZHMgTW9kdWxlX2Jhc2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIGJ1aWxkOiBNb2R1bGVNYW5pZmVzdFsnYnVpbGQnXTtcbiAgICBkaXJlY3Rvcnk6IHN0cmluZztcbiAgICB1cGdyYWRlX2luZm8/OiBNb2R1bGVVcGdyYWRlSW5mbztcbiAgICBzZXREYXRhKGRhdGE6IFBhcnRpYWw8TW9kdWxlIHwgTW9kdWxlTWFuaWZlc3Q+KTogdm9pZDtcbn1cbmV4cG9ydCB7fTtcbiIsImV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2luYXRpb25FbnRpdHk8VCA9IFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBpdGVtczogVFtdO1xuICAgIHRvdGFsOiBudW1iZXI7XG4gICAgcGFnZTogbnVtYmVyO1xuICAgIHBlcl9wYWdlOiBudW1iZXI7XG4gICAgdG90YWxfcGFnZXM6IG51bWJlcjtcbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPFBhZ2luYXRpb25FbnRpdHk+KTtcbiAgICBzdGF0aWMgZnJvbTxUID0gUmVjb3JkPHN0cmluZywgc3RyaW5nPj4ocGF5bG9hZDogUGFydGlhbDxQYWdpbmF0aW9uRW50aXR5PFQ+Pik6IFBhZ2luYXRpb25FbnRpdHk8VD47XG59XG4iLCJkZWNsYXJlIGNvbnN0IFBsdWdpbkVudGl0eV9iYXNlOiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgbWVyZ2UoZGF0YTogUGFydGlhbDwvKmVsaWRlZCovIGFueT4pOiAvKmVsaWRlZCovIGFueTtcbiAgICB9O1xuICAgIGZyb208VD4odGhpczogbmV3ICgpID0+IFQsIGRhdGE6IFBhcnRpYWw8VD4pOiBUO1xufSAmIGltcG9ydChcIiNzaGFyZWQvdXRpbHMvY29tcG9zZS50c1wiKS5Db25zdHJ1Y3RvcjtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBsdWdpbkVudGl0eSBleHRlbmRzIFBsdWdpbkVudGl0eV9iYXNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICBhbGlhc2VzOiBzdHJpbmdbXTtcbiAgICB2ZXJzaW9uX2NoYW5uZWw6IHN0cmluZztcbiAgICB2ZXJzaW9uX2F2YWlsYWJsZV9jaGFubmVsczogc3RyaW5nW107XG59XG5leHBvcnQge307XG4iLCJkZWNsYXJlIGNvbnN0IFJvbGVfYmFzZToge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIG1lcmdlKGRhdGE6IFBhcnRpYWw8LyplbGlkZWQqLyBhbnk+KTogLyplbGlkZWQqLyBhbnk7XG4gICAgfTtcbiAgICBmcm9tPFQ+KHRoaXM6IG5ldyAoKSA9PiBULCBkYXRhOiBQYXJ0aWFsPFQ+KTogVDtcbn0gJiBpbXBvcnQoXCIjc2hhcmVkL3V0aWxzL2NvbXBvc2UudHNcIikuQ29uc3RydWN0b3IgJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgY3JlYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICAgICAgdXBkYXRlZF9hdDogRGF0ZSB8IHN0cmluZztcbiAgICB9O1xufSAmIHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBkZWxldGVkX2F0OiBEYXRlIHwgc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xufTtcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvbGUgZXh0ZW5kcyBSb2xlX2Jhc2Uge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuZXhwb3J0IHt9O1xuIiwiaW1wb3J0IHR5cGUgUGVybWlzc2lvbiBmcm9tICcuL1Blcm1pc3Npb25FbnRpdHkudHMnO1xuaW1wb3J0IHR5cGUgUm9sZSBmcm9tICcuL1JvbGVFbnRpdHkudHMnO1xuZGVjbGFyZSBjb25zdCBVc2VyRW50aXR5X2Jhc2U6IHtcbiAgICBuZXcgKC4uLmFyZ3M6IGFueVtdKToge1xuICAgICAgICBtZXJnZShkYXRhOiBQYXJ0aWFsPC8qZWxpZGVkKi8gYW55Pik6IC8qZWxpZGVkKi8gYW55O1xuICAgIH07XG4gICAgZnJvbTxUPih0aGlzOiBuZXcgKCkgPT4gVCwgZGF0YTogUGFydGlhbDxUPik6IFQ7XG59ICYgaW1wb3J0KFwiI3NoYXJlZC91dGlscy9jb21wb3NlLnRzXCIpLkNvbnN0cnVjdG9yICYge1xuICAgIG5ldyAoLi4uYXJnczogYW55W10pOiB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUgfCBzdHJpbmc7XG4gICAgfTtcbn0gJiB7XG4gICAgbmV3ICguLi5hcmdzOiBhbnlbXSk6IHtcbiAgICAgICAgZGVsZXRlZF9hdDogRGF0ZSB8IHN0cmluZyB8IG51bGw7XG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCBjbGFzcyBVc2VyRW50aXR5IGV4dGVuZHMgVXNlckVudGl0eV9iYXNlIHtcbiAgICBpZDogbnVtYmVyO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gICAgdmVyaWZpZWRfYXQ/OiBEYXRlIHwgc3RyaW5nIHwgbnVsbDtcbiAgICBwZXJtaXNzaW9ucz86IFBlcm1pc3Npb25bXTtcbiAgICByb2xlcz86IFJvbGVbXTtcbiAgICBnZXQgaW5pdGlhbHMoKTogc3RyaW5nO1xufVxuZXhwb3J0IHt9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBLFFBQVU7Q0FBQTtPQUFNLEVBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDaEIsSUFBSSxnQkFBVztDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RmLElBQUksZ0JBQWM7Q0FBQztFQUFFLE1BQU0sQ0FBQyxFQUFFO0NBQUM7RUFBQTtFQUFNO0VBQUU7RUFBSztDQUFDO0FBQzdDLElBQUksV0FBVztDQUFDO09BQVMsQ0FBQSxjQUFTO0NBQUEsQ0FBQSxHQUFBO0NBQVc7QUFDN0MsSUFBQSxtQkFBcUI7Q0FBQTtFQUFBLE1BQUE7RUFBQTtFQUFpQjtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0Z0QyxJQUFBLGdCQUFvQjtDQUFDO09BQUEsQ0FBQSxPQUFjLGNBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQ25DLElBQU8sMEJBQVU7Q0FBQTtPQUF3QixFQUFBO0NBQUEsQ0FBQSxHQUFBO0NBQUE7QUFDekMsSUFBVyxtQkFBTTtDQUFBO09BQUEsQ0FBQSx3QkFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNqQixJQUFBLGtCQUFBO0NBQUE7T0FBQSxDQUFBLGtCQUFBLGlCQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ0EsSUFBQSxZQUFnQjtDQUFDO09BQUEsRUFBQTtDQUFBLENBQUEsSUFBaUIsR0FBQTtDQUFBO0FBQ2xDLElBQUksb0JBQW9CO0NBQUM7T0FBQSxDQUFBLFVBQUE7Q0FBdUIsQ0FBQyxJQUFFLEdBQUk7Q0FBQTtBQUN2RCxJQUFBLHlCQUFBO0NBQUE7T0FBQSxDQUFBLGNBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDQSxJQUFBLGtCQUFVO0NBQUE7RUFBZ0IsUUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDUDFCLElBQUEsZ0JBQW9CO0NBQUM7T0FBQTtFQUFBO0VBQWM7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQW5DLElBQVcsc0JBQXNCO0NBQUM7RUFBSSxNQUFFLENBQUEsR0FBTyxFQUFDO0NBQUc7RUFBQztFQUFJO0VBQUk7RUFBSTtFQUFJO0VBQUc7RUFBSztFQUFFO0NBQUE7QUFDOUUsSUFBVyxZQUFZO0NBQUM7RUFBRyxHQUFBLE1BQVE7RUFBQTtFQUFPO0VBQUc7RUFBQztFQUFRO0VBQUc7RUFBRTtFQUFPO0VBQVE7Q0FBRTtFQUFDO0VBQUM7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUM5RSxJQUFXLGFBQWE7Q0FBQztFQUFHLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRDVCLElBQVcsV0FBVztDQUFDO09BQVEsRUFBSTtDQUFFLENBQUEsR0FBSTtDQUFDO0FBQzFDLElBQVcsY0FBYztDQUFDO0VBQUksTUFBSSxDQUFBLEVBQUk7Q0FBRTtFQUFDO0VBQUM7RUFBTTtFQUFJO0NBQUM7QUFDckQsSUFBVyxRQUFRO0NBQUM7RUFBSSxNQUFLO0VBQUM7RUFBYTtFQUFHO0VBQVk7Q0FBRTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzVELElBQUUsVUFBQTtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNGLElBQVcsY0FBVTtDQUFBO0VBQU8sT0FBTyxNQUFPO0VBQUE7RUFBZTtFQUFXO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNwRSxJQUFVLFFBQUk7Q0FBQTtFQUFTLFNBQVcsVUFBTTtFQUFBO0VBQVk7RUFBUztFQUFPO0VBQVk7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNIaEYsSUFBSSxrQkFBa0I7Q0FBQztPQUFVLEVBQUU7Q0FBRSxFQUFBO0NBQUE7QUFDckMsSUFBQSxjQUFVO0NBQUE7T0FBWSxFQUFBO0NBQUEsQ0FBQSxJQUFBLEdBQUE7Q0FBQTtBQUN0QixJQUFXLDBCQUFvQjtDQUFBO09BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMvQixJQUFJLG1CQUFtQjtDQUFBO09BQVE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDTC9CLElBQUEsb0JBQXFCO0NBQUE7T0FBQTtFQUFBO0VBQWtCO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRHZDLElBQUEsZ0JBQW9CO0NBQUM7T0FBQSxFQUFBO0NBQWM7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0NuQyxJQUFPLFNBQWE7Q0FBQztPQUFXO0VBQUMsRUFBRTtFQUFFLEVBQWM7RUFBYSxFQUFBO0VBQWUsRUFBQTtFQUFhLEVBQVM7RUFBSyxFQUFZO0VBQWM7Q0FBQTtFQUFBO0VBQUE7RUFBWTtFQUFFO0VBQUE7RUFBQTtFQUFBO0VBQWdCO0VBQUs7RUFBQTtFQUFTO0VBQUU7RUFBQTtDQUFBO0FBQ2xMLElBQU8sVUFBYztDQUFBO09BQVk7RUFBQyxFQUFFO0VBQUUsRUFBYztFQUFhLEVBQUE7RUFBZSxFQUFBO0VBQWEsRUFBVTtFQUFJO0NBQWE7RUFBQztFQUFBO0VBQUE7RUFBWTtFQUFDO0VBQUE7RUFBVztFQUFHO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDcEosSUFBTyxPQUFRO0NBQUE7T0FBZTtFQUFDLEVBQUU7RUFBRSxFQUFjO0VBQVksRUFBQztFQUFjO0VBQUM7RUFBQSxFQUFhO0VBQWM7RUFBQTtFQUFXLEVBQUE7RUFBdUIsRUFBRTtFQUFFO0NBQWU7RUFBQztFQUFBO0VBQVE7RUFBQztFQUFNO0VBQUs7RUFBSTtFQUFBO0VBQUE7RUFBQTtFQUFnQjtFQUFJO0VBQUU7RUFBTTtFQUFHO0VBQUs7RUFBRTtDQUFBO0FBQzVOLElBQU8sV0FBYztDQUFBO09BQWE7RUFBQyxFQUFFO0VBQUUsRUFBYztFQUFZLEVBQUM7RUFBYztFQUFDO0VBQUEsRUFBYTtFQUFjLEVBQUE7RUFBb0I7Q0FBRTtFQUFDO0VBQUM7RUFBQTtFQUFXO0VBQUc7RUFBQTtFQUFBO0VBQUE7RUFBZ0I7RUFBQTtFQUFTO0VBQUk7RUFBRTtDQUFBO0FBQ2pMLElBQU8sUUFBUTtDQUFLO0VBQUMsTUFBUztFQUFDLEVBQUE7RUFBVTtFQUFBLEVBQUE7RUFBcUIsRUFBSTtFQUFjLEVBQUU7RUFBRyxFQUFBO0VBQXlCLEVBQUU7RUFBZTtFQUFBLEVBQUE7RUFBYSxFQUFTO0VBQUs7Q0FBWTtFQUFDO0VBQUM7RUFBQTtFQUFBO0VBQWE7RUFBQTtFQUFVO0VBQUU7RUFBQTtFQUFVO0VBQUc7RUFBQTtFQUFTO0VBQUk7RUFBQztFQUFBO0VBQUE7RUFBZTtFQUFDO0VBQU87RUFBRTtDQUFBO0FBQ3JQLElBQU8sY0FBYztDQUFBO09BQWdCO0VBQUMsRUFBRTtFQUFFLEVBQWM7RUFBYSxFQUFBO0VBQWUsRUFBQTtFQUFZLEVBQUE7RUFBZSxFQUFBO0VBQXNCLEVBQUU7RUFBRyxFQUFZO0VBQWUsRUFBQTtFQUFZLEVBQVU7RUFBZTtDQUFFO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBZ0I7RUFBQTtFQUFTO0VBQUE7RUFBUTtFQUFFO0VBQU07RUFBSTtFQUFHO0VBQUE7RUFBQTtFQUFhO0VBQUM7RUFBQTtFQUFXO0VBQUk7RUFBQztDQUFHO0FBQzdSLElBQU8sU0FBYTtDQUFDO09BQVc7RUFBQyxFQUFFO0VBQUUsRUFBYztFQUFhLEVBQUE7RUFBYyxFQUFDO0VBQWEsRUFBQTtFQUFjLEVBQUE7RUFBZTtFQUFhLEVBQUE7RUFBYyxFQUFTO0VBQWU7Q0FBQTtFQUFBO0VBQUE7RUFBVztFQUFHO0VBQUE7RUFBQTtFQUFBO0VBQWdCO0VBQUE7RUFBUztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNuTixJQUFRLE1BQVM7Q0FBQTtPQUFHO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNwQixJQUFHLE1BQUE7Q0FBQTtFQUFBLE1BQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ1JILElBQU8sV0FBYztDQUFBO09BQWE7RUFBQyxFQUFFO0VBQUU7RUFBZSxFQUFBO0VBQXdCLEVBQUM7RUFBYztDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQWdCO0VBQUE7RUFBUTtFQUFBO0VBQU87Q0FBQTs7OztBQ0E1SCxJQUFPLG1CQUFVO0NBQUE7T0FBaUIsRUFBQTtDQUFBLENBQUEsSUFBQSxHQUFBO0NBQUE7QUFDbEMsSUFBSSxPQUFXO0NBQUE7T0FBTTtFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNyQixJQUFJLGFBQW9CO0NBQUM7T0FBQztFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMxQixJQUFBLGFBQUE7Q0FBQTtPQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBRUZBLElBQVcsVUFBVTtDQUFDO09BQVUsQ0FBQyxHQUFBLGdCQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ2pDLElBQVcsZ0JBQWM7Q0FBQTtPQUFBLENBQUEsRUFBQSxXQUFBLEVBQUEsV0FBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3pCLElBQUMsc0JBQUE7Q0FBQTtPQUFBLENBQUEsRUFBQSxhQUFBO0NBQUEsQ0FBQSxJQUFBLEdBQUE7Q0FBQTtBQUNELElBQVcscUJBQW1CO0NBQUE7T0FBVyxDQUFBLEVBQUEsV0FBZ0IsRUFBRSxnQkFBWTtDQUFBO0VBQU87RUFBRTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ2hGLElBQVcsb0JBQW9CO0NBQUM7RUFBSSxNQUFBO0VBQUE7RUFBcUI7RUFBQztFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMxRCxJQUFXLHlCQUF3QjtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQWdDO0VBQUk7RUFBQTtDQUFTO0VBQUM7RUFBQTtFQUFRO0VBQUM7RUFBQTtFQUFBO0NBQUE7QUFDMUYsSUFBTyxrQkFBVTtDQUFBO0VBQWlCLE1BQUc7RUFBQSxFQUFBO0VBQVE7RUFBQSxFQUFjO0VBQUM7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDNUQsSUFBUyxrQkFBVztDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNwQixJQUFBLGlCQUFBO0NBQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDQSxJQUFBLG1CQUFZO0NBQUE7RUFBQSxNQUFBO0VBQXNCO0VBQUc7RUFBUTtFQUFBO0VBQXNCO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDWG5FLElBQU8sV0FBUTtDQUFRO09BQVUsRUFBQTtDQUFBLENBQUEsR0FBUTtDQUFDOzs7O0FDQTFDLElBQU8sVUFBUTtDQUFBO09BQWlCLENBQUEsT0FBUTtDQUFFO0VBQUE7RUFBQTtFQUFTO0VBQUE7RUFBTztDQUFDO0FBQzNELElBQU8sWUFBZ0I7Q0FBQztPQUFVLENBQUEsT0FBUTtDQUFFLENBQUMsSUFBQSxHQUFPO0NBQUE7Ozs7QUNEcEQsSUFBTyxjQUFpQjtDQUFBO09BQVksRUFBQTtDQUFBLENBQUssSUFBRSxHQUFBO0NBQU07Ozs7QUNBakQsSUFBQSxRQUFVO0NBQUE7T0FBTSxFQUFBO0NBQUEsQ0FBQSxHQUFBO0NBQUE7QUFDaEIsSUFBSSxhQUFhO0NBQUM7T0FBTyxDQUFBLFFBQUE7Q0FBQSxDQUFBLElBQUEsR0FBQTtDQUFBO0FBQ3pCLElBQUEsaUJBQUE7Q0FBQTtFQUFBLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNBLElBQUEsc0JBQXFCO0NBQUE7RUFBQSxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3JCLElBQVEsV0FBYztDQUFBO0VBQUEsTUFBUTtFQUFHO0VBQU87RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3hDLElBQUEsV0FBQTtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0xBLElBQU8sWUFBZ0I7Q0FBQztPQUFVLEVBQUE7Q0FBQSxDQUFBLElBQVMsR0FBQTtDQUFBOzs7O0FDQTNDLElBQU8saUJBQWlCO0NBQUE7T0FBZSxDQUFBLE9BQUE7Q0FBVTtFQUFDO0VBQUE7RUFBUTtFQUFBO0NBQUE7QUFDMUQsSUFBTyxnQkFBaUI7Q0FBQTtPQUFjLENBQUEsT0FBQTtDQUFBLENBQVcsSUFBRSxHQUFBO0NBQU07Ozs7QUNEekQsSUFBTyxnQkFBaUI7Q0FBQTtFQUFBLE1BQWEsQ0FBQyxFQUFFO0NBQUM7RUFBQTtFQUFBO0VBQVU7RUFBRTtDQUFBO0FBQ3JELElBQU8sb0JBQWlCO0NBQUE7RUFBQSxNQUFpQixDQUFDLEVBQUU7Q0FBQztFQUFBO0VBQU07RUFBSTtFQUFDO0NBQUE7Ozs7QUNDeEQsSUFBTyxzQkFBaUI7Q0FBQTtPQUFvQjtFQUFDO0VBQW9CO0VBQWE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUM5RSxJQUFJLHNCQUE2QjtDQUFDO09BQUM7RUFBQSxFQUFhO0VBQVUsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzFELElBQUksc0JBQTZCO0NBQUM7T0FBVTtFQUFDLEVBQUE7RUFBdUIsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRnBFLElBQU8sa0JBQWlCO0NBQUE7T0FBZ0I7RUFBQztFQUFpQjtFQUFHO0VBQWE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUUsSUFBSSxrQkFBcUI7Q0FBQTtPQUFVO0VBQUEsRUFBYTtFQUFVLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMxRCxJQUFJLGtCQUF1QjtDQUFBO09BQVU7RUFBQSxFQUFhO0VBQVUsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0g1RCxJQUFXLHVCQUF1QjtDQUFDO09BQUUsQ0FBQSw0QkFBbUIsRUFBQSxZQUEyQjtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNuRixJQUFPLDZCQUFjO0NBQUE7T0FBOEI7RUFBQSxFQUFBO0VBQWEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRGhFLElBQVcsYUFBYTtDQUFDO09BQUUsQ0FBQSxrQkFBbUIsRUFBQSxZQUFpQjtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUMvRCxJQUFPLG1CQUFjO0NBQUE7T0FBb0I7RUFBQSxFQUFBO0VBQWEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRHRELElBQVcsUUFBUTtDQUFDO09BQUUsQ0FBQSxhQUFtQixFQUFBLFlBQVk7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDckQsSUFBTyxjQUFjO0NBQUE7T0FBZTtFQUFBLEVBQUE7RUFBYSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDRGpELElBQUEsYUFBaUI7Q0FBQTtPQUFXO0VBQUMsRUFBRTtFQUFjLEVBQUM7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUM5QyxJQUFJLGFBQWE7Q0FBQztPQUFDO0VBQUEsRUFBWTtFQUFXLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUEsRUFBQTtFQUFBLEVBQUE7RUFBQSxFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNGMUMsSUFBQSxnQkFBb0I7Q0FBQztPQUFBO0VBQUE7RUFBYztFQUFjO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNDakQsSUFBQSxpQkFBcUI7Q0FBQTtPQUFBLENBQUEsY0FBdUI7Q0FBQTtFQUFBO0VBQUE7RUFBYztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNBMUQsSUFBTyxZQUFjO0NBQUE7T0FBVyxDQUFBLGlCQUFnQjtDQUFBLENBQUEsR0FBQTtDQUFBOzs7O0FDQWhELElBQUEsMEJBQVU7Q0FBQTtPQUF3QixFQUFBO0NBQUEsQ0FBQSxJQUFBLEdBQUE7Q0FBQTtBQUNsQyxJQUFXLG1CQUFtQjtDQUFBO0VBQUEsR0FBQSxVQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUM5QixJQUFBLGFBQUE7Q0FBQTtFQUFBLEdBQUEsVUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNGQSxJQUFPLFdBQVU7Q0FBQTtPQUFTLEVBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBVyxXQUFNO0NBQUE7T0FBQSxDQUFBLFFBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUNqQixJQUFJLFNBQWM7Q0FBQTtPQUFhLEVBQUU7Q0FBQztFQUFBO0VBQUk7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN0QyxJQUFBLGNBQUE7Q0FBQTtFQUFBLFVBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ0EsSUFBTyxjQUFpQjtDQUFBO09BQVMsQ0FBQSxVQUFhLE9BQUs7Q0FBSztFQUFDO0VBQUM7RUFBTztFQUFJO0VBQUE7Q0FBSTtBQUN6RSxJQUFBLFFBQU87Q0FBQTtFQUFRLFVBQVM7RUFBQTtFQUFPO0VBQWdCO0VBQVM7RUFBUTtFQUFRO0NBQUU7RUFBQztFQUFHO0VBQUs7RUFBSTtFQUFJO0VBQUc7RUFBSztFQUFFO0VBQUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0x6RyxJQUFBLGtCQUFlO0NBQVE7RUFBQyxNQUFBO0VBQUE7RUFBa0I7RUFBTztFQUFDO0VBQUE7Q0FBQTtFQUFBO0VBQWE7RUFBSztFQUFJO0VBQUM7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQXpFLElBQUEsaUJBQWU7Q0FBQTtFQUFTLE1BQUE7RUFBQTtFQUFpQjtFQUFPO0VBQUM7RUFBVztFQUFFO0NBQUE7RUFBQTtFQUFPO0VBQUc7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNBeEUsSUFBSSx3QkFBc0I7Q0FBQTtFQUFBLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzFCLElBQUksbUJBQWdCO0NBQUE7T0FBVSxDQUFNLFFBQVEsc0JBQWdCO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0U1RCxJQUFJLFlBQU87Q0FBQTtPQUFBO0VBQUE7RUFBNkI7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUEsaUJBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNKeEMsSUFBTyx5QkFBVTtDQUFBO09BQXVCLENBQUEsSUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN4QyxJQUFJLGtCQUFjO0NBQUE7T0FBZTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNEakMsSUFBTyxRQUFRO0NBQUs7T0FBVSxFQUFFO0NBQUU7RUFBQztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDbkMsSUFBSSxjQUFVO0NBQUE7T0FBQSxDQUFBLFFBQUEsWUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0RkLElBQUEsYUFBZTtDQUFBO09BQU0sQ0FBQSxRQUFXLFdBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBOzs7O0FDQ2hDLElBQUksa0JBQWtCO0NBQUM7RUFBRyxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBSSxhQUFVO0NBQUk7T0FBVSxDQUFDLFFBQVEsZ0JBQVc7Q0FBTztFQUFDO0VBQUk7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNENUQsSUFBSSxnQkFBYztDQUFHO0VBQUksTUFBQztFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzFCLElBQUksV0FBVTtDQUFBO09BQU0sQ0FBTyxjQUFZO0NBQUk7RUFBQztFQUFJO0VBQUE7RUFBUTtFQUFJO0VBQUE7Q0FBQTs7OztBQ0Q1RCxJQUFJLHFCQUFxQjtDQUFDO0VBQUEsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzFCLElBQUksZ0JBQWdCO0NBQUE7T0FBVSxDQUFBLG1CQUFrQjtDQUFBO0VBQU07RUFBRztFQUFHO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0Y1RCxJQUFBLGtCQUFxQjtDQUFBO09BQUEsQ0FBQSxnQkFBZ0I7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0FyQyxJQUFBLGtCQUFxQjtDQUFBO09BQUEsQ0FBQSxnQkFBZ0I7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0FyQyxJQUFPLHlCQUFVO0NBQUE7T0FBdUIsQ0FBQSxPQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtBQUN4QyxJQUFJLGtCQUFpQjtDQUFBO09BQVE7RUFBQTtFQUFPO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0FwQyxJQUFVLDRCQUFNO0NBQUE7T0FBQSxFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ2hCLElBQVMsc0JBQU07Q0FBQTtPQUFBLENBQUEsMEJBQUE7Q0FBQSxDQUFBLElBQUEsR0FBQTtDQUFBO0FBQ2YsSUFBSSxzQkFBcUI7Q0FBQTtFQUFBLE1BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3pCLElBQUEsaUJBQUE7Q0FBQTtPQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNEQSxJQUFJLG9CQUFvQjtDQUFDO09BQUEsRUFBQTtDQUFBLENBQUEsSUFBQSxHQUFBO0NBQUE7QUFDekIsSUFBSSxjQUFjO0NBQUM7RUFBRyxNQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQ3RCLElBQUEsU0FBQTtDQUFBO09BQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNMQSxJQUFBLG1CQUFxQjtDQUFBO0VBQUEsTUFBQTtFQUFBO0VBQXFCO0VBQUE7RUFBcUI7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTs7OztBQ0MvRCxJQUFJLG9CQUFvQjtDQUFDO0VBQUMsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBSSxlQUFlO0NBQUM7T0FBVSxDQUFBLGtCQUFrQjtDQUFBO0VBQUE7RUFBUztFQUFHO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7Ozs7QUNENUQsSUFBSSxZQUFZO0NBQUM7RUFBSyxNQUFJO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7Q0FBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7QUFDMUIsSUFBSSxPQUFJO0NBQUE7T0FBWSxDQUFBLFVBQVU7Q0FBTTtFQUFDO0VBQUU7RUFBTTtFQUFHO0VBQUE7Q0FBQTs7OztBQ0NoRCxJQUFJLGtCQUFrQjtDQUFDO0VBQUcsTUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0NBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBO0FBQzFCLElBQUksYUFBVTtDQUFJO09BQVM7RUFBQztFQUFFO0VBQWdCO0VBQUU7RUFBWTtDQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtFQUFBO0VBQUE7RUFBQTtDQUFBIn0=
|
|
1
|
+
import { n as PublicData, r as UnionToIntersection, t as PartialBy } from "./typing-CBF7x7JF.mjs";
|
|
2
|
+
import { a as composeWith, i as compose, n as Constructor, o as mixin, r as Mixin, t as AnyClass } from "./compose-e5D0sqye.mjs";
|
|
3
|
+
import PermissionEntity from "./entities/PermissionEntity.mjs";
|
|
4
|
+
import LoggerService from "./services/LoggerService.mjs";
|
|
5
|
+
import AclEntity from "./entities/AclEntity.mjs";
|
|
6
|
+
import CookieMapEntity, { CookieMapEntityOptions } from "./entities/CookieMapEntity.mjs";
|
|
7
|
+
import DriveConfig, { TYPES } from "./entities/DriveConfigEntity.mjs";
|
|
8
|
+
import DriveEntry from "./entities/DriveEntryEntity.mjs";
|
|
9
|
+
import FileEntity from "./entities/FileEntity.mjs";
|
|
10
|
+
import FileMeta from "./entities/FileMetaEntity.mjs";
|
|
11
|
+
import UploadSession from "./entities/FileUploadSessionEntity.mjs";
|
|
12
|
+
import GitBranchEntity from "./entities/GitBranchEntity.mjs";
|
|
13
|
+
import GitCommitEntity from "./entities/GitCommitEntity.mjs";
|
|
14
|
+
import HeaderMapEntity, { HeaderMapEntityOptions } from "./entities/HeaderMapEntity.mjs";
|
|
15
|
+
import LifecycleHook from "./entities/LifecycleHook.mjs";
|
|
16
|
+
import ModuleManifest, { ModuleManifestBuild, ModuleManifestBuildImport } from "./entities/ModuleManifestEntity.mjs";
|
|
17
|
+
import Module from "./entities/ModuleEntity.mjs";
|
|
18
|
+
import PaginationEntity from "./entities/PaginationEntity.mjs";
|
|
19
|
+
import PluginEntity from "./entities/PluginEntity.mjs";
|
|
20
|
+
import Role from "./entities/RoleEntity.mjs";
|
|
21
|
+
import UserEntity from "./entities/UserEntity.mjs";
|
|
22
|
+
import BaseException from "./exceptions/BaseException.mjs";
|
|
23
|
+
import ShellException from "./exceptions/ShellException.mjs";
|
|
24
|
+
import { a as ValidatePayload, c as ValidatorCallbackAsync, i as ValibotSchemaAsync, l as ValidatorResult, n as ValibotObjectSchema, o as ValidateResult, r as ValibotSchema, s as ValidatorCallback, t as Valibot, u as ValidatorService } from "./ValidatorService-DMd2DBVp.mjs";
|
|
25
|
+
import validator from "./facades/validator.mjs";
|
|
26
|
+
import ConfigService from "./services/ConfigService.mjs";
|
|
27
|
+
import ContainerService from "./services/ContainerService.mjs";
|
|
28
|
+
import EmmitterService, { EmmitterListener, EmmitterListenerOptions, EmmitterServiceOptions } from "./services/EmmitterService.mjs";
|
|
29
|
+
import LifecycleService, { LifecycleServiceOptions } from "./services/LifecycleService.mjs";
|
|
30
|
+
import TranslatorService from "./services/TranslatorService.mjs";
|
|
31
|
+
import UploadService from "./services/UploadService.mjs";
|
|
32
|
+
import { createId } from "./utils/createId.mjs";
|
|
33
|
+
import { flatten, unflatten } from "./utils/flatten.mjs";
|
|
34
|
+
import { formatBytes } from "./utils/formatBytes.mjs";
|
|
35
|
+
import { tryCatch } from "./utils/tryCatch.mjs";
|
|
36
|
+
import { matchPath } from "./utils/matchPaths.mjs";
|
|
37
|
+
import { parseUrlParams, parseUrlQuery } from "./utils/parseRouteUrl.mjs";
|
|
38
|
+
import { safeJsonParse, safeJsonStringify } from "./utils/safeJson.mjs";
|
|
39
|
+
import { DashboardMetaSchema, dashboardMetaSchema } from "./schemas/dashboardMetaSchema.mjs";
|
|
40
|
+
import { DashboardSchema, dashboardSchema } from "./schemas/dashboardSchema.mjs";
|
|
41
|
+
import { PermissionAssignment, permissionAssignmentSchema } from "./schemas/permissionAssignmentSchema.mjs";
|
|
42
|
+
import { Permission, permissionSchema } from "./schemas/permissionSchema.mjs";
|
|
43
|
+
import { Token, tokenSchema } from "./schemas/tokenSchema.mjs";
|
|
44
|
+
import userSchema from "./schemas/userSchema.mjs";
|
|
45
|
+
import BaseEntity, { createBaseEntity } from "./mixins/BaseEntityMixin.mjs";
|
|
46
|
+
import Hooks, { HooksStatic, Listener, emitHook, onHook } from "./mixins/HooksMixin.mjs";
|
|
47
|
+
import SoftDeleteMixin from "./mixins/SoftDeleteMixin.mjs";
|
|
48
|
+
import TimestampMixin from "./mixins/TimestampMixin.mjs";
|
|
49
|
+
export { AclEntity, AnyClass, BaseEntity as BaseEntityMixin, BaseException, ConfigService, Constructor, ContainerService, CookieMapEntity, CookieMapEntityOptions, DashboardMetaSchema, DashboardSchema, DriveConfig as DriveConfigEntity, DriveEntry as DriveEntryEntity, EmmitterListener, EmmitterListenerOptions, EmmitterService, EmmitterServiceOptions, FileEntity, FileMeta as FileMetaEntity, UploadSession as FileUploadSessionEntity, GitBranchEntity, GitCommitEntity, HeaderMapEntity, HeaderMapEntityOptions, Hooks as HooksMixin, HooksStatic, LifecycleHook, LifecycleService, LifecycleServiceOptions, Listener, LoggerService, Mixin, Module as ModuleEntity, ModuleManifestBuild, ModuleManifestBuildImport, ModuleManifest as ModuleManifestEntity, PaginationEntity, PartialBy, Permission, PermissionAssignment, PermissionEntity, PluginEntity, PublicData, Role as RoleEntity, ShellException, SoftDeleteMixin, TYPES, TimestampMixin, Token, TranslatorService, UnionToIntersection, UploadService, UserEntity, Valibot, ValibotObjectSchema, ValibotSchema, ValibotSchemaAsync, ValidatePayload, ValidateResult, ValidatorCallback, ValidatorCallbackAsync, ValidatorResult, ValidatorService, compose, composeWith, createBaseEntity, createId, dashboardMetaSchema, dashboardSchema, emitHook, flatten, formatBytes, matchPath, mixin, onHook, parseUrlParams, parseUrlQuery, permissionAssignmentSchema, permissionSchema, safeJsonParse, safeJsonStringify, tokenSchema, tryCatch, unflatten, userSchema, validator };
|