@decaf-ts/core 0.8.85 → 0.9.1-9.tasks
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/README.md +1 -1
- package/dist/core.cjs +6705 -2
- package/dist/core.js +6932 -2
- package/lib/auth/constants.cjs +1 -1
- package/lib/auth/decorators.cjs +1 -1
- package/lib/auth/index.cjs +1 -1
- package/lib/esm/auth/constants.js +1 -1
- package/lib/esm/auth/decorators.js +1 -1
- package/lib/esm/auth/index.js +1 -1
- package/lib/esm/fs/FilesystemAdapter.d.ts +1 -0
- package/lib/esm/fs/FilesystemAdapter.js +3 -2
- package/lib/esm/fs/FsDispatch.js +1 -1
- package/lib/esm/fs/helpers.js +1 -1
- package/lib/esm/fs/index.js +1 -1
- package/lib/esm/fs/indexStore.js +1 -1
- package/lib/esm/fs/locks/FilesystemLock.js +1 -1
- package/lib/esm/fs/locks/FilesystemMultiLock.js +1 -1
- package/lib/esm/fs/types.d.ts +6 -0
- package/lib/esm/fs/types.js +1 -1
- package/lib/esm/identity/decorators.js +1 -1
- package/lib/esm/identity/index.js +1 -1
- package/lib/esm/index.d.ts +1 -1
- package/lib/esm/index.js +2 -2
- package/lib/esm/interfaces/ContextuallyLogged.js +1 -1
- package/lib/esm/interfaces/ErrorParser.js +1 -1
- package/lib/esm/interfaces/Executor.js +1 -1
- package/lib/esm/interfaces/Observable.js +1 -1
- package/lib/esm/interfaces/Observer.js +1 -1
- package/lib/esm/interfaces/Paginatable.js +1 -1
- package/lib/esm/interfaces/Queriable.js +1 -1
- package/lib/esm/interfaces/RawExecutor.js +1 -1
- package/lib/esm/interfaces/SequenceOptions.js +1 -1
- package/lib/esm/interfaces/index.js +1 -1
- package/lib/esm/migrations/Migration.js +1 -1
- package/lib/esm/migrations/MigrationService.js +1 -1
- package/lib/esm/migrations/MigrationTasks.js +1 -1
- package/lib/esm/migrations/constants.js +1 -1
- package/lib/esm/migrations/decorators.js +1 -1
- package/lib/esm/migrations/index.js +1 -1
- package/lib/esm/migrations/types.js +1 -1
- package/lib/esm/model/BaseModel.js +1 -1
- package/lib/esm/model/SequenceModel.js +1 -1
- package/lib/esm/model/construction.d.ts +1 -1
- package/lib/esm/model/construction.js +25 -3
- package/lib/esm/model/decorators.js +1 -1
- package/lib/esm/model/index.js +1 -1
- package/lib/esm/model/indexing.js +1 -1
- package/lib/esm/model/types.js +1 -1
- package/lib/esm/overrides/Metadata.js +1 -1
- package/lib/esm/overrides/Model.js +1 -1
- package/lib/esm/overrides/ModelBuilder.js +1 -1
- package/lib/esm/overrides/index.js +1 -1
- package/lib/esm/overrides/injectables.js +1 -1
- package/lib/esm/overrides/overrides.js +29 -1
- package/lib/esm/persistence/Adapter.js +14 -2
- package/lib/esm/persistence/Context.js +1 -1
- package/lib/esm/persistence/ContextLock.js +1 -1
- package/lib/esm/persistence/Dispatch.d.ts +7 -0
- package/lib/esm/persistence/Dispatch.js +20 -3
- package/lib/esm/persistence/ObserverHandler.js +1 -1
- package/lib/esm/persistence/Sequence.js +1 -1
- package/lib/esm/persistence/constants.js +2 -1
- package/lib/esm/persistence/decorators.js +1 -1
- package/lib/esm/persistence/errors.js +1 -1
- package/lib/esm/persistence/event-filters.js +1 -1
- package/lib/esm/persistence/generators.js +1 -1
- package/lib/esm/persistence/index.js +1 -1
- package/lib/esm/persistence/transactions.js +1 -1
- package/lib/esm/persistence/types.d.ts +1 -0
- package/lib/esm/persistence/types.js +1 -1
- package/lib/esm/query/Condition.js +1 -1
- package/lib/esm/query/MethodQueryBuilder.js +1 -1
- package/lib/esm/query/Paginator.js +1 -1
- package/lib/esm/query/Statement.js +1 -1
- package/lib/esm/query/constants.js +1 -1
- package/lib/esm/query/decorators.js +1 -1
- package/lib/esm/query/errors.js +1 -1
- package/lib/esm/query/index.js +1 -1
- package/lib/esm/query/options.js +1 -1
- package/lib/esm/query/selectors.js +1 -1
- package/lib/esm/query/types.js +1 -1
- package/lib/esm/query/utils.js +1 -1
- package/lib/esm/ram/RamAdapter.js +1 -1
- package/lib/esm/ram/RamPaginator.js +1 -1
- package/lib/esm/ram/RamStatement.js +1 -1
- package/lib/esm/ram/constants.js +1 -1
- package/lib/esm/ram/handlers.js +1 -1
- package/lib/esm/ram/index.js +1 -1
- package/lib/esm/ram/types.js +1 -1
- package/lib/esm/repository/Repository.d.ts +2 -2
- package/lib/esm/repository/Repository.js +19 -16
- package/lib/esm/repository/constants.js +1 -1
- package/lib/esm/repository/decorators.js +2 -2
- package/lib/esm/repository/errors.js +1 -1
- package/lib/esm/repository/index.js +1 -1
- package/lib/esm/repository/injectables.js +4 -2
- package/lib/esm/repository/types.js +1 -1
- package/lib/esm/repository/utils.js +1 -1
- package/lib/esm/services/ModelService.d.ts +4 -5
- package/lib/esm/services/ModelService.js +4 -2
- package/lib/esm/services/PersistenceService.js +1 -1
- package/lib/esm/services/index.js +1 -1
- package/lib/esm/services/services.js +1 -1
- package/lib/esm/tasks/CleanUpTask.js +1 -1
- package/lib/esm/tasks/TaskContext.d.ts +3 -1
- package/lib/esm/tasks/TaskContext.js +9 -2
- package/lib/esm/tasks/TaskEngine.d.ts +2 -0
- package/lib/esm/tasks/TaskEngine.js +84 -20
- package/lib/esm/tasks/TaskErrors.js +1 -1
- package/lib/esm/tasks/TaskEventBus.js +1 -1
- package/lib/esm/tasks/TaskEventService.d.ts +7 -0
- package/lib/esm/tasks/TaskEventService.js +16 -0
- package/lib/esm/tasks/TaskHandler.js +1 -1
- package/lib/esm/tasks/TaskHandlerRegistry.js +1 -1
- package/lib/esm/tasks/TaskService.d.ts +5 -1
- package/lib/esm/tasks/TaskService.js +11 -37
- package/lib/esm/tasks/TaskStateChangeError.js +1 -1
- package/lib/esm/tasks/TaskTracker.js +1 -1
- package/lib/esm/tasks/builder.js +1 -1
- package/lib/esm/tasks/constants.js +1 -1
- package/lib/esm/tasks/decorators.js +1 -1
- package/lib/esm/tasks/index.d.ts +1 -0
- package/lib/esm/tasks/index.js +2 -1
- package/lib/esm/tasks/logging.js +4 -7
- package/lib/esm/tasks/models/TaskBackoffModel.js +1 -1
- package/lib/esm/tasks/models/TaskErrorModel.js +1 -1
- package/lib/esm/tasks/models/TaskEventModel.js +1 -1
- package/lib/esm/tasks/models/TaskIOSerializer.js +1 -1
- package/lib/esm/tasks/models/TaskLogEntryModel.d.ts +1 -0
- package/lib/esm/tasks/models/TaskLogEntryModel.js +6 -2
- package/lib/esm/tasks/models/TaskModel.js +1 -1
- package/lib/esm/tasks/models/TaskStepResultModel.js +1 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -0
- package/lib/esm/tasks/models/TaskStepSpecModel.js +7 -3
- package/lib/esm/tasks/models/index.js +1 -1
- package/lib/esm/tasks/types.d.ts +8 -3
- package/lib/esm/tasks/types.js +1 -1
- package/lib/esm/tasks/utils.js +1 -1
- package/lib/esm/utils/ContextualLoggedClass.js +1 -1
- package/lib/esm/utils/decorators.js +1 -1
- package/lib/esm/utils/errors.js +1 -1
- package/lib/esm/utils/index.js +1 -1
- package/lib/esm/utils/throttling.js +1 -1
- package/lib/esm/utils/types.js +1 -1
- package/lib/esm/utils/utils.d.ts +2 -1
- package/lib/esm/utils/utils.js +23 -6
- package/lib/esm/workers/TaskEngine.js +15 -4
- package/lib/esm/workers/WorkThreadEnvironment.js +1 -1
- package/lib/esm/workers/index.js +1 -1
- package/lib/esm/workers/messages.js +1 -1
- package/lib/esm/workers/types.js +1 -1
- package/lib/esm/workers/workerThread.js +36 -8
- package/lib/fs/FilesystemAdapter.cjs +3 -2
- package/lib/fs/FilesystemAdapter.d.ts +1 -0
- package/lib/fs/FsDispatch.cjs +1 -1
- package/lib/fs/helpers.cjs +1 -1
- package/lib/fs/index.cjs +1 -1
- package/lib/fs/indexStore.cjs +1 -1
- package/lib/fs/locks/FilesystemLock.cjs +1 -1
- package/lib/fs/locks/FilesystemMultiLock.cjs +1 -1
- package/lib/fs/types.cjs +1 -1
- package/lib/fs/types.d.ts +6 -0
- package/lib/identity/decorators.cjs +1 -1
- package/lib/identity/index.cjs +1 -1
- package/lib/index.cjs +2 -2
- package/lib/index.d.ts +1 -1
- package/lib/interfaces/ContextuallyLogged.cjs +1 -1
- package/lib/interfaces/ErrorParser.cjs +1 -1
- package/lib/interfaces/Executor.cjs +1 -1
- package/lib/interfaces/Observable.cjs +1 -1
- package/lib/interfaces/Observer.cjs +1 -1
- package/lib/interfaces/Paginatable.cjs +1 -1
- package/lib/interfaces/Queriable.cjs +1 -1
- package/lib/interfaces/RawExecutor.cjs +1 -1
- package/lib/interfaces/SequenceOptions.cjs +1 -1
- package/lib/interfaces/index.cjs +1 -1
- package/lib/migrations/Migration.cjs +1 -1
- package/lib/migrations/MigrationService.cjs +1 -1
- package/lib/migrations/MigrationTasks.cjs +1 -1
- package/lib/migrations/constants.cjs +1 -1
- package/lib/migrations/decorators.cjs +1 -1
- package/lib/migrations/index.cjs +1 -1
- package/lib/migrations/types.cjs +1 -1
- package/lib/model/BaseModel.cjs +1 -1
- package/lib/model/SequenceModel.cjs +1 -1
- package/lib/model/construction.cjs +25 -3
- package/lib/model/construction.d.ts +1 -1
- package/lib/model/decorators.cjs +1 -1
- package/lib/model/index.cjs +1 -1
- package/lib/model/indexing.cjs +1 -1
- package/lib/model/types.cjs +1 -1
- package/lib/overrides/Metadata.cjs +1 -1
- package/lib/overrides/Model.cjs +1 -1
- package/lib/overrides/ModelBuilder.cjs +1 -1
- package/lib/overrides/index.cjs +1 -1
- package/lib/overrides/injectables.cjs +1 -1
- package/lib/overrides/overrides.cjs +29 -1
- package/lib/persistence/Adapter.cjs +14 -2
- package/lib/persistence/Context.cjs +1 -1
- package/lib/persistence/ContextLock.cjs +1 -1
- package/lib/persistence/Dispatch.cjs +20 -3
- package/lib/persistence/Dispatch.d.ts +7 -0
- package/lib/persistence/ObserverHandler.cjs +1 -1
- package/lib/persistence/Sequence.cjs +1 -1
- package/lib/persistence/constants.cjs +2 -1
- package/lib/persistence/decorators.cjs +1 -1
- package/lib/persistence/errors.cjs +1 -1
- package/lib/persistence/event-filters.cjs +1 -1
- package/lib/persistence/generators.cjs +1 -1
- package/lib/persistence/index.cjs +1 -1
- package/lib/persistence/transactions.cjs +1 -1
- package/lib/persistence/types.cjs +1 -1
- package/lib/persistence/types.d.ts +1 -0
- package/lib/query/Condition.cjs +1 -1
- package/lib/query/MethodQueryBuilder.cjs +1 -1
- package/lib/query/Paginator.cjs +1 -1
- package/lib/query/Statement.cjs +1 -1
- package/lib/query/constants.cjs +1 -1
- package/lib/query/decorators.cjs +1 -1
- package/lib/query/errors.cjs +1 -1
- package/lib/query/index.cjs +1 -1
- package/lib/query/options.cjs +1 -1
- package/lib/query/selectors.cjs +1 -1
- package/lib/query/types.cjs +1 -1
- package/lib/query/utils.cjs +1 -1
- package/lib/ram/RamAdapter.cjs +1 -1
- package/lib/ram/RamPaginator.cjs +1 -1
- package/lib/ram/RamStatement.cjs +1 -1
- package/lib/ram/constants.cjs +1 -1
- package/lib/ram/handlers.cjs +1 -1
- package/lib/ram/index.cjs +1 -1
- package/lib/ram/types.cjs +1 -1
- package/lib/repository/Repository.cjs +19 -16
- package/lib/repository/Repository.d.ts +2 -2
- package/lib/repository/constants.cjs +1 -1
- package/lib/repository/decorators.cjs +2 -2
- package/lib/repository/errors.cjs +1 -1
- package/lib/repository/index.cjs +1 -1
- package/lib/repository/injectables.cjs +4 -2
- package/lib/repository/types.cjs +1 -1
- package/lib/repository/utils.cjs +1 -1
- package/lib/services/ModelService.cjs +4 -2
- package/lib/services/ModelService.d.ts +4 -5
- package/lib/services/PersistenceService.cjs +1 -1
- package/lib/services/index.cjs +1 -1
- package/lib/services/services.cjs +1 -1
- package/lib/tasks/CleanUpTask.cjs +1 -1
- package/lib/tasks/TaskContext.cjs +9 -2
- package/lib/tasks/TaskContext.d.ts +3 -1
- package/lib/tasks/TaskEngine.cjs +84 -20
- package/lib/tasks/TaskEngine.d.ts +2 -0
- package/lib/tasks/TaskErrors.cjs +1 -1
- package/lib/tasks/TaskEventBus.cjs +1 -1
- package/lib/tasks/TaskEventService.cjs +20 -0
- package/lib/tasks/TaskEventService.d.ts +7 -0
- package/lib/tasks/TaskHandler.cjs +1 -1
- package/lib/tasks/TaskHandlerRegistry.cjs +1 -1
- package/lib/tasks/TaskService.cjs +10 -36
- package/lib/tasks/TaskService.d.ts +5 -1
- package/lib/tasks/TaskStateChangeError.cjs +1 -1
- package/lib/tasks/TaskTracker.cjs +1 -1
- package/lib/tasks/builder.cjs +1 -1
- package/lib/tasks/constants.cjs +1 -1
- package/lib/tasks/decorators.cjs +1 -1
- package/lib/tasks/index.cjs +2 -1
- package/lib/tasks/index.d.ts +1 -0
- package/lib/tasks/logging.cjs +4 -7
- package/lib/tasks/models/TaskBackoffModel.cjs +1 -1
- package/lib/tasks/models/TaskErrorModel.cjs +1 -1
- package/lib/tasks/models/TaskEventModel.cjs +1 -1
- package/lib/tasks/models/TaskIOSerializer.cjs +1 -1
- package/lib/tasks/models/TaskLogEntryModel.cjs +5 -1
- package/lib/tasks/models/TaskLogEntryModel.d.ts +1 -0
- package/lib/tasks/models/TaskModel.cjs +1 -1
- package/lib/tasks/models/TaskStepResultModel.cjs +1 -1
- package/lib/tasks/models/TaskStepSpecModel.cjs +6 -2
- package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -0
- package/lib/tasks/models/index.cjs +1 -1
- package/lib/tasks/types.cjs +1 -1
- package/lib/tasks/types.d.ts +8 -3
- package/lib/tasks/utils.cjs +1 -1
- package/lib/utils/ContextualLoggedClass.cjs +1 -1
- package/lib/utils/decorators.cjs +1 -1
- package/lib/utils/errors.cjs +1 -1
- package/lib/utils/index.cjs +1 -1
- package/lib/utils/throttling.cjs +1 -1
- package/lib/utils/types.cjs +1 -1
- package/lib/utils/utils.cjs +22 -5
- package/lib/utils/utils.d.ts +2 -1
- package/lib/workers/TaskEngine.cjs +15 -4
- package/lib/workers/WorkThreadEnvironment.cjs +1 -1
- package/lib/workers/index.cjs +1 -1
- package/lib/workers/messages.cjs +1 -1
- package/lib/workers/types.cjs +1 -1
- package/lib/workers/workerThread.cjs +35 -7
- package/package.json +1 -1
- package/dist/core.cjs.map +0 -1
- package/dist/core.js.map +0 -1
- package/lib/auth/constants.js.map +0 -1
- package/lib/auth/decorators.js.map +0 -1
- package/lib/auth/index.js.map +0 -1
- package/lib/esm/auth/constants.js.map +0 -1
- package/lib/esm/auth/decorators.js.map +0 -1
- package/lib/esm/auth/index.js.map +0 -1
- package/lib/esm/fs/FilesystemAdapter.js.map +0 -1
- package/lib/esm/fs/FsDispatch.js.map +0 -1
- package/lib/esm/fs/helpers.js.map +0 -1
- package/lib/esm/fs/index.js.map +0 -1
- package/lib/esm/fs/indexStore.js.map +0 -1
- package/lib/esm/fs/locks/FilesystemLock.js.map +0 -1
- package/lib/esm/fs/locks/FilesystemMultiLock.js.map +0 -1
- package/lib/esm/fs/types.js.map +0 -1
- package/lib/esm/identity/decorators.js.map +0 -1
- package/lib/esm/identity/index.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/interfaces/ContextuallyLogged.js.map +0 -1
- package/lib/esm/interfaces/ErrorParser.js.map +0 -1
- package/lib/esm/interfaces/Executor.js.map +0 -1
- package/lib/esm/interfaces/Observable.js.map +0 -1
- package/lib/esm/interfaces/Observer.js.map +0 -1
- package/lib/esm/interfaces/Paginatable.js.map +0 -1
- package/lib/esm/interfaces/Queriable.js.map +0 -1
- package/lib/esm/interfaces/RawExecutor.js.map +0 -1
- package/lib/esm/interfaces/SequenceOptions.js.map +0 -1
- package/lib/esm/interfaces/index.js.map +0 -1
- package/lib/esm/migrations/Migration.js.map +0 -1
- package/lib/esm/migrations/MigrationService.js.map +0 -1
- package/lib/esm/migrations/MigrationTasks.js.map +0 -1
- package/lib/esm/migrations/constants.js.map +0 -1
- package/lib/esm/migrations/decorators.js.map +0 -1
- package/lib/esm/migrations/index.js.map +0 -1
- package/lib/esm/migrations/types.js.map +0 -1
- package/lib/esm/model/BaseModel.js.map +0 -1
- package/lib/esm/model/SequenceModel.js.map +0 -1
- package/lib/esm/model/construction.js.map +0 -1
- package/lib/esm/model/decorators.js.map +0 -1
- package/lib/esm/model/index.js.map +0 -1
- package/lib/esm/model/indexing.js.map +0 -1
- package/lib/esm/model/types.js.map +0 -1
- package/lib/esm/overrides/Metadata.js.map +0 -1
- package/lib/esm/overrides/Model.js.map +0 -1
- package/lib/esm/overrides/ModelBuilder.js.map +0 -1
- package/lib/esm/overrides/index.js.map +0 -1
- package/lib/esm/overrides/injectables.js.map +0 -1
- package/lib/esm/overrides/overrides.js.map +0 -1
- package/lib/esm/persistence/Adapter.js.map +0 -1
- package/lib/esm/persistence/Context.js.map +0 -1
- package/lib/esm/persistence/ContextLock.js.map +0 -1
- package/lib/esm/persistence/Dispatch.js.map +0 -1
- package/lib/esm/persistence/ObserverHandler.js.map +0 -1
- package/lib/esm/persistence/Sequence.js.map +0 -1
- package/lib/esm/persistence/constants.js.map +0 -1
- package/lib/esm/persistence/decorators.js.map +0 -1
- package/lib/esm/persistence/errors.js.map +0 -1
- package/lib/esm/persistence/event-filters.js.map +0 -1
- package/lib/esm/persistence/generators.js.map +0 -1
- package/lib/esm/persistence/index.js.map +0 -1
- package/lib/esm/persistence/transactions.js.map +0 -1
- package/lib/esm/persistence/types.js.map +0 -1
- package/lib/esm/query/Condition.js.map +0 -1
- package/lib/esm/query/MethodQueryBuilder.js.map +0 -1
- package/lib/esm/query/Paginator.js.map +0 -1
- package/lib/esm/query/Statement.js.map +0 -1
- package/lib/esm/query/constants.js.map +0 -1
- package/lib/esm/query/decorators.js.map +0 -1
- package/lib/esm/query/errors.js.map +0 -1
- package/lib/esm/query/index.js.map +0 -1
- package/lib/esm/query/options.js.map +0 -1
- package/lib/esm/query/selectors.js.map +0 -1
- package/lib/esm/query/types.js.map +0 -1
- package/lib/esm/query/utils.js.map +0 -1
- package/lib/esm/ram/RamAdapter.js.map +0 -1
- package/lib/esm/ram/RamPaginator.js.map +0 -1
- package/lib/esm/ram/RamStatement.js.map +0 -1
- package/lib/esm/ram/constants.js.map +0 -1
- package/lib/esm/ram/handlers.js.map +0 -1
- package/lib/esm/ram/index.js.map +0 -1
- package/lib/esm/ram/types.js.map +0 -1
- package/lib/esm/repository/Repository.js.map +0 -1
- package/lib/esm/repository/constants.js.map +0 -1
- package/lib/esm/repository/decorators.js.map +0 -1
- package/lib/esm/repository/errors.js.map +0 -1
- package/lib/esm/repository/index.js.map +0 -1
- package/lib/esm/repository/injectables.js.map +0 -1
- package/lib/esm/repository/types.js.map +0 -1
- package/lib/esm/repository/utils.js.map +0 -1
- package/lib/esm/services/ModelService.js.map +0 -1
- package/lib/esm/services/PersistenceService.js.map +0 -1
- package/lib/esm/services/index.js.map +0 -1
- package/lib/esm/services/services.js.map +0 -1
- package/lib/esm/tasks/CleanUpTask.js.map +0 -1
- package/lib/esm/tasks/TaskContext.js.map +0 -1
- package/lib/esm/tasks/TaskEngine.js.map +0 -1
- package/lib/esm/tasks/TaskErrors.js.map +0 -1
- package/lib/esm/tasks/TaskEventBus.js.map +0 -1
- package/lib/esm/tasks/TaskHandler.js.map +0 -1
- package/lib/esm/tasks/TaskHandlerRegistry.js.map +0 -1
- package/lib/esm/tasks/TaskService.js.map +0 -1
- package/lib/esm/tasks/TaskStateChangeError.js.map +0 -1
- package/lib/esm/tasks/TaskTracker.js.map +0 -1
- package/lib/esm/tasks/builder.js.map +0 -1
- package/lib/esm/tasks/constants.js.map +0 -1
- package/lib/esm/tasks/decorators.js.map +0 -1
- package/lib/esm/tasks/index.js.map +0 -1
- package/lib/esm/tasks/logging.js.map +0 -1
- package/lib/esm/tasks/models/TaskBackoffModel.js.map +0 -1
- package/lib/esm/tasks/models/TaskErrorModel.js.map +0 -1
- package/lib/esm/tasks/models/TaskEventModel.js.map +0 -1
- package/lib/esm/tasks/models/TaskIOSerializer.js.map +0 -1
- package/lib/esm/tasks/models/TaskLogEntryModel.js.map +0 -1
- package/lib/esm/tasks/models/TaskModel.js.map +0 -1
- package/lib/esm/tasks/models/TaskStepResultModel.js.map +0 -1
- package/lib/esm/tasks/models/TaskStepSpecModel.js.map +0 -1
- package/lib/esm/tasks/models/index.js.map +0 -1
- package/lib/esm/tasks/types.js.map +0 -1
- package/lib/esm/tasks/utils.js.map +0 -1
- package/lib/esm/utils/ContextualLoggedClass.js.map +0 -1
- package/lib/esm/utils/decorators.js.map +0 -1
- package/lib/esm/utils/errors.js.map +0 -1
- package/lib/esm/utils/index.js.map +0 -1
- package/lib/esm/utils/throttling.js.map +0 -1
- package/lib/esm/utils/types.js.map +0 -1
- package/lib/esm/utils/utils.js.map +0 -1
- package/lib/esm/workers/TaskEngine.js.map +0 -1
- package/lib/esm/workers/WorkThreadEnvironment.js.map +0 -1
- package/lib/esm/workers/index.js.map +0 -1
- package/lib/esm/workers/messages.js.map +0 -1
- package/lib/esm/workers/types.js.map +0 -1
- package/lib/esm/workers/workerThread.js.map +0 -1
- package/lib/fs/FilesystemAdapter.js.map +0 -1
- package/lib/fs/FsDispatch.js.map +0 -1
- package/lib/fs/helpers.js.map +0 -1
- package/lib/fs/index.js.map +0 -1
- package/lib/fs/indexStore.js.map +0 -1
- package/lib/fs/locks/FilesystemLock.js.map +0 -1
- package/lib/fs/locks/FilesystemMultiLock.js.map +0 -1
- package/lib/fs/types.js.map +0 -1
- package/lib/identity/decorators.js.map +0 -1
- package/lib/identity/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/interfaces/ContextuallyLogged.js.map +0 -1
- package/lib/interfaces/ErrorParser.js.map +0 -1
- package/lib/interfaces/Executor.js.map +0 -1
- package/lib/interfaces/Observable.js.map +0 -1
- package/lib/interfaces/Observer.js.map +0 -1
- package/lib/interfaces/Paginatable.js.map +0 -1
- package/lib/interfaces/Queriable.js.map +0 -1
- package/lib/interfaces/RawExecutor.js.map +0 -1
- package/lib/interfaces/SequenceOptions.js.map +0 -1
- package/lib/interfaces/index.js.map +0 -1
- package/lib/migrations/Migration.js.map +0 -1
- package/lib/migrations/MigrationService.js.map +0 -1
- package/lib/migrations/MigrationTasks.js.map +0 -1
- package/lib/migrations/constants.js.map +0 -1
- package/lib/migrations/decorators.js.map +0 -1
- package/lib/migrations/index.js.map +0 -1
- package/lib/migrations/types.js.map +0 -1
- package/lib/model/BaseModel.js.map +0 -1
- package/lib/model/SequenceModel.js.map +0 -1
- package/lib/model/construction.js.map +0 -1
- package/lib/model/decorators.js.map +0 -1
- package/lib/model/index.js.map +0 -1
- package/lib/model/indexing.js.map +0 -1
- package/lib/model/types.js.map +0 -1
- package/lib/overrides/Metadata.js.map +0 -1
- package/lib/overrides/Model.js.map +0 -1
- package/lib/overrides/ModelBuilder.js.map +0 -1
- package/lib/overrides/index.js.map +0 -1
- package/lib/overrides/injectables.js.map +0 -1
- package/lib/overrides/overrides.js.map +0 -1
- package/lib/persistence/Adapter.js.map +0 -1
- package/lib/persistence/Context.js.map +0 -1
- package/lib/persistence/ContextLock.js.map +0 -1
- package/lib/persistence/Dispatch.js.map +0 -1
- package/lib/persistence/ObserverHandler.js.map +0 -1
- package/lib/persistence/Sequence.js.map +0 -1
- package/lib/persistence/constants.js.map +0 -1
- package/lib/persistence/decorators.js.map +0 -1
- package/lib/persistence/errors.js.map +0 -1
- package/lib/persistence/event-filters.js.map +0 -1
- package/lib/persistence/generators.js.map +0 -1
- package/lib/persistence/index.js.map +0 -1
- package/lib/persistence/transactions.js.map +0 -1
- package/lib/persistence/types.js.map +0 -1
- package/lib/query/Condition.js.map +0 -1
- package/lib/query/MethodQueryBuilder.js.map +0 -1
- package/lib/query/Paginator.js.map +0 -1
- package/lib/query/Statement.js.map +0 -1
- package/lib/query/constants.js.map +0 -1
- package/lib/query/decorators.js.map +0 -1
- package/lib/query/errors.js.map +0 -1
- package/lib/query/index.js.map +0 -1
- package/lib/query/options.js.map +0 -1
- package/lib/query/selectors.js.map +0 -1
- package/lib/query/types.js.map +0 -1
- package/lib/query/utils.js.map +0 -1
- package/lib/ram/RamAdapter.js.map +0 -1
- package/lib/ram/RamPaginator.js.map +0 -1
- package/lib/ram/RamStatement.js.map +0 -1
- package/lib/ram/constants.js.map +0 -1
- package/lib/ram/handlers.js.map +0 -1
- package/lib/ram/index.js.map +0 -1
- package/lib/ram/types.js.map +0 -1
- package/lib/repository/Repository.js.map +0 -1
- package/lib/repository/constants.js.map +0 -1
- package/lib/repository/decorators.js.map +0 -1
- package/lib/repository/errors.js.map +0 -1
- package/lib/repository/index.js.map +0 -1
- package/lib/repository/injectables.js.map +0 -1
- package/lib/repository/types.js.map +0 -1
- package/lib/repository/utils.js.map +0 -1
- package/lib/services/ModelService.js.map +0 -1
- package/lib/services/PersistenceService.js.map +0 -1
- package/lib/services/index.js.map +0 -1
- package/lib/services/services.js.map +0 -1
- package/lib/tasks/CleanUpTask.js.map +0 -1
- package/lib/tasks/TaskContext.js.map +0 -1
- package/lib/tasks/TaskEngine.js.map +0 -1
- package/lib/tasks/TaskErrors.js.map +0 -1
- package/lib/tasks/TaskEventBus.js.map +0 -1
- package/lib/tasks/TaskHandler.js.map +0 -1
- package/lib/tasks/TaskHandlerRegistry.js.map +0 -1
- package/lib/tasks/TaskService.js.map +0 -1
- package/lib/tasks/TaskStateChangeError.js.map +0 -1
- package/lib/tasks/TaskTracker.js.map +0 -1
- package/lib/tasks/builder.js.map +0 -1
- package/lib/tasks/constants.js.map +0 -1
- package/lib/tasks/decorators.js.map +0 -1
- package/lib/tasks/index.js.map +0 -1
- package/lib/tasks/logging.js.map +0 -1
- package/lib/tasks/models/TaskBackoffModel.js.map +0 -1
- package/lib/tasks/models/TaskErrorModel.js.map +0 -1
- package/lib/tasks/models/TaskEventModel.js.map +0 -1
- package/lib/tasks/models/TaskIOSerializer.js.map +0 -1
- package/lib/tasks/models/TaskLogEntryModel.js.map +0 -1
- package/lib/tasks/models/TaskModel.js.map +0 -1
- package/lib/tasks/models/TaskStepResultModel.js.map +0 -1
- package/lib/tasks/models/TaskStepSpecModel.js.map +0 -1
- package/lib/tasks/models/index.js.map +0 -1
- package/lib/tasks/types.js.map +0 -1
- package/lib/tasks/utils.js.map +0 -1
- package/lib/utils/ContextualLoggedClass.js.map +0 -1
- package/lib/utils/decorators.js.map +0 -1
- package/lib/utils/errors.js.map +0 -1
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/throttling.js.map +0 -1
- package/lib/utils/types.js.map +0 -1
- package/lib/utils/utils.js.map +0 -1
- package/lib/workers/TaskEngine.js.map +0 -1
- package/lib/workers/WorkThreadEnvironment.js.map +0 -1
- package/lib/workers/index.js.map +0 -1
- package/lib/workers/messages.js.map +0 -1
- package/lib/workers/types.js.map +0 -1
- package/lib/workers/workerThread.js.map +0 -1
|
@@ -822,4 +822,4 @@ __decorate([
|
|
|
822
822
|
__metadata("design:paramtypes", [void 0]),
|
|
823
823
|
__metadata("design:returntype", Promise)
|
|
824
824
|
], Statement.prototype, "execute", null);
|
|
825
|
-
//# sourceMappingURL=Statement.js.map
|
|
825
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L1N0YXRlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFTakMsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBb0I7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUF1Qi9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsc0NBQWlDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxtQ0FBOEI7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBaUI7QUFFdEMsT0FBTyxFQUVMLHFCQUFxQixHQUV0Qiw0Q0FBdUM7QUFDeEMsT0FBTyxFQUEyQyxXQUFXLEVBQUUsbUJBQWdCO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLHVCQUFvQjtBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLHFDQUFnQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLHNDQUFpQztBQUV0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrREc7QUFDSCxNQUFNLE9BQWdCLFNBTXBCLFNBQVEscUJBQW1DO0lBcUIzQyxZQUNZLE9BQWtDLEVBQ2xDLFNBQWlDO1FBRTNDLEtBQUssRUFBRSxDQUFDO1FBSEUsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbEMsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFabkMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFldEMsQ0FBQyxJQUFJLENBQUMsT0FB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d0NBaUNQIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBlbmZvcmNlREJEZWNvcmF0b3JzLFxuICBPcGVyYXRpb25LZXlzLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgRXhlY3V0b3IsIFJhd0V4ZWN1dG9yIH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcbmltcG9ydCB0eXBlIHtcbiAgRnJvbVNlbGVjdG9yLFxuICBHcm91cEJ5U2VsZWN0b3IsXG4gIE9yZGVyQnlTZWxlY3RvcixcbiAgT3JkZXJEaXJlY3Rpb25JbnB1dCxcbiAgU2VsZWN0U2VsZWN0b3IsXG59IGZyb20gXCIuL3NlbGVjdG9yc1wiO1xuaW1wb3J0IHsgQ29uZGl0aW9uIH0gZnJvbSBcIi4vQ29uZGl0aW9uXCI7XG5pbXBvcnQgeyBwcmVmaXhNZXRob2QgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IGZpbmFsLCBMb2dnZXIsIHRvQ2FtZWxDYXNlIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgdHlwZSB7XG4gIENvdW50RGlzdGluY3RPcHRpb24sXG4gIENvdW50T3B0aW9uLFxuICBEaXN0aW5jdE9wdGlvbixcbiAgR3JvdXBCeVJlc3VsdCxcbiAgTWF4T3B0aW9uLFxuICBNaW5PcHRpb24sXG4gIE9mZnNldE9wdGlvbixcbiAgT3JkZXJBbmRHcm91cE9wdGlvbixcbiAgT3JkZXJCeVJlc3VsdCxcbiAgT3JkZXJCeVRoZW5CeU9wdGlvbixcbiAgUHJlcGFyYWJsZVN0YXRlbWVudEV4ZWN1dG9yLFxuICBTZWxlY3RPcHRpb24sXG4gIFN0YXRlbWVudEV4ZWN1dG9yLFxuICBTdW1PcHRpb24sXG4gIEF2Z09wdGlvbixcbiAgV2hlcmVPcHRpb24sXG59IGZyb20gXCIuL29wdGlvbnNcIjtcbmltcG9ydCB7IFBhZ2luYXRhYmxlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvUGFnaW5hdGFibGVcIjtcbmltcG9ydCB7IFBhZ2luYXRvciB9IGZyb20gXCIuL1BhZ2luYXRvclwiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9BZGFwdGVyXCI7XG5pbXBvcnQgdHlwZSB7IEFkYXB0ZXJGbGFncywgQ29udGV4dE9mIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL3R5cGVzXCI7XG5pbXBvcnQgeyBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiLi4vcGVyc2lzdGVuY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEVycm9yIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL2Vycm9yc1wiO1xuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIHR5cGUgQ29udGV4dHVhbEFyZ3MsXG4gIENvbnRleHR1YWxMb2dnZWRDbGFzcyxcbiAgdHlwZSBNYXliZUNvbnRleHR1YWxBcmcsXG59IGZyb20gXCIuLi91dGlscy9Db250ZXh0dWFsTG9nZ2VkQ2xhc3NcIjtcbmltcG9ydCB7IERpcmVjdGlvbkxpbWl0T2Zmc2V0LCBQcmVwYXJlZFN0YXRlbWVudCwgUXVlcnlDbGF1c2UgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgR3JvdXBPcGVyYXRvciwgT3BlcmF0b3IsIFByZXBhcmVkU3RhdGVtZW50S2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24gfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9SZXBvc2l0b3J5XCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgY2xhc3MgZm9yIGRhdGFiYXNlIHF1ZXJ5IHN0YXRlbWVudHNcbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgZm91bmRhdGlvbiBmb3IgYnVpbGRpbmcgYW5kIGV4ZWN1dGluZyBkYXRhYmFzZSBxdWVyaWVzXG4gKlxuICogVGhpcyBhYnN0cmFjdCBjbGFzcyBpbXBsZW1lbnRzIHRoZSBxdWVyeSBidWlsZGVyIHBhdHRlcm4gZm9yIGNvbnN0cnVjdGluZ1xuICogZGF0YWJhc2UgcXVlcmllcy4gSXQgc3VwcG9ydHMgdmFyaW91cyBxdWVyeSBvcGVyYXRpb25zIGxpa2Ugc2VsZWN0LCBmcm9tLFxuICogd2hlcmUsIG9yZGVyQnksIGdyb3VwQnksIGxpbWl0LCBhbmQgb2Zmc2V0LiBJdCBhbHNvIHByb3ZpZGVzIG1ldGhvZHMgZm9yXG4gKiBleGVjdXRpbmcgcXVlcmllcyBhbmQgaGFuZGxpbmcgcGFnaW5hdGlvbi5cbiAqXG4gKiBAdGVtcGxhdGUgUSAtIFRoZSBxdWVyeSB0eXBlIHNwZWNpZmljIHRvIHRoZSBkYXRhYmFzZSBhZGFwdGVyXG4gKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIHRoaXMgc3RhdGVtZW50IG9wZXJhdGVzIG9uXG4gKiBAdGVtcGxhdGUgUiAtIFRoZSByZXR1cm4gdHlwZSBvZiB0aGUgcXVlcnlcbiAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIFEsIGFueSwgYW55Pn0gYWRhcHRlciAtIFRoZSBkYXRhYmFzZSBhZGFwdGVyIHRvIHVzZSBmb3IgZXhlY3V0aW5nIHF1ZXJpZXNcbiAqIEBjbGFzcyBTdGF0ZW1lbnRcbiAqIEBleGFtcGxlXG4gKiAvLyBDcmVhdGUgYSBzdGF0ZW1lbnQgdG8gcXVlcnkgdXNlcnNcbiAqIGNvbnN0IHN0YXRlbWVudCA9IG5ldyBTUUxTdGF0ZW1lbnQoYWRhcHRlcik7XG4gKiBjb25zdCB1c2VycyA9IGF3YWl0IHN0YXRlbWVudFxuICogICAuc2VsZWN0KClcbiAqICAgLmZyb20oVXNlcilcbiAqICAgLndoZXJlKENvbmRpdGlvbi5hdHRyaWJ1dGUoXCJzdGF0dXNcIikuZXEoXCJhY3RpdmVcIikpXG4gKiAgIC5vcmRlckJ5KFtcImNyZWF0ZWRBdFwiLCBcIkRFU0NcIl0pXG4gKiAgIC5saW1pdCgxMClcbiAqICAgLmV4ZWN1dGUoKTtcbiAqXG4gKiAvLyBVc2UgcGFnaW5hdGlvblxuICogY29uc3QgcGFnaW5hdG9yID0gYXdhaXQgc3RhdGVtZW50XG4gKiAgIC5zZWxlY3QoKVxuICogICAuZnJvbShVc2VyKVxuICogICAucGFnaW5hdGUoMjApOyAvLyAyMCB1c2VycyBwZXIgcGFnZVxuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlbWVudFxuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IERhdGFiYXNlXG4gKlxuICogICBDbGllbnQtPj5TdGF0ZW1lbnQ6IHNlbGVjdCgpXG4gKiAgIENsaWVudC0+PlN0YXRlbWVudDogZnJvbShNb2RlbClcbiAqICAgQ2xpZW50LT4+U3RhdGVtZW50OiB3aGVyZShjb25kaXRpb24pXG4gKiAgIENsaWVudC0+PlN0YXRlbWVudDogb3JkZXJCeShbZmllbGQsIGRpcmVjdGlvbl0pXG4gKiAgIENsaWVudC0+PlN0YXRlbWVudDogbGltaXQodmFsdWUpXG4gKiAgIENsaWVudC0+PlN0YXRlbWVudDogZXhlY3V0ZSgpXG4gKiAgIFN0YXRlbWVudC0+PlN0YXRlbWVudDogYnVpbGQoKVxuICogICBTdGF0ZW1lbnQtPj5BZGFwdGVyOiByYXcocXVlcnkpXG4gKiAgIEFkYXB0ZXItPj5EYXRhYmFzZTogZXhlY3V0ZSBxdWVyeVxuICogICBEYXRhYmFzZS0tPj5BZGFwdGVyOiByZXR1cm4gcmVzdWx0c1xuICogICBBZGFwdGVyLS0+PlN0YXRlbWVudDogcmV0dXJuIHByb2Nlc3NlZCByZXN1bHRzXG4gKiAgIFN0YXRlbWVudC0tPj5DbGllbnQ6IHJldHVybiBmaW5hbCByZXN1bHRzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdGF0ZW1lbnQ8XG4gICAgTSBleHRlbmRzIE1vZGVsLFxuICAgIEEgZXh0ZW5kcyBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4sXG4gICAgUixcbiAgICBRID0gQSBleHRlbmRzIEFkYXB0ZXI8YW55LCBhbnksIGluZmVyIFEsIGFueT4gPyBRIDogbmV2ZXIsXG4gID5cbiAgZXh0ZW5kcyBDb250ZXh0dWFsTG9nZ2VkQ2xhc3M8Q29udGV4dE9mPEE+PlxuICBpbXBsZW1lbnRzIEV4ZWN1dG9yPFI+LCBSYXdFeGVjdXRvcjxRPiwgUGFnaW5hdGFibGU8TSwgUiwgUT5cbntcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdFNlbGVjdG9yPzogU2VsZWN0U2VsZWN0b3I8TT5bXTtcbiAgcHJvdGVjdGVkIGRpc3RpbmN0U2VsZWN0b3I/OiBTZWxlY3RTZWxlY3RvcjxNPjtcbiAgcHJvdGVjdGVkIG1heFNlbGVjdG9yPzogU2VsZWN0U2VsZWN0b3I8TT47XG4gIHByb3RlY3RlZCBtaW5TZWxlY3Rvcj86IFNlbGVjdFNlbGVjdG9yPE0+O1xuICBwcm90ZWN0ZWQgY291bnRTZWxlY3Rvcj86IFNlbGVjdFNlbGVjdG9yPE0+IHwgbnVsbDtcbiAgcHJvdGVjdGVkIGNvdW50RGlzdGluY3RTZWxlY3Rvcj86IFNlbGVjdFNlbGVjdG9yPE0+IHwgbnVsbDtcbiAgcHJvdGVjdGVkIHN1bVNlbGVjdG9yPzogU2VsZWN0U2VsZWN0b3I8TT47XG4gIHByb3RlY3RlZCBhdmdTZWxlY3Rvcj86IFNlbGVjdFNlbGVjdG9yPE0+O1xuICBwcm90ZWN0ZWQgX2luQ291bnRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBmcm9tU2VsZWN0b3IhOiBDb25zdHJ1Y3RvcjxNPjtcbiAgcHJvdGVjdGVkIHdoZXJlQ29uZGl0aW9uPzogQ29uZGl0aW9uPE0+O1xuICBwcm90ZWN0ZWQgb3JkZXJCeVNlbGVjdG9ycz86IE9yZGVyQnlTZWxlY3RvcjxNPltdO1xuICBwcm90ZWN0ZWQgZ3JvdXBCeVNlbGVjdG9ycz86IEdyb3VwQnlTZWxlY3RvcjxNPltdO1xuICBwcm90ZWN0ZWQgbGltaXRTZWxlY3Rvcj86IG51bWJlcjtcbiAgcHJvdGVjdGVkIG9mZnNldFNlbGVjdG9yPzogbnVtYmVyO1xuXG4gIHByb3RlY3RlZCBwcmVwYXJlZD86IFByZXBhcmVkU3RhdGVtZW50PE0+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgYWRhcHRlcjogQWRhcHRlcjxhbnksIGFueSwgUSwgYW55PixcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgW3RoaXMuZXhlY3V0ZSwgdGhpcy5wYWdpbmF0ZV0uZm9yRWFjaCgobSkgPT4ge1xuICAgICAgcHJlZml4TWV0aG9kKFxuICAgICAgICB0aGlzLFxuICAgICAgICBtLFxuICAgICAgICAoLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj4pID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb25QcmVmaXgobSwgLi4uYXJncyk7XG4gICAgICAgIH0sXG4gICAgICAgIG0ubmFtZVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBleGVjdXRpb25QcmVmaXgoXG4gICAgbWV0aG9kOiBhbnksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKSB7XG4gICAgY29uc3QgeyBjdHgsIGN0eEFyZ3MsIGxvZyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5hZGFwdGVyW1wibG9nQ3R4XCJdKFxuICAgICAgICBbdGhpcy5mcm9tU2VsZWN0b3IsIC4uLmFyZ3NdLFxuICAgICAgICBtZXRob2QubmFtZSA9PT0gdGhpcy5wYWdpbmF0ZS5uYW1lXG4gICAgICAgICAgPyBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRV9CWVxuICAgICAgICAgIDogUGVyc2lzdGVuY2VLZXlzLlFVRVJZLFxuICAgICAgICB0cnVlLFxuICAgICAgICB0aGlzLm92ZXJyaWRlcyB8fCB7fVxuICAgICAgKVxuICAgICkuZm9yKG1ldGhvZCk7XG5cbiAgICBjdHhBcmdzLnNoaWZ0KCk7XG5cbiAgICBjb25zdCBmb3JjZVNpbXBsZSA9IGN0eC5nZXQoXCJmb3JjZVByZXBhcmVTaW1wbGVRdWVyaWVzXCIpO1xuICAgIGNvbnN0IGZvcmNlQ29tcGxleCA9IGN0eC5nZXQoXCJmb3JjZVByZXBhcmVDb21wbGV4UXVlcmllc1wiKTtcbiAgICBsb2cuc2lsbHkoXG4gICAgICBgc3RhdGVtZW50IGZvcmNlIHNpbXBsZSAke2ZvcmNlU2ltcGxlfSwgZm9yY2VDb21wbGV4OiAke2ZvcmNlQ29tcGxleH1gXG4gICAgKTtcbiAgICAvLyBTaW1wbGUgcXVlcmllcyBvciBzaW1wbGUgYWdncmVnYXRpb24gcXVlcmllcyAoYWdncmVnYXRpb25zIHdpdGhvdXQgd2hlcmUgY29uZGl0aW9ucylcbiAgICAvLyBBbHNvIGV4Y2x1ZGUgbXVsdGktbGV2ZWwgZ3JvdXBCeSBmcm9tIHNpbXBsZSBhZ2dyZWdhdGlvbiBzcXVhc2hpbmdcbiAgICBjb25zdCBpc1NpbXBsZUFnZ3JlZ2F0aW9uID1cbiAgICAgIHRoaXMuaGFzQWdncmVnYXRpb24oKSAmJlxuICAgICAgIXRoaXMud2hlcmVDb25kaXRpb24gJiZcbiAgICAgICF0aGlzLnNlbGVjdFNlbGVjdG9yPy5sZW5ndGggJiZcbiAgICAgICh0aGlzLmdyb3VwQnlTZWxlY3RvcnM/Lmxlbmd0aCB8fCAwKSA8PSAxO1xuICAgIGlmIChcbiAgICAgIChmb3JjZVNpbXBsZSAmJiAodGhpcy5pc1NpbXBsZVF1ZXJ5KCkgfHwgaXNTaW1wbGVBZ2dyZWdhdGlvbikpIHx8XG4gICAgICBmb3JjZUNvbXBsZXhcbiAgICApIHtcbiAgICAgIGxvZy5zaWxseShcbiAgICAgICAgYHNxdWFzaGluZyAkeyFmb3JjZUNvbXBsZXggPyBcInNpbXBsZVwiIDogXCJjb21wbGV4XCJ9IHF1ZXJ5IHRvIHByZXBhcmVkIHN0YXRlbWVudGBcbiAgICAgICk7XG4gICAgICBhd2FpdCB0aGlzLnByZXBhcmUoY3R4KTtcbiAgICAgIGxvZy5zaWxseShcbiAgICAgICAgYHNxdWFzaGVkICR7IWZvcmNlQ29tcGxleCA/IFwic2ltcGxlXCIgOiBcImNvbXBsZXhcIn0gcXVlcnkgdG8gJHtKU09OLnN0cmluZ2lmeSh0aGlzLnByZXBhcmVkLCBudWxsLCAyKX1gXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gY3R4QXJncztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgbG9nKCk6IExvZ2dlciB7XG4gICAgcmV0dXJuICh0aGlzLmFkYXB0ZXIgYXMgYW55KS5sb2cuZm9yKFN0YXRlbWVudCk7XG4gIH1cblxuICBzZWxlY3Q8XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIFMgZXh0ZW5kcyByZWFkb25seSBTZWxlY3RTZWxlY3RvcjxNPltdLFxuICA+KCk6IFNlbGVjdE9wdGlvbjxNLCBNW10+O1xuICBzZWxlY3Q8UyBleHRlbmRzIHJlYWRvbmx5IFNlbGVjdFNlbGVjdG9yPE0+W10+KFxuICAgIHNlbGVjdG9yOiByZWFkb25seSBbLi4uU11cbiAgKTogU2VsZWN0T3B0aW9uPE0sIFBpY2s8TSwgU1tudW1iZXJdPltdPjtcblxuICBAZmluYWwoKVxuICBzZWxlY3Q8UyBleHRlbmRzIHJlYWRvbmx5IFNlbGVjdFNlbGVjdG9yPE0+W10+KFxuICAgIHNlbGVjdG9yPzogcmVhZG9ubHkgWy4uLlNdXG4gICk6IFNlbGVjdE9wdGlvbjxNLCBNW10+IHwgU2VsZWN0T3B0aW9uPE0sIFBpY2s8TSwgU1tudW1iZXJdPltdPiB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFwic2VsZWN0U2VsZWN0b3JcIiwge1xuICAgICAgdmFsdWU6IHNlbGVjdG9yLFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0pO1xuICAgIHJldHVybiB0aGlzIGFzIFNlbGVjdE9wdGlvbjxNLCBNW10+IHwgU2VsZWN0T3B0aW9uPE0sIFBpY2s8TSwgU1tudW1iZXJdPltdPjtcbiAgfVxuXG4gIC8vIE92ZXJsb2FkIGZvciBzdGFuZGFsb25lIGRpc3RpbmN0IC0gcmVxdWlyZXMgYSBzZWxlY3RvclxuICBkaXN0aW5jdDxTIGV4dGVuZHMgU2VsZWN0U2VsZWN0b3I8TT4+KHNlbGVjdG9yOiBTKTogRGlzdGluY3RPcHRpb248TSwgTVtTXVtdPjtcbiAgLy8gT3ZlcmxvYWQgZm9yIGNvdW50KCkuZGlzdGluY3QoKSAtIG5vIHNlbGVjdG9yIG5lZWRlZFxuICBkaXN0aW5jdCgpOiBDb3VudERpc3RpbmN0T3B0aW9uPE0+O1xuXG4gIEBmaW5hbCgpXG4gIGRpc3RpbmN0PFMgZXh0ZW5kcyBTZWxlY3RTZWxlY3RvcjxNPj4oXG4gICAgc2VsZWN0b3I/OiBTXG4gICk6IERpc3RpbmN0T3B0aW9uPE0sIE1bU11bXT4gfCBDb3VudERpc3RpbmN0T3B0aW9uPE0+IHtcbiAgICAvLyBXaGVuIGNoYWluZWQgYWZ0ZXIgY291bnQoKSwgbWFrZSBpdCBhIGNvdW50IGRpc3RpbmN0XG4gICAgaWYgKHRoaXMuX2luQ291bnRNb2RlKSB7XG4gICAgICAvLyBVc2UgdGhlIGNvdW50IHNlbGVjdG9yIGFzIHRoZSBmaWVsZCB0byBjb3VudCBkaXN0aW5jdCBvblxuICAgICAgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgPSB0aGlzLmNvdW50U2VsZWN0b3I7XG4gICAgICB0aGlzLmNvdW50U2VsZWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9pbkNvdW50TW9kZSA9IGZhbHNlO1xuICAgICAgcmV0dXJuIHRoaXMgYXMgdW5rbm93biBhcyBDb3VudERpc3RpbmN0T3B0aW9uPE0+O1xuICAgIH1cbiAgICAvLyBTdGFuZGFsb25lIGRpc3RpbmN0IHJlcXVpcmVzIGEgc2VsZWN0b3JcbiAgICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcbiAgICAgICAgXCJkaXN0aW5jdCgpIHJlcXVpcmVzIGEgc2VsZWN0b3Igd2hlbiBub3QgY2hhaW5lZCBhZnRlciBjb3VudCgpXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZGlzdGluY3RTZWxlY3RvciA9IHNlbGVjdG9yO1xuICAgIHJldHVybiB0aGlzIGFzIHVua25vd24gYXMgRGlzdGluY3RPcHRpb248TSwgTVtTXVtdPjtcbiAgfVxuXG4gIEBmaW5hbCgpXG4gIG1heDxTIGV4dGVuZHMgU2VsZWN0U2VsZWN0b3I8TT4+KHNlbGVjdG9yOiBTKTogTWF4T3B0aW9uPE0sIE1bU10+IHtcbiAgICB0aGlzLm1heFNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXMgYXMgTWF4T3B0aW9uPE0sIE1bU10+O1xuICB9XG5cbiAgQGZpbmFsKClcbiAgbWluPFMgZXh0ZW5kcyBTZWxlY3RTZWxlY3RvcjxNPj4oc2VsZWN0b3I6IFMpOiBNaW5PcHRpb248TSwgTVtTXT4ge1xuICAgIHRoaXMubWluU2VsZWN0b3IgPSBzZWxlY3RvcjtcbiAgICByZXR1cm4gdGhpcyBhcyBNaW5PcHRpb248TSwgTVtTXT47XG4gIH1cblxuICBAZmluYWwoKVxuICBzdW08UyBleHRlbmRzIFNlbGVjdFNlbGVjdG9yPE0+PihzZWxlY3RvcjogUyk6IFN1bU9wdGlvbjxNLCBudW1iZXI+IHtcbiAgICB0aGlzLnN1bVNlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXMgYXMgU3VtT3B0aW9uPE0sIG51bWJlcj47XG4gIH1cblxuICBAZmluYWwoKVxuICBhdmc8UyBleHRlbmRzIFNlbGVjdFNlbGVjdG9yPE0+PihzZWxlY3RvcjogUyk6IEF2Z09wdGlvbjxNLCBudW1iZXI+IHtcbiAgICB0aGlzLmF2Z1NlbGVjdG9yID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHRoaXMgYXMgQXZnT3B0aW9uPE0sIG51bWJlcj47XG4gIH1cblxuICBAZmluYWwoKVxuICBjb3VudDxTIGV4dGVuZHMgU2VsZWN0U2VsZWN0b3I8TT4+KHNlbGVjdG9yPzogUyk6IENvdW50T3B0aW9uPE0+IHtcbiAgICB0aGlzLmNvdW50U2VsZWN0b3IgPSBzZWxlY3RvciA/PyBudWxsO1xuICAgIHRoaXMuX2luQ291bnRNb2RlID0gdHJ1ZTtcbiAgICByZXR1cm4gdGhpcyBhcyB1bmtub3duIGFzIENvdW50T3B0aW9uPE0+O1xuICB9XG5cbiAgQGZpbmFsKClcbiAgcHVibGljIGZyb20oc2VsZWN0b3I6IEZyb21TZWxlY3RvcjxNPik6IFdoZXJlT3B0aW9uPE0sIFI+IHtcbiAgICB0aGlzLmZyb21TZWxlY3RvciA9IChcbiAgICAgIHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiA/IE1vZGVsLmdldChzZWxlY3RvcikgOiBzZWxlY3RvclxuICAgICkgYXMgQ29uc3RydWN0b3I8TT47XG4gICAgaWYgKCF0aGlzLmZyb21TZWxlY3RvcilcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGBDb3VsZCBub3QgZmluZCBzZWxlY3RvciBtb2RlbDogJHtzZWxlY3Rvcn1gKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIEBmaW5hbCgpXG4gIHB1YmxpYyB3aGVyZShjb25kaXRpb246IENvbmRpdGlvbjxNPik6IE9yZGVyQW5kR3JvdXBPcHRpb248TSwgUj4ge1xuICAgIHRoaXMud2hlcmVDb25kaXRpb24gPSBjb25kaXRpb247XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgb3JkZXJCeShzZWxlY3RvcjogT3JkZXJCeVNlbGVjdG9yPE0+KTogT3JkZXJCeVJlc3VsdDxNLCBSPjtcbiAgcHVibGljIG9yZGVyQnkoXG4gICAgYXR0cmlidXRlOiBrZXlvZiBNLFxuICAgIGRpcmVjdGlvbjogT3JkZXJEaXJlY3Rpb25JbnB1dFxuICApOiBPcmRlckJ5UmVzdWx0PE0sIFI+O1xuXG4gIEBmaW5hbCgpXG4gIHB1YmxpYyBvcmRlckJ5KFxuICAgIHNlbGVjdG9yT3JBdHRyaWJ1dGU6IE9yZGVyQnlTZWxlY3RvcjxNPiB8IGtleW9mIE0sXG4gICAgZGlyZWN0aW9uPzogT3JkZXJEaXJlY3Rpb25JbnB1dFxuICApOiBPcmRlckJ5UmVzdWx0PE0sIFI+IHtcbiAgICB0aGlzLm9yZGVyQnlTZWxlY3RvcnMgPSBbXG4gICAgICB0aGlzLm5vcm1hbGl6ZU9yZGVyQ3JpdGVyaW9uKHNlbGVjdG9yT3JBdHRyaWJ1dGUsIGRpcmVjdGlvbiksXG4gICAgXTtcbiAgICByZXR1cm4gdGhpcyBhcyBPcmRlckJ5UmVzdWx0PE0sIFI+O1xuICB9XG5cbiAgcHVibGljIHRoZW5CeShzZWxlY3RvcjogR3JvdXBCeVNlbGVjdG9yPE0+KTogR3JvdXBCeVJlc3VsdDxNPjtcbiAgcHVibGljIHRoZW5CeShzZWxlY3RvcjogT3JkZXJCeVNlbGVjdG9yPE0+KTogT3JkZXJCeVRoZW5CeU9wdGlvbjxNLCBSPjtcbiAgcHVibGljIHRoZW5CeShcbiAgICBhdHRyaWJ1dGU6IGtleW9mIE0sXG4gICAgZGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbklucHV0XG4gICk6IE9yZGVyQnlUaGVuQnlPcHRpb248TSwgUj47XG5cbiAgQGZpbmFsKClcbiAgcHVibGljIHRoZW5CeShcbiAgICBzZWxlY3Rvck9yQXR0cmlidXRlOiBPcmRlckJ5U2VsZWN0b3I8TT4gfCBrZXlvZiBNLFxuICAgIGRpcmVjdGlvbj86IE9yZGVyRGlyZWN0aW9uSW5wdXRcbiAgKTogT3JkZXJCeVRoZW5CeU9wdGlvbjxNLCBSPiB8IEdyb3VwQnlSZXN1bHQ8TT4ge1xuICAgIGNvbnN0IGlzT3JkZXJpbmdDcml0ZXJpb24gPVxuICAgICAgQXJyYXkuaXNBcnJheShzZWxlY3Rvck9yQXR0cmlidXRlKSB8fCB0eXBlb2YgZGlyZWN0aW9uICE9PSBcInVuZGVmaW5lZFwiO1xuICAgIGlmIChpc09yZGVyaW5nQ3JpdGVyaW9uKSB7XG4gICAgICBpZiAoIXRoaXMub3JkZXJCeVNlbGVjdG9ycyB8fCAhdGhpcy5vcmRlckJ5U2VsZWN0b3JzLmxlbmd0aClcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJ0aGVuQnkgcmVxdWlyZXMgb3JkZXJCeSB0byBiZSBjYWxsZWQgZmlyc3RcIik7XG4gICAgICB0aGlzLm9yZGVyQnlTZWxlY3RvcnMucHVzaChcbiAgICAgICAgdGhpcy5ub3JtYWxpemVPcmRlckNyaXRlcmlvbihzZWxlY3Rvck9yQXR0cmlidXRlLCBkaXJlY3Rpb24pXG4gICAgICApO1xuICAgICAgcmV0dXJuIHRoaXMgYXMgdW5rbm93biBhcyBPcmRlckJ5VGhlbkJ5T3B0aW9uPE0sIFI+O1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZ3JvdXBCeVNlbGVjdG9ycyB8fCAhdGhpcy5ncm91cEJ5U2VsZWN0b3JzLmxlbmd0aClcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICBcImdyb3VwQnkgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGNoYWluaW5nIGdyb3VwIHNlbGVjdG9yc1wiXG4gICAgICApO1xuICAgIHRoaXMuZ3JvdXBCeVNlbGVjdG9ycy5wdXNoKHNlbGVjdG9yT3JBdHRyaWJ1dGUgYXMgR3JvdXBCeVNlbGVjdG9yPE0+KTtcbiAgICByZXR1cm4gdGhpcyBhcyB1bmtub3duIGFzIEdyb3VwQnlSZXN1bHQ8TT47XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9yZGVyQ3JpdGVyaW9uKFxuICAgIHNlbGVjdG9yT3JBdHRyaWJ1dGU6IE9yZGVyQnlTZWxlY3RvcjxNPiB8IGtleW9mIE0sXG4gICAgZGlyZWN0aW9uPzogT3JkZXJEaXJlY3Rpb25JbnB1dFxuICApOiBPcmRlckJ5U2VsZWN0b3I8TT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdG9yT3JBdHRyaWJ1dGUpKSB7XG4gICAgICBjb25zdCBbYXR0cmlidXRlLCBkaXJdID0gc2VsZWN0b3JPckF0dHJpYnV0ZTtcbiAgICAgIHJldHVybiBbYXR0cmlidXRlLCB0aGlzLm5vcm1hbGl6ZU9yZGVyRGlyZWN0aW9uKGRpcildO1xuICAgIH1cbiAgICByZXR1cm4gW3NlbGVjdG9yT3JBdHRyaWJ1dGUsIHRoaXMubm9ybWFsaXplT3JkZXJEaXJlY3Rpb24oZGlyZWN0aW9uKV07XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZU9yZGVyRGlyZWN0aW9uKFxuICAgIGRpcmVjdGlvbj86IE9yZGVyRGlyZWN0aW9uSW5wdXRcbiAgKTogT3JkZXJEaXJlY3Rpb24ge1xuICAgIGlmICghZGlyZWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcbiAgICAgICAgXCJvcmRlckJ5IGRpcmVjdGlvbiBpcyByZXF1aXJlZCB3aGVuIHNwZWNpZnlpbmcgdGhlIGF0dHJpYnV0ZSBzZXBhcmF0ZWx5LlwiXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBub3JtYWxpemVkID0gU3RyaW5nKGRpcmVjdGlvbikudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAobm9ybWFsaXplZCA9PT0gT3JkZXJEaXJlY3Rpb24uQVNDKSByZXR1cm4gT3JkZXJEaXJlY3Rpb24uQVNDO1xuICAgIGlmIChub3JtYWxpemVkID09PSBPcmRlckRpcmVjdGlvbi5EU0MpIHJldHVybiBPcmRlckRpcmVjdGlvbi5EU0M7XG4gICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICBgSW52YWxpZCBPcmRlckJ5IGRpcmVjdGlvbiAke2RpcmVjdGlvbn0uIEV4cGVjdGVkIG9uZSBvZjogJHtPYmplY3QudmFsdWVzKE9yZGVyRGlyZWN0aW9uKS5qb2luKFwiLCBcIil9LmBcbiAgICApO1xuICB9XG5cbiAgQGZpbmFsKClcbiAgcHVibGljIGdyb3VwQnk8S2V5IGV4dGVuZHMgR3JvdXBCeVNlbGVjdG9yPE0+PihcbiAgICBzZWxlY3RvcjogS2V5XG4gICk6IEdyb3VwQnlSZXN1bHQ8TSwgW0tleV0+IHtcbiAgICBpZiAodGhpcy5vcmRlckJ5U2VsZWN0b3JzICYmIHRoaXMub3JkZXJCeVNlbGVjdG9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFwiZ3JvdXBCeSBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgb3JkZXJCeS5cIik7XG4gICAgfVxuICAgIHRoaXMuZ3JvdXBCeVNlbGVjdG9ycyA9IFtzZWxlY3Rvcl07XG4gICAgcmV0dXJuIHRoaXMgYXMgdW5rbm93biBhcyBHcm91cEJ5UmVzdWx0PE0sIFtLZXldPjtcbiAgfVxuXG4gIEBmaW5hbCgpXG4gIHB1YmxpYyBsaW1pdCh2YWx1ZTogbnVtYmVyKTogT2Zmc2V0T3B0aW9uPE0sIFI+IHtcbiAgICB0aGlzLmxpbWl0U2VsZWN0b3IgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIEBmaW5hbCgpXG4gIHB1YmxpYyBvZmZzZXQodmFsdWU6IG51bWJlcik6IFByZXBhcmFibGVTdGF0ZW1lbnRFeGVjdXRvcjxNLCBSPiB7XG4gICAgdGhpcy5vZmZzZXRTZWxlY3RvciA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgQGZpbmFsKClcbiAgYXN5bmMgZXhlY3V0ZSguLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+Pik6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZXhlY3V0ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLnByZXBhcmVkKSByZXR1cm4gdGhpcy5leGVjdXRlUHJlcGFyZWQoLi4uKGFyZ3MgYXMgYW55KSk7XG4gICAgICBsb2cuc2lsbHkoYEJ1aWxkaW5nIHJhdyBzdGF0ZW1lbnQuLi5gKTtcbiAgICAgIGNvbnN0IHF1ZXJ5OiBRID0gdGhpcy5idWlsZCgpO1xuICAgICAgbG9nLnNpbGx5KGBleGVjdXRpbmcgcmF3IHN0YXRlbWVudGApO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IChhd2FpdCB0aGlzLnJhdzxSPihcbiAgICAgICAgcXVlcnksXG4gICAgICAgIC4uLihjdHhBcmdzIGFzIENvbnRleHR1YWxBcmdzPENvbnRleHRPZjxBPj4pXG4gICAgICApKSBhcyB1bmtub3duIGFzIFI7XG4gICAgICBpZiAodGhpcy5oYXNBZ2dyZWdhdGlvbigpKSB7XG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLnNlbGVjdFNlbGVjdG9yKSB7XG4gICAgICAgIGNvbnN0IHByb2Nlc3NvciA9IChyOiBhbnkpID0+IHRoaXMucHJvY2Vzc1JlY29yZChyLCBjdHgpO1xuXG4gICAgICAgIGlmICh0aGlzLmdyb3VwQnlTZWxlY3RvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGdyb3VwZWQgPSB0aGlzLnJldmVydEdyb3VwZWRSZXN1bHRzKHJlc3VsdHMsIHByb2Nlc3NvcikgYXMgUjtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQoZ3JvdXBlZCwgY3R4KSkgYXMgUjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHRzKSkge1xuICAgICAgICAgIGNvbnN0IG1hcHBlZCA9IHJlc3VsdHMubWFwKHByb2Nlc3NvcikgYXMgdW5rbm93biBhcyBSO1xuICAgICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5hcHBseUFmdGVySGFuZGxlcnNUb1Jlc3VsdChtYXBwZWQsIGN0eCkpIGFzIFI7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2luZ2xlID0gcHJvY2Vzc29yKHJlc3VsdHMpIGFzIHVua25vd24gYXMgUjtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmFwcGx5QWZ0ZXJIYW5kbGVyc1RvUmVzdWx0KHNpbmdsZSwgY3R4KSkgYXMgUjtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZXZlcnRHcm91cGVkUmVzdWx0cyhcbiAgICB2YWx1ZTogYW55LFxuICAgIHByb2Nlc3NvcjogKHJlY29yZDogYW55KSA9PiBhbnlcbiAgKTogYW55IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5tYXAocHJvY2Vzc29yKTtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModmFsdWUpLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PihcbiAgICAgICAgKGFjYywgW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gdGhpcy5yZXZlcnRHcm91cGVkUmVzdWx0cyh2YWwsIHByb2Nlc3Nvcik7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge31cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBleGVjdXRlUHJlcGFyZWQoXG4gICAgLi4uYXJnejogQ29udGV4dHVhbEFyZ3M8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCByZXBvID0gUmVwb3NpdG9yeS5mb3JNb2RlbCh0aGlzLmZyb21TZWxlY3RvciwgdGhpcy5hZGFwdGVyLmFsaWFzKTtcbiAgICBjb25zdCB7IG1ldGhvZCwgYXJncywgcGFyYW1zIH0gPSB0aGlzLnByZXBhcmVkIGFzIFByZXBhcmVkU3RhdGVtZW50PGFueT47XG4gICAgcmV0dXJuIHJlcG8uc3RhdGVtZW50KG1ldGhvZCwgLi4uYXJncywgcGFyYW1zLCAuLi5hcmd6KTtcbiAgfVxuXG4gIGFzeW5jIHJhdzxSPihyYXdJbnB1dDogUSwgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dE9mPEE+Pik6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IHsgY3R4LCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJhdyk7XG4gICAgY29uc3QgYWxsb3dSYXdTdGF0ZW1lbnRzID0gY3R4LmdldChcImFsbG93UmF3U3RhdGVtZW50c1wiKTtcbiAgICBpZiAoIWFsbG93UmF3U3RhdGVtZW50cylcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFxuICAgICAgICBcIlJhdyBzdGF0ZW1lbnRzIGFyZSBub3QgYWxsb3dlZCBpbiB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uXCJcbiAgICAgICk7XG4gICAgY29uc3QgcmVzdWx0czogUiA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXc8UiwgdHJ1ZT4oXG4gICAgICByYXdJbnB1dCxcbiAgICAgIHRydWUsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAodGhpcy5oYXNBZ2dyZWdhdGlvbigpKSB7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG4gICAgaWYgKCF0aGlzLnNlbGVjdFNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gcmVzdWx0cyBhcyB1bmtub3duIGFzIFI7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvY2Vzc29yID0gKHI6IGFueSkgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIGN0eCk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXN1bHRzKSkge1xuICAgICAgY29uc3QgbWFwcGVkID0gcmVzdWx0cy5tYXAocHJvY2Vzc29yKSBhcyB1bmtub3duIGFzIFI7XG4gICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQobWFwcGVkLCBjdHgpKSBhcyBSO1xuICAgIH1cbiAgICBjb25zdCBzaW5nbGUgPSBwcm9jZXNzb3IocmVzdWx0cykgYXMgdW5rbm93biBhcyBSO1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5hcHBseUFmdGVySGFuZGxlcnNUb1Jlc3VsdChzaW5nbGUsIGN0eCkpIGFzIFI7XG4gIH1cblxuICBwcm90ZWN0ZWQgcHJvY2Vzc1JlY29yZChyZWNvcmQ6IGFueSwgY3R4OiBDb250ZXh0T2Y8QT4pOiBNIHtcbiAgICBjb25zdCBwa0F0dHIgPSBNb2RlbC5wayh0aGlzLmZyb21TZWxlY3Rvcik7XG4gICAgY29uc3QgaWQgPSByZWNvcmRbcGtBdHRyXTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydChcbiAgICAgIHJlY29yZCxcbiAgICAgIHRoaXMuZnJvbVNlbGVjdG9yIGFzIENvbnN0cnVjdG9yPGFueT4sXG4gICAgICBpZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGN0eFxuICAgICkgYXMgTTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBhcHBseUFmdGVySGFuZGxlcnNUb1Jlc3VsdChcbiAgICB2YWx1ZTogYW55LFxuICAgIGN0eDogQ29udGV4dE9mPEE+XG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCFjdHguZ2V0T3JVbmRlZmluZWQoXCJhZnRlclF1ZXJ5SGFuZGxlcnNcIikpXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTW9kZWwpIHtcbiAgICAgIGF3YWl0IGVuZm9yY2VEQkRlY29yYXRvcnMoXG4gICAgICAgIHRoaXMuZ2V0UmVwb3NpdG9yeSgpLFxuICAgICAgICBjdHgsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBPcGVyYXRpb25LZXlzLlJFQUQsXG4gICAgICAgIE9wZXJhdGlvbktleXMuQUZURVJcbiAgICAgICk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHZhbHVlLm1hcCgoZW50cnkpID0+IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQoZW50cnksIGN0eCkpXG4gICAgICApO1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLm1hcCgoW2tleSwgZW50cnldKSA9PlxuICAgICAgICAgIHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQoZW50cnksIGN0eCkudGhlbigocHJvY2Vzc2VkKSA9PiB7XG4gICAgICAgICAgICB2YWx1ZVtrZXldID0gcHJvY2Vzc2VkO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRSZXBvc2l0b3J5KCk6IFJlcG9zaXRvcnk8TSwgQT4ge1xuICAgIHJldHVybiBSZXBvc2l0b3J5LmZvck1vZGVsKHRoaXMuZnJvbVNlbGVjdG9yLCB0aGlzLmFkYXB0ZXIuYWxpYXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByZXBhcmVDb25kaXRpb24oY29uZGl0aW9uOiBDb25kaXRpb248YW55PiwgY3R4OiBDb250ZXh0T2Y8QT4pIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGFjY2Vzc2luZyBwcm90ZWN0ZWQgcHJvcGVydGllc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICBsZXQgeyBhdHRyMSwgb3BlcmF0b3IsIGNvbXBhcmlzb24gfSA9IGNvbmRpdGlvbjtcblxuICAgIGNvbnN0IHJlc3VsdDogUHJlcGFyZWRTdGF0ZW1lbnQ8YW55PiA9IHt9IGFzIGFueTtcbiAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICBjYXNlIEdyb3VwT3BlcmF0b3IuQU5EOlxuICAgICAgY2FzZSBHcm91cE9wZXJhdG9yLk9SOiB7XG4gICAgICAgIGxldCBzaWRlMTogc3RyaW5nID0gYXR0cjEgYXMgc3RyaW5nLFxuICAgICAgICAgIHNpZGUyOiBzdHJpbmcgPSBjb21wYXJpc29uIGFzIGFueTtcbiAgICAgICAgaWYgKHR5cGVvZiBhdHRyMSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbjEgPSB0aGlzLnByZXBhcmVDb25kaXRpb24oXG4gICAgICAgICAgICBhdHRyMSBhcyBDb25kaXRpb248YW55PixcbiAgICAgICAgICAgIGN0eFxuICAgICAgICAgICk7XG4gICAgICAgICAgc2lkZTEgPSBjb25kaXRpb24xLm1ldGhvZCBhcyBzdHJpbmc7XG4gICAgICAgICAgcmVzdWx0LmFyZ3MgPSBbLi4uKHJlc3VsdC5hcmdzIHx8IFtdKSwgLi4uKGNvbmRpdGlvbjEuYXJncyB8fCBbXSldO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbXBhcmlzb24gaW5zdGFuY2VvZiBDb25kaXRpb24pIHtcbiAgICAgICAgICBjb25zdCBjb25kaXRpb24yID0gdGhpcy5wcmVwYXJlQ29uZGl0aW9uKGNvbXBhcmlzb24sIGN0eCk7XG4gICAgICAgICAgc2lkZTIgPSBjb25kaXRpb24yLm1ldGhvZCBhcyBzdHJpbmc7XG4gICAgICAgICAgcmVzdWx0LmFyZ3MgPSBbLi4uKHJlc3VsdC5hcmdzIHx8IFtdKSwgLi4uKGNvbmRpdGlvbjIuYXJncyB8fCBbXSldO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzdWx0Lm1ldGhvZCA9IGAke3NpZGUxfSAke29wZXJhdG9yLnRvTG93ZXJDYXNlKCl9ICR7c2lkZTJ9YDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIE9wZXJhdG9yLkVRVUFMOlxuICAgICAgICByZXN1bHQubWV0aG9kID0gYXR0cjEgYXMgc3RyaW5nO1xuICAgICAgICByZXN1bHQuYXJncyA9IFsuLi4ocmVzdWx0LmFyZ3MgfHwgW10pLCBjb21wYXJpc29uXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9wZXJhdG9yLkRJRkZFUkVOVDpcbiAgICAgICAgcmVzdWx0Lm1ldGhvZCA9IGAke2F0dHIxfSBkaWZmYDtcbiAgICAgICAgcmVzdWx0LmFyZ3MgPSBbLi4uKHJlc3VsdC5hcmdzIHx8IFtdKSwgY29tcGFyaXNvbl07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBPcGVyYXRvci5SRUdFWFA6XG4gICAgICAgIHJlc3VsdC5tZXRob2QgPSBgJHthdHRyMX0gbWF0Y2hlc2A7XG4gICAgICAgIHJlc3VsdC5hcmdzID0gWy4uLihyZXN1bHQuYXJncyB8fCBbXSksIGNvbXBhcmlzb25dO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3BlcmF0b3IuQklHR0VSOlxuICAgICAgICByZXN1bHQubWV0aG9kID0gYCR7YXR0cjF9IGJpZ2dlcmA7XG4gICAgICAgIHJlc3VsdC5hcmdzID0gWy4uLihyZXN1bHQuYXJncyB8fCBbXSksIGNvbXBhcmlzb25dO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3BlcmF0b3IuQklHR0VSX0VROlxuICAgICAgICByZXN1bHQubWV0aG9kID0gYCR7YXR0cjF9IGJpZ2dlciB0aGFuIGVxdWFsYDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9wZXJhdG9yLlNNQUxMRVI6XG4gICAgICAgIHJlc3VsdC5tZXRob2QgPSBgJHthdHRyMX0gbGVzc2A7XG4gICAgICAgIHJlc3VsdC5hcmdzID0gWy4uLihyZXN1bHQuYXJncyB8fCBbXSksIGNvbXBhcmlzb25dO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3BlcmF0b3IuU01BTExFUl9FUTpcbiAgICAgICAgcmVzdWx0Lm1ldGhvZCA9IGAke2F0dHIxfSBsZXNzIHRoYW4gZXF1YWxgO1xuICAgICAgICByZXN1bHQuYXJncyA9IFsuLi4ocmVzdWx0LmFyZ3MgfHwgW10pLCBjb21wYXJpc29uXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9wZXJhdG9yLklOOlxuICAgICAgICByZXN1bHQubWV0aG9kID0gYCR7YXR0cjF9IGluYDtcbiAgICAgICAgcmVzdWx0LmFyZ3MgPSBbLi4uKHJlc3VsdC5hcmdzIHx8IFtdKSwgY29tcGFyaXNvbl07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoYFVuc3VwcG9ydGVkIG9wZXJhdG9yICR7b3BlcmF0b3J9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJvdGVjdGVkIHNxdWFzaChjdHg6IENvbnRleHRPZjxBPik6IFByZXBhcmVkU3RhdGVtZW50PGFueT4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGRlZmF1bHRRdWVyeSA9IHRoaXMubWF0Y2hEZWZhdWx0UXVlcnlDb25kaXRpb24oKTtcbiAgICBpZiAoZGVmYXVsdFF1ZXJ5KSB7XG4gICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLmdldE9yZGVyRGlyZWN0aW9uKCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICAgIG1ldGhvZDogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkQsXG4gICAgICAgIGFyZ3M6IFtkZWZhdWx0UXVlcnkudmFsdWUsIGRpcmVjdGlvbl0sXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgUHJlcGFyZWRTdGF0ZW1lbnQ8TT47XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUncyBhIHdoZXJlIGNvbmRpdGlvbiB3aXRoIGNvbXBsZXggY29uZGl0aW9ucyAobmVzdGVkIENvbmRpdGlvbnMpLCBjYW4ndCBzcXVhc2hcbiAgICBpZiAodGhpcy53aGVyZUNvbmRpdGlvbikge1xuICAgICAgaWYgKHRoaXMud2hlcmVDb25kaXRpb25bXCJjb21wYXJpc29uXCJdIGluc3RhbmNlb2YgQ29uZGl0aW9uKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIFRyeSB0byBzcXVhc2ggc2ltcGxlIGFnZ3JlZ2F0aW9uIHF1ZXJpZXMgd2l0aG91dCB3aGVyZSBjb25kaXRpb25zXG4gICAgaWYgKCF0aGlzLndoZXJlQ29uZGl0aW9uICYmICF0aGlzLnNlbGVjdFNlbGVjdG9yPy5sZW5ndGgpIHtcbiAgICAgIC8vIENvdW50IHF1ZXJ5XG4gICAgICBpZiAoXG4gICAgICAgIHR5cGVvZiB0aGlzLmNvdW50U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgICAgIXRoaXMuY291bnREaXN0aW5jdFNlbGVjdG9yXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICAgICAgbWV0aG9kOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuQ09VTlRfT0YsXG4gICAgICAgICAgYXJnczogdGhpcy5jb3VudFNlbGVjdG9yICE9PSBudWxsID8gW3RoaXMuY291bnRTZWxlY3Rvcl0gOiBbXSxcbiAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICB9IGFzIFByZXBhcmVkU3RhdGVtZW50PE0+O1xuICAgICAgfVxuXG4gICAgICAvLyBNYXggcXVlcnlcbiAgICAgIGlmICh0aGlzLm1heFNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2xhc3M6IHRoaXMuZnJvbVNlbGVjdG9yLFxuICAgICAgICAgIG1ldGhvZDogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRixcbiAgICAgICAgICBhcmdzOiBbdGhpcy5tYXhTZWxlY3Rvcl0sXG4gICAgICAgICAgcGFyYW1zOiB7fSxcbiAgICAgICAgfSBhcyBQcmVwYXJlZFN0YXRlbWVudDxNPjtcbiAgICAgIH1cblxuICAgICAgLy8gTWluIHF1ZXJ5XG4gICAgICBpZiAodGhpcy5taW5TZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNsYXNzOiB0aGlzLmZyb21TZWxlY3RvcixcbiAgICAgICAgICBtZXRob2Q6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5NSU5fT0YsXG4gICAgICAgICAgYXJnczogW3RoaXMubWluU2VsZWN0b3JdLFxuICAgICAgICAgIHBhcmFtczoge30sXG4gICAgICAgIH0gYXMgUHJlcGFyZWRTdGF0ZW1lbnQ8TT47XG4gICAgICB9XG5cbiAgICAgIC8vIEF2ZyBxdWVyeVxuICAgICAgaWYgKHRoaXMuYXZnU2VsZWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICAgICAgbWV0aG9kOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuQVZHX09GLFxuICAgICAgICAgIGFyZ3M6IFt0aGlzLmF2Z1NlbGVjdG9yXSxcbiAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICB9IGFzIFByZXBhcmVkU3RhdGVtZW50PE0+O1xuICAgICAgfVxuXG4gICAgICAvLyBTdW0gcXVlcnlcbiAgICAgIGlmICh0aGlzLnN1bVNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY2xhc3M6IHRoaXMuZnJvbVNlbGVjdG9yLFxuICAgICAgICAgIG1ldGhvZDogUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlNVTV9PRixcbiAgICAgICAgICBhcmdzOiBbdGhpcy5zdW1TZWxlY3Rvcl0sXG4gICAgICAgICAgcGFyYW1zOiB7fSxcbiAgICAgICAgfSBhcyBQcmVwYXJlZFN0YXRlbWVudDxNPjtcbiAgICAgIH1cblxuICAgICAgLy8gRGlzdGluY3QgcXVlcnlcbiAgICAgIGlmICh0aGlzLmRpc3RpbmN0U2VsZWN0b3IpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICAgICAgbWV0aG9kOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuRElTVElOQ1RfT0YsXG4gICAgICAgICAgYXJnczogW3RoaXMuZGlzdGluY3RTZWxlY3Rvcl0sXG4gICAgICAgICAgcGFyYW1zOiB7fSxcbiAgICAgICAgfSBhcyBQcmVwYXJlZFN0YXRlbWVudDxNPjtcbiAgICAgIH1cblxuICAgICAgLy8gR3JvdXAgYnkgcXVlcnkgKHNpbXBsZSBzaW5nbGUtbGV2ZWwgZ3JvdXBpbmcpXG4gICAgICBpZiAodGhpcy5ncm91cEJ5U2VsZWN0b3JzPy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICAgICAgbWV0aG9kOiBQcmVwYXJlZFN0YXRlbWVudEtleXMuR1JPVVBfT0YsXG4gICAgICAgICAgYXJnczogW3RoaXMuZ3JvdXBCeVNlbGVjdG9yc1swXV0sXG4gICAgICAgICAgcGFyYW1zOiB7fSxcbiAgICAgICAgfSBhcyBQcmVwYXJlZFN0YXRlbWVudDxNPjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDYW4ndCBzcXVhc2ggY29tcGxleCBxdWVyaWVzIHdpdGggc2VsZWN0L2dyb3VwQnkvYWdncmVnYXRpb25zIHRoYXQgaGF2ZSB3aGVyZSBjb25kaXRpb25zXG4gICAgaWYgKHRoaXMuc2VsZWN0U2VsZWN0b3IgJiYgdGhpcy5zZWxlY3RTZWxlY3Rvci5sZW5ndGgpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuZ3JvdXBCeVNlbGVjdG9ycyAmJiB0aGlzLmdyb3VwQnlTZWxlY3RvcnMubGVuZ3RoKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudFNlbGVjdG9yICE9PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmNvdW50RGlzdGluY3RTZWxlY3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5tYXhTZWxlY3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5taW5TZWxlY3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5zdW1TZWxlY3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodGhpcy5hdmdTZWxlY3RvcikgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGxldCBhdHRyRnJvbVdoZXJlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMud2hlcmVDb25kaXRpb24pIHtcbiAgICAgIGF0dHJGcm9tV2hlcmUgPSB0aGlzLndoZXJlQ29uZGl0aW9uW1wiYXR0cjFcIl0gYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIGNvbnN0IG9yZGVyOiBPcmRlckJ5U2VsZWN0b3I8TT4gPSB0aGlzLm9yZGVyQnlTZWxlY3RvcnM/LlswXVxuICAgICAgPyB0aGlzLm9yZGVyQnlTZWxlY3RvcnNbMF1cbiAgICAgIDogYXR0ckZyb21XaGVyZVxuICAgICAgICA/IFthdHRyRnJvbVdoZXJlIGFzIGtleW9mIE0sIE9yZGVyRGlyZWN0aW9uLkRTQ11cbiAgICAgICAgOiBbTW9kZWwucGsodGhpcy5mcm9tU2VsZWN0b3IpLCBPcmRlckRpcmVjdGlvbi5EU0NdO1xuXG4gICAgY29uc3QgW2F0dHJGcm9tT3JkZXJCeSwgc29ydF0gPSBvcmRlcjtcblxuICAgIGNvbnN0IHBhcmFtczogRGlyZWN0aW9uTGltaXRPZmZzZXQgPSB7XG4gICAgICBkaXJlY3Rpb246IHNvcnQgYXMgYW55LFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5saW1pdFNlbGVjdG9yKSBwYXJhbXMubGltaXQgPSB0aGlzLmxpbWl0U2VsZWN0b3I7XG4gICAgaWYgKHRoaXMub2Zmc2V0U2VsZWN0b3IpIHBhcmFtcy5vZmZzZXQgPSB0aGlzLm9mZnNldFNlbGVjdG9yO1xuXG4gICAgY29uc3Qgc3F1YXNoZWQ6IFByZXBhcmVkU3RhdGVtZW50PE0+ID0ge1xuICAgICAgLy8gbGlzdEJ5XG4gICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICBtZXRob2Q6IFByZXBhcmVkU3RhdGVtZW50S2V5cy5MSVNUX0JZLFxuICAgICAgYXJnczogW2F0dHJGcm9tT3JkZXJCeV0sXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICB9IGFzIFByZXBhcmVkU3RhdGVtZW50PE0+O1xuXG4gICAgaWYgKGF0dHJGcm9tV2hlcmUpIHtcbiAgICAgIC8vIGZpbmRCeVxuICAgICAgc3F1YXNoZWQubWV0aG9kID0gUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfQlk7XG4gICAgICBzcXVhc2hlZC5hcmdzID0gW1xuICAgICAgICBhdHRyRnJvbVdoZXJlLFxuICAgICAgICAodGhpcy53aGVyZUNvbmRpdGlvbiBhcyBDb25kaXRpb248TT4pW1wiY29tcGFyaXNvblwiXSBhcyBzdHJpbmcsXG4gICAgICBdO1xuICAgICAgc3F1YXNoZWQucGFyYW1zID0gcGFyYW1zO1xuICAgIH1cblxuICAgIHJldHVybiBzcXVhc2hlZDtcbiAgfVxuXG4gIHByaXZhdGUgbWF0Y2hEZWZhdWx0UXVlcnlDb25kaXRpb24oKTpcbiAgICB8IHtcbiAgICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgICAgYXR0cmlidXRlczogc3RyaW5nW107XG4gICAgICB9XG4gICAgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy53aGVyZUNvbmRpdGlvbikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuZXh0cmFjdERlZmF1bHRTdGFydHNXaXRoQXR0cmlidXRlcyh0aGlzLndoZXJlQ29uZGl0aW9uKTtcbiAgICBpZiAoIWZvdW5kKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGRlZmF1bHRBdHRycyA9IE1vZGVsLmRlZmF1bHRRdWVyeUF0dHJpYnV0ZXModGhpcy5mcm9tU2VsZWN0b3IpO1xuICAgIGlmICghZGVmYXVsdEF0dHJzIHx8ICFkZWZhdWx0QXR0cnMubGVuZ3RoKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWREZWZhdWx0ID0gQXJyYXkuZnJvbShuZXcgU2V0KGRlZmF1bHRBdHRycy5tYXAoU3RyaW5nKSkpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRGb3VuZCA9IEFycmF5LmZyb20obmV3IFNldChmb3VuZC5hdHRyaWJ1dGVzLm1hcChTdHJpbmcpKSk7XG4gICAgaWYgKG5vcm1hbGl6ZWREZWZhdWx0Lmxlbmd0aCAhPT0gbm9ybWFsaXplZEZvdW5kLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAobm9ybWFsaXplZERlZmF1bHQuZXZlcnkoKGF0dHIpID0+IG5vcm1hbGl6ZWRGb3VuZC5pbmNsdWRlcyhhdHRyKSkpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBmb3VuZC52YWx1ZSxcbiAgICAgICAgYXR0cmlidXRlczogbm9ybWFsaXplZERlZmF1bHQsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0RGVmYXVsdFN0YXJ0c1dpdGhBdHRyaWJ1dGVzKFxuICAgIGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+XG4gICk6IHsgYXR0cmlidXRlczogc3RyaW5nW107IHZhbHVlOiBzdHJpbmcgfSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgY29sbGVjdGVkID0gdGhpcy5jb2xsZWN0U3RhcnRzV2l0aEF0dHJpYnV0ZXMoY29uZGl0aW9uKTtcbiAgICBpZiAoIWNvbGxlY3RlZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4ge1xuICAgICAgYXR0cmlidXRlczogQXJyYXkuZnJvbShuZXcgU2V0KGNvbGxlY3RlZC5hdHRyaWJ1dGVzKSksXG4gICAgICB2YWx1ZTogY29sbGVjdGVkLnZhbHVlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RTdGFydHNXaXRoQXR0cmlidXRlcyhcbiAgICBjb25kaXRpb246IENvbmRpdGlvbjxNPiB8IHVuZGVmaW5lZFxuICApOiB7IGF0dHJpYnV0ZXM6IHN0cmluZ1tdOyB2YWx1ZTogc3RyaW5nIH0gfCB1bmRlZmluZWQge1xuICAgIGlmICghY29uZGl0aW9uKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHsgYXR0cjEsIG9wZXJhdG9yLCBjb21wYXJpc29uIH0gPSBjb25kaXRpb24gYXMgdW5rbm93biBhcyB7XG4gICAgICBhdHRyMTogc3RyaW5nIHwgQ29uZGl0aW9uPE0+O1xuICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yIHwgR3JvdXBPcGVyYXRvcjtcbiAgICAgIGNvbXBhcmlzb246IGFueTtcbiAgICB9O1xuICAgIGlmIChvcGVyYXRvciA9PT0gT3BlcmF0b3IuU1RBUlRTX1dJVEgpIHtcbiAgICAgIGlmICh0eXBlb2YgYXR0cjEgIT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGNvbXBhcmlzb24gIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdHRyaWJ1dGVzOiBbYXR0cjFdLFxuICAgICAgICB2YWx1ZTogY29tcGFyaXNvbixcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChvcGVyYXRvciA9PT0gR3JvdXBPcGVyYXRvci5PUikge1xuICAgICAgY29uc3QgbGVmdCA9XG4gICAgICAgIGF0dHIxIGluc3RhbmNlb2YgQ29uZGl0aW9uXG4gICAgICAgICAgPyB0aGlzLmNvbGxlY3RTdGFydHNXaXRoQXR0cmlidXRlcyhhdHRyMSBhcyBDb25kaXRpb248TT4pXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICBjb25zdCByaWdodCA9XG4gICAgICAgIGNvbXBhcmlzb24gaW5zdGFuY2VvZiBDb25kaXRpb25cbiAgICAgICAgICA/IHRoaXMuY29sbGVjdFN0YXJ0c1dpdGhBdHRyaWJ1dGVzKGNvbXBhcmlzb24gYXMgQ29uZGl0aW9uPE0+KVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC52YWx1ZSA9PT0gcmlnaHQudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhdHRyaWJ1dGVzOiBbLi4ubGVmdC5hdHRyaWJ1dGVzLCAuLi5yaWdodC5hdHRyaWJ1dGVzXSxcbiAgICAgICAgICB2YWx1ZTogbGVmdC52YWx1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmIChvcGVyYXRvciA9PT0gR3JvdXBPcGVyYXRvci5BTkQpIHtcbiAgICAgIGNvbnN0IGxlZnQgPVxuICAgICAgICBhdHRyMSBpbnN0YW5jZW9mIENvbmRpdGlvblxuICAgICAgICAgID8gdGhpcy5jb2xsZWN0U3RhcnRzV2l0aEF0dHJpYnV0ZXMoYXR0cjEgYXMgQ29uZGl0aW9uPE0+KVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgaWYgKGxlZnQpIHJldHVybiBsZWZ0O1xuICAgICAgY29uc3QgcmlnaHQgPVxuICAgICAgICBjb21wYXJpc29uIGluc3RhbmNlb2YgQ29uZGl0aW9uXG4gICAgICAgICAgPyB0aGlzLmNvbGxlY3RTdGFydHNXaXRoQXR0cmlidXRlcyhjb21wYXJpc29uIGFzIENvbmRpdGlvbjxNPilcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybiByaWdodDtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3JkZXJEaXJlY3Rpb24oKTogT3JkZXJEaXJlY3Rpb24ge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5vcmRlckJ5U2VsZWN0b3JzPy5bMF0/LlsxXSBhcyBPcmRlckRpcmVjdGlvbikgPz8gT3JkZXJEaXJlY3Rpb24uQVNDXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHByZXBhcmUoY3R4PzogQ29udGV4dE9mPEE+KTogUHJvbWlzZTxTdGF0ZW1lbnRFeGVjdXRvcjxNLCBSPj4ge1xuICAgIGN0eCA9XG4gICAgICBjdHggfHxcbiAgICAgIChhd2FpdCB0aGlzLmFkYXB0ZXIuY29udGV4dChcbiAgICAgICAgUGVyc2lzdGVuY2VLZXlzLlFVRVJZLFxuICAgICAgICB0aGlzLm92ZXJyaWRlcyB8fCB7fSxcbiAgICAgICAgdGhpcy5mcm9tU2VsZWN0b3JcbiAgICAgICkpO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5pc1NpbXBsZVF1ZXJ5KCkgJiZcbiAgICAgIChjdHggYXMgQ29udGV4dE9mPEE+KS5nZXQoXCJmb3JjZVByZXBhcmVTaW1wbGVRdWVyaWVzXCIpXG4gICAgKSB7XG4gICAgICBjb25zdCBzcXVhc2hlZCA9IHRoaXMuc3F1YXNoKGN0eCBhcyBDb250ZXh0T2Y8QT4pO1xuICAgICAgaWYgKHNxdWFzaGVkKSB7XG4gICAgICAgIHRoaXMucHJlcGFyZWQgPSBzcXVhc2hlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWxzbyB0cnkgdG8gc3F1YXNoIGFnZ3JlZ2F0aW9uIHF1ZXJpZXNcbiAgICBpZiAoXG4gICAgICAoY3R4IGFzIENvbnRleHRPZjxBPikuZ2V0KFwiZm9yY2VQcmVwYXJlU2ltcGxlUXVlcmllc1wiKSB8fFxuICAgICAgKGN0eCBhcyBDb250ZXh0T2Y8QT4pLmdldChcImZvcmNlUHJlcGFyZUNvbXBsZXhRdWVyaWVzXCIpXG4gICAgKSB7XG4gICAgICBjb25zdCBzcXVhc2hlZCA9IHRoaXMuc3F1YXNoKGN0eCBhcyBDb250ZXh0T2Y8QT4pO1xuICAgICAgaWYgKHNxdWFzaGVkKSB7XG4gICAgICAgIHRoaXMucHJlcGFyZWQgPSBzcXVhc2hlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYXJnczogKHN0cmluZyB8IG51bWJlcilbXSA9IFtdO1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge30gYXMgYW55O1xuXG4gICAgY29uc3QgcHJlcGFyZWQ6IFByZXBhcmVkU3RhdGVtZW50PGFueT4gPSB7XG4gICAgICBjbGFzczogdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICBhcmdzLFxuICAgICAgcGFyYW1zLFxuICAgIH0gYXMgYW55O1xuXG4gICAgLy8gRGV0ZXJtaW5lIHRoZSBtZXRob2QgcHJlZml4IGJhc2VkIG9uIHRoZSBxdWVyeSB0eXBlXG4gICAgbGV0IG1ldGhvZFByZWZpeDogc3RyaW5nID0gUXVlcnlDbGF1c2UuRklORF9CWTtcbiAgICBsZXQgc2VsZWN0b3JGaWVsZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIG1ldGhvZFByZWZpeCA9IFF1ZXJ5Q2xhdXNlLkNPVU5UX0JZO1xuICAgICAgc2VsZWN0b3JGaWVsZCA9XG4gICAgICAgIHRoaXMuY291bnRTZWxlY3RvciAhPT0gbnVsbFxuICAgICAgICAgID8gKHRoaXMuY291bnRTZWxlY3RvciBhcyBzdHJpbmcpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN1bVNlbGVjdG9yKSB7XG4gICAgICBtZXRob2RQcmVmaXggPSBRdWVyeUNsYXVzZS5TVU1fQlk7XG4gICAgICBzZWxlY3RvckZpZWxkID0gdGhpcy5zdW1TZWxlY3RvciBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF2Z1NlbGVjdG9yKSB7XG4gICAgICBtZXRob2RQcmVmaXggPSBRdWVyeUNsYXVzZS5BVkdfQlk7XG4gICAgICBzZWxlY3RvckZpZWxkID0gdGhpcy5hdmdTZWxlY3RvciBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1pblNlbGVjdG9yKSB7XG4gICAgICBtZXRob2RQcmVmaXggPSBRdWVyeUNsYXVzZS5NSU5fQlk7XG4gICAgICBzZWxlY3RvckZpZWxkID0gdGhpcy5taW5TZWxlY3RvciBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1heFNlbGVjdG9yKSB7XG4gICAgICBtZXRob2RQcmVmaXggPSBRdWVyeUNsYXVzZS5NQVhfQlk7XG4gICAgICBzZWxlY3RvckZpZWxkID0gdGhpcy5tYXhTZWxlY3RvciBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3RpbmN0U2VsZWN0b3IpIHtcbiAgICAgIG1ldGhvZFByZWZpeCA9IFF1ZXJ5Q2xhdXNlLkRJU1RJTkNUX0JZO1xuICAgICAgc2VsZWN0b3JGaWVsZCA9IHRoaXMuZGlzdGluY3RTZWxlY3RvciBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuZ3JvdXBCeVNlbGVjdG9ycz8ubGVuZ3RoICYmXG4gICAgICAhdGhpcy5zZWxlY3RTZWxlY3Rvcj8ubGVuZ3RoICYmXG4gICAgICAhdGhpcy53aGVyZUNvbmRpdGlvblxuICAgICkge1xuICAgICAgLy8gR3JvdXAtb25seSBxdWVyeSAobm8gc2VsZWN0LCBubyB3aGVyZSlcbiAgICAgIG1ldGhvZFByZWZpeCA9IFF1ZXJ5Q2xhdXNlLkdST1VQX0JZX1BSRUZJWDtcbiAgICAgIHNlbGVjdG9yRmllbGQgPSB0aGlzLmdyb3VwQnlTZWxlY3RvcnNbMF0gYXMgc3RyaW5nO1xuICAgIH1cbiAgICAvLyBJZiB0aGVyZSdzIGEgd2hlcmUgY29uZGl0aW9uIG9yIHNlbGVjdFNlbGVjdG9yLCB1c2UgZmluZEJ5IHByZWZpeCBldmVuIHdpdGggZ3JvdXBCeVxuXG4gICAgY29uc3QgbWV0aG9kOiBzdHJpbmdbXSA9IFttZXRob2RQcmVmaXhdO1xuICAgIGlmIChzZWxlY3RvckZpZWxkKSB7XG4gICAgICBtZXRob2QucHVzaChzZWxlY3RvckZpZWxkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy53aGVyZUNvbmRpdGlvbikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wcmVwYXJlQ29uZGl0aW9uKFxuICAgICAgICB0aGlzLndoZXJlQ29uZGl0aW9uLFxuICAgICAgICBjdHggYXMgQ29udGV4dE9mPEE+XG4gICAgICApO1xuICAgICAgbWV0aG9kLnB1c2gocGFyc2VkLm1ldGhvZCk7XG4gICAgICBpZiAocGFyc2VkLmFyZ3MgJiYgcGFyc2VkLmFyZ3MubGVuZ3RoKVxuICAgICAgICBhcmdzLnB1c2goLi4uKHBhcnNlZC5hcmdzIGFzIChzdHJpbmcgfCBudW1iZXIpW10pKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0U2VsZWN0b3IpXG4gICAgICBtZXRob2QucHVzaChcbiAgICAgICAgUXVlcnlDbGF1c2UuU0VMRUNULFxuICAgICAgICB0aGlzLnNlbGVjdFNlbGVjdG9yLmpvaW4oYCAke1F1ZXJ5Q2xhdXNlLkFORC50b0xvd2VyQ2FzZSgpfSBgKVxuICAgICAgKTtcbiAgICBpZiAodGhpcy5vcmRlckJ5U2VsZWN0b3JzPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IFtwcmltYXJ5LCAuLi5zZWNvbmRhcnldID0gdGhpcy5vcmRlckJ5U2VsZWN0b3JzO1xuICAgICAgbWV0aG9kLnB1c2goUXVlcnlDbGF1c2UuT1JERVJfQlksIHByaW1hcnlbMF0gYXMgc3RyaW5nKTtcbiAgICAgIHBhcmFtcy5kaXJlY3Rpb24gPSBwcmltYXJ5WzFdO1xuICAgICAgaWYgKHNlY29uZGFyeS5sZW5ndGgpIHtcbiAgICAgICAgcGFyYW1zLm9yZGVyID0gdGhpcy5vcmRlckJ5U2VsZWN0b3JzLm1hcCgoW2F0dHIsIGRpcl0pID0+IFthdHRyLCBkaXJdKTtcbiAgICAgICAgc2Vjb25kYXJ5LmZvckVhY2goKFthdHRyXSkgPT4ge1xuICAgICAgICAgIG1ldGhvZC5wdXNoKFF1ZXJ5Q2xhdXNlLlRIRU5fQlksIGF0dHIgYXMgc3RyaW5nKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEhhbmRsZSBncm91cEJ5IGZvciBub24tYWdncmVnYXRpb24gcXVlcmllcyAoYWxyZWFkeSBoYW5kbGVkIGZvciBncm91cCBwcmVmaXgpXG4gICAgaWYgKFxuICAgICAgdGhpcy5ncm91cEJ5U2VsZWN0b3JzPy5sZW5ndGggJiZcbiAgICAgIG1ldGhvZFByZWZpeCAhPT0gUXVlcnlDbGF1c2UuR1JPVVBfQllfUFJFRklYXG4gICAgKSB7XG4gICAgICBjb25zdCBbcHJpbWFyeSwgLi4ucmVzdF0gPSB0aGlzLmdyb3VwQnlTZWxlY3RvcnM7XG4gICAgICBtZXRob2QucHVzaChRdWVyeUNsYXVzZS5HUk9VUF9CWSwgcHJpbWFyeSBhcyBzdHJpbmcpO1xuICAgICAgcmVzdC5mb3JFYWNoKChhdHRyKSA9PiBtZXRob2QucHVzaChRdWVyeUNsYXVzZS5USEVOX0JZLCBhdHRyIGFzIHN0cmluZykpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLmdyb3VwQnlTZWxlY3RvcnM/Lmxlbmd0aCAmJlxuICAgICAgbWV0aG9kUHJlZml4ID09PSBRdWVyeUNsYXVzZS5HUk9VUF9CWV9QUkVGSVhcbiAgICApIHtcbiAgICAgIC8vIEZvciBncm91cCBwcmVmaXgsIGFkZCBhZGRpdGlvbmFsIGdyb3VwIGZpZWxkcyBhcyBUaGVuQnlcbiAgICAgIGNvbnN0IHJlc3QgPSB0aGlzLmdyb3VwQnlTZWxlY3RvcnMuc2xpY2UoMSk7XG4gICAgICByZXN0LmZvckVhY2goKGF0dHIpID0+IG1ldGhvZC5wdXNoKFF1ZXJ5Q2xhdXNlLlRIRU5fQlksIGF0dHIgYXMgc3RyaW5nKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbWl0U2VsZWN0b3IpIHBhcmFtcy5saW1pdCA9IHRoaXMubGltaXRTZWxlY3RvcjtcbiAgICBpZiAodGhpcy5vZmZzZXRTZWxlY3Rvcikge1xuICAgICAgcGFyYW1zLnNraXAgPSB0aGlzLm9mZnNldFNlbGVjdG9yO1xuICAgIH1cbiAgICBwcmVwYXJlZC5tZXRob2QgPSB0b0NhbWVsQ2FzZShtZXRob2Quam9pbihcIiBcIikpO1xuICAgIHByZXBhcmVkLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLnByZXBhcmVkID0gcHJlcGFyZWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNTaW1wbGVRdWVyeSgpIHtcbiAgICByZXR1cm4gIShcbiAgICAgICh0aGlzLnNlbGVjdFNlbGVjdG9yICYmIHRoaXMuc2VsZWN0U2VsZWN0b3IubGVuZ3RoKSB8fFxuICAgICAgKHRoaXMuZ3JvdXBCeVNlbGVjdG9ycyAmJiB0aGlzLmdyb3VwQnlTZWxlY3RvcnMubGVuZ3RoKSB8fFxuICAgICAgdHlwZW9mIHRoaXMuY291bnRTZWxlY3RvciAhPT0gXCJ1bmRlZmluZWRcIiB8fFxuICAgICAgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgfHxcbiAgICAgIHRoaXMubWF4U2VsZWN0b3IgfHxcbiAgICAgIHRoaXMubWluU2VsZWN0b3IgfHxcbiAgICAgIHRoaXMuc3VtU2VsZWN0b3IgfHxcbiAgICAgIHRoaXMuYXZnU2VsZWN0b3IgfHxcbiAgICAgIHRoaXMuZGlzdGluY3RTZWxlY3RvclxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzQWdncmVnYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB0aGlzLmNvdW50U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIgfHxcbiAgICAgIHR5cGVvZiB0aGlzLmNvdW50RGlzdGluY3RTZWxlY3RvciAhPT0gXCJ1bmRlZmluZWRcIiB8fFxuICAgICAgdHlwZW9mIHRoaXMubWF4U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIgfHxcbiAgICAgIHR5cGVvZiB0aGlzLm1pblNlbGVjdG9yICE9PSBcInVuZGVmaW5lZFwiIHx8XG4gICAgICB0eXBlb2YgdGhpcy5zdW1TZWxlY3RvciAhPT0gXCJ1bmRlZmluZWRcIiB8fFxuICAgICAgdHlwZW9mIHRoaXMuYXZnU2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIgfHxcbiAgICAgIHR5cGVvZiB0aGlzLmRpc3RpbmN0U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIgfHxcbiAgICAgICh0aGlzLmdyb3VwQnlTZWxlY3RvcnM/Lmxlbmd0aCB8fCAwKSA+IDBcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkKCk6IFE7XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwYXJzZUNvbmRpdGlvbihjb25kaXRpb246IENvbmRpdGlvbjxNPiwgLi4uYXJnczogYW55W10pOiBRO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIHBhZ2luYXRvciBmb3IgdGhlIHF1ZXJ5XG4gICAqIEBzdW1tYXJ5IEJ1aWxkcyB0aGUgcXVlcnkgYW5kIHdyYXBzIGl0IGluIGEgUmFtUGFnaW5hdG9yIHRvIGVuYWJsZSBwYWdpbmF0aW9uIG9mIHJlc3VsdHMuXG4gICAqIFRoaXMgYWxsb3dzIHJldHJpZXZpbmcgbGFyZ2UgcmVzdWx0IHNldHMgaW4gc21hbGxlciBjaHVua3MuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplIC0gVGhlIHBhZ2Ugc2l6ZSAobnVtYmVyIG9mIHJlc3VsdHMgcGVyIHBhZ2UpXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UGFnaW5hdG9yPE0sIFIsIFJhd1JhbVF1ZXJ5PE0+Pj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGEgcGFnaW5hdG9yIGZvciB0aGUgcXVlcnlcbiAgICovXG4gIGFzeW5jIHBhZ2luYXRlKFxuICAgIHNpemU6IG51bWJlcixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPFBhZ2luYXRvcjxNLCBSLCBRPj4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBjb25zdCBjdHggPSBhcmdzLnBvcCgpIGFzIENvbnRleHRPZjxBPjsgLy8gaGFuZGxlZCBieSBwcmVmaXguIGtlcHQgZm9yIGV4YW1wbGUgZm9yIG92ZXJyaWRlc1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLlBhZ2luYXRvcihcbiAgICAgICAgdGhpcy5wcmVwYXJlZCB8fCB0aGlzLmJ1aWxkKCksXG4gICAgICAgIHNpemUsXG4gICAgICAgIHRoaXMuZnJvbVNlbGVjdG9yXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoZSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYWRhcHRlci5mbGF2b3VyfSBzdGF0ZW1lbnRgO1xuICB9XG59XG4iXX0=
|
|
@@ -71,4 +71,4 @@ export var PreparedStatementKeys;
|
|
|
71
71
|
PreparedStatementKeys["DISTINCT_OF"] = "distinctOf";
|
|
72
72
|
PreparedStatementKeys["GROUP_OF"] = "groupOf";
|
|
73
73
|
})(PreparedStatementKeys || (PreparedStatementKeys = {}));
|
|
74
|
-
//# sourceMappingURL=
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFnQjtBQUV0Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQU4sSUFBWSxRQWlDWDtBQWpDRCxXQUFZLFFBQVE7SUFDbEIsMkJBQTJCO0lBQzNCLDJCQUFlLENBQUE7SUFDZixnQ0FBZ0M7SUFDaEMsbUNBQXVCLENBQUE7SUFDdkIsa0NBQWtDO0lBQ2xDLDZCQUFpQixDQUFBO0lBQ2pCLDRDQUE0QztJQUM1QyxtQ0FBdUIsQ0FBQTtJQUN2QiwrQkFBK0I7SUFDL0IsK0JBQW1CLENBQUE7SUFDbkIseUNBQXlDO0lBQ3pDLHFDQUF5QixDQUFBO0lBQ3pCLG1DQUFtQztJQUNuQywrQkFBbUIsQ0FBQTtJQUNuQiw4QkFBOEI7SUFDOUIsdUJBQVcsQ0FBQTtJQUNYLDhCQUE4QjtJQUM5QixxQkFBUyxDQUFBO0lBQ1QsYUFBYTtJQUNiLGtDQUFrQztJQUNsQyw2QkFBaUIsQ0FBQTtJQUNqQixvQ0FBb0M7SUFDcEMsdUNBQTJCLENBQUE7SUFDM0Isa0NBQWtDO0lBQ2xDLG1DQUF1QixDQUFBO0lBQ3ZCLGlDQUFxQixDQUFBO0lBQ3JCLDJCQUFlLENBQUE7SUFDZix1QkFBVyxDQUFBO0lBQ1gseUJBQWEsQ0FBQTtJQUNiLHlCQUFhLENBQUE7SUFDYixpQ0FBcUIsQ0FBQTtJQUNyQix5QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQWpDVyxRQUFRLEtBQVIsUUFBUSxRQWlDbkI7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQU4sSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3ZCLHlEQUF5RDtJQUN6RCw0QkFBVyxDQUFBO0lBQ1gsZ0VBQWdFO0lBQ2hFLDBCQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsYUFBYSxLQUFiLGFBQWEsUUFLeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxxQkFjWDtBQWRELFdBQVkscUJBQXFCO0lBQy9CLDJDQUFrQixDQUFBO0lBQ2xCLDJDQUE2QixDQUFBO0lBQzdCLGtEQUF5QixDQUFBO0lBQ3pCLCtDQUFzQixDQUFBO0lBQ3RCLHNDQUFhLENBQUE7SUFDYixzQ0FBYSxDQUFBO0lBQ2IsNkNBQW9CLENBQUE7SUFDcEIseUNBQWdCLENBQUE7SUFDaEIseUNBQWdCLENBQUE7SUFDaEIseUNBQWdCLENBQUE7SUFDaEIseUNBQWdCLENBQUE7SUFDaEIsbURBQTBCLENBQUE7SUFDMUIsNkNBQW9CLENBQUE7QUFDdEIsQ0FBQyxFQWRXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFjaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUNsYXVzZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBhcmlzb24gb3BlcmF0b3JzIGZvciBxdWVyeSBjb25kaXRpb25zXG4gKiBAc3VtbWFyeSBFbnVtIGRlZmluaW5nIHRoZSBhdmFpbGFibGUgb3BlcmF0b3JzIGZvciBjb21wYXJpbmcgdmFsdWVzIGluIGRhdGFiYXNlIHF1ZXJpZXNcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcmVhZG9ubHlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgZW51bSBPcGVyYXRvciB7XG4gIC8qKiBFcXVhbCBjb21wYXJpc29uICg9KSAqL1xuICBFUVVBTCA9IFwiRVFVQUxcIixcbiAgLyoqIE5vdCBlcXVhbCBjb21wYXJpc29uICghPSkgKi9cbiAgRElGRkVSRU5UID0gXCJESUZGRVJFTlRcIixcbiAgLyoqIEdyZWF0ZXIgdGhhbiBjb21wYXJpc29uICg+KSAqL1xuICBCSUdHRVIgPSBcIkJJR0dFUlwiLFxuICAvKiogR3JlYXRlciB0aGFuIG9yIGVxdWFsIGNvbXBhcmlzb24gKD49KSAqL1xuICBCSUdHRVJfRVEgPSBcIkJJR0dFUl9FUVwiLFxuICAvKiogTGVzcyB0aGFuIGNvbXBhcmlzb24gKDwpICovXG4gIFNNQUxMRVIgPSBcIlNNQUxMRVJcIixcbiAgLyoqIExlc3MgdGhhbiBvciBlcXVhbCBjb21wYXJpc29uICg8PSkgKi9cbiAgU01BTExFUl9FUSA9IFwiU01BTExFUl9FUVwiLFxuICAvKiogQmV0d2VlbiBjb21wYXJpc29uIChCRVRXRUVOKSAqL1xuICBCRVRXRUVOID0gXCJCRVRXRUVOXCIsXG4gIC8qKiBOZWdhdGlvbiBvcGVyYXRvciAoTk9UKSAqL1xuICBOT1QgPSBcIk5PVFwiLFxuICAvKiogSW5jbHVzaW9uIG9wZXJhdG9yIChJTikgKi9cbiAgSU4gPSBcIklOXCIsXG4gIC8vIElTID0gXCJJU1wiLFxuICAvKiogUmVndWxhciBleHByZXNzaW9uIG1hdGNoaW5nICovXG4gIFJFR0VYUCA9IFwiUkVHRVhQXCIsXG4gIC8qKiBTdHJpbmcgc3RhcnRzLXdpdGggY29tcGFyaXNvbiAqL1xuICBTVEFSVFNfV0lUSCA9IFwiU1RBUlRTX1dJVEhcIixcbiAgLyoqIFN0cmluZyBlbmRzLXdpdGggY29tcGFyaXNvbiAqL1xuICBFTkRTX1dJVEggPSBcIkVORFNfV0lUSFwiLFxuICBHUk9VUF9CWSA9IFwiZ3JvdXAtYnlcIixcbiAgQ09VTlQgPSBcImNvdW50XCIsXG4gIFNVTSA9IFwic3VtXCIsXG4gIE1BWCA9IFwidl9tYXhcIixcbiAgTUlOID0gXCJ2X21pblwiLFxuICBESVNUSU5DVCA9IFwiZGlzdGluY3RcIixcbiAgVklFVyA9IFwidmlld1wiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBMb2dpY2FsIG9wZXJhdG9ycyBmb3IgY29tYmluaW5nIHF1ZXJ5IGNvbmRpdGlvbnNcbiAqIEBzdW1tYXJ5IEVudW0gZGVmaW5pbmcgdGhlIGF2YWlsYWJsZSBvcGVyYXRvcnMgZm9yIGdyb3VwaW5nIG11bHRpcGxlIGNvbmRpdGlvbnMgaW4gZGF0YWJhc2UgcXVlcmllc1xuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBlbnVtIEdyb3VwT3BlcmF0b3Ige1xuICAvKiogTG9naWNhbCBBTkQgb3BlcmF0b3IgLSBhbGwgY29uZGl0aW9ucyBtdXN0IGJlIHRydWUgKi9cbiAgQU5EID0gXCJBTkRcIixcbiAgLyoqIExvZ2ljYWwgT1Igb3BlcmF0b3IgLSBhdCBsZWFzdCBvbmUgY29uZGl0aW9uIG11c3QgYmUgdHJ1ZSAqL1xuICBPUiA9IFwiT1JcIixcbn1cblxuZXhwb3J0IGVudW0gUHJlcGFyZWRTdGF0ZW1lbnRLZXlzIHtcbiAgTElTVF9CWSA9IFwibGlzdEJ5XCIsXG4gIEZJTkRfQlkgPSBRdWVyeUNsYXVzZS5GSU5EX0JZLFxuICBGSU5EX09ORV9CWSA9IFwiZmluZE9uZUJ5XCIsXG4gIFBBR0VfQlkgPSBcInBhZ2luYXRlQnlcIixcbiAgRklORCA9IFwiZmluZFwiLFxuICBQQUdFID0gXCJwYWdlXCIsXG4gIENPVU5UX09GID0gXCJjb3VudE9mXCIsXG4gIE1BWF9PRiA9IFwibWF4T2ZcIixcbiAgTUlOX09GID0gXCJtaW5PZlwiLFxuICBBVkdfT0YgPSBcImF2Z09mXCIsXG4gIFNVTV9PRiA9IFwic3VtT2ZcIixcbiAgRElTVElOQ1RfT0YgPSBcImRpc3RpbmN0T2ZcIixcbiAgR1JPVVBfT0YgPSBcImdyb3VwT2ZcIixcbn1cbiJdfQ==
|
|
@@ -175,4 +175,4 @@ export function view(opts) {
|
|
|
175
175
|
})
|
|
176
176
|
.apply();
|
|
177
177
|
}
|
|
178
|
-
//# sourceMappingURL=decorators.js.map
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyeS9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQ0FBNkI7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxvQkFBaUI7QUFDdEMsT0FBTyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsUUFBUSxFQUNSLGNBQWMsRUFDZCxZQUFZLEdBQ2IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsZUFBZSxFQUFFLHNDQUFpQztBQUUzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLHVCQUFvQjtBQUd2QyxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sU0FBUyxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsSUFBVTtRQUN0RCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQWtCLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNELElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVE7SUFDdEIsU0FBUyxRQUFRO1FBQ2YsT0FBTyxTQUFTLFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBVSxFQUFFLFVBQWdCO1lBQ2hFLE9BQU8sS0FBSyxDQUNWLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUs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LE9BQU8sU0FBUyxTQUFTLENBQUMsTUFBVyxFQUFFLElBQVM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFjLENBQUMsQ0FBQztRQUN6RSxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxLQUFLLEdBQWlCO1lBQzFCLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSTtZQUNKLFNBQVMsRUFBRSxJQUFjO1NBQzFCLENBQUM7UUFDRixPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSSxDQUEyQixJQUFXO0lBQ3hELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1NBQ2pDLE1BQU0sQ0FBQztRQUNOLFNBQVMsRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFlO1lBQ3RDLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztLQUNiLENBQUM7U0FDRCxLQUFLLEVBQUUsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeU9wdGlvbnMsIFZpZXdLaW5kLCBWaWV3TWV0YWRhdGEsIFZpZXdPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE1ldGhvZFF1ZXJ5QnVpbGRlciB9IGZyb20gXCIuL01ldGhvZFF1ZXJ5QnVpbGRlclwiO1xuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gXCIuL2Vycm9yc1wiO1xuaW1wb3J0IHtcbiAgYXBwbHksXG4gIERlY29yYXRpb24sXG4gIE1ldGFkYXRhLFxuICBtZXRob2RNZXRhZGF0YSxcbiAgcHJvcE1ldGFkYXRhLFxufSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IFBlcnNpc3RlbmNlS2V5cyB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZS9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgUmVwbyB9IGZyb20gXCIuLi9yZXBvc2l0b3J5XCI7XG5pbXBvcnQgeyBPcGVyYXRvciB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3Rpb25MaW1pdE9mZnNldCB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0UXVlcnlBdHRyKCkge1xuICByZXR1cm4gZnVuY3Rpb24gZGVmYXVsdFF1ZXJ5QXR0cihvYmo6IG9iamVjdCwgcHJvcD86IGFueSkge1xuICAgIGNvbnN0IGtleSA9IE1ldGFkYXRhLmtleShQZXJzaXN0ZW5jZUtleXMuREVGQVVMVF9RVUVSWV9BVFRSKTtcbiAgICBsZXQgbWV0YSA9IE1ldGFkYXRhLmdldChvYmouY29uc3RydWN0b3IgYXMgYW55LCBrZXkpIHx8IFtdO1xuICAgIG1ldGEgPSBbLi4ubmV3IFNldChbLi4ubWV0YSwgcHJvcF0pXTtcbiAgICByZXR1cm4gYXBwbHkocHJvcE1ldGFkYXRhKGtleSwgbWV0YSkpKG9iaiwgcHJvcCk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlZCgpIHtcbiAgZnVuY3Rpb24gcHJlcGFyZWQoKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHByZXBhcmVkKG9iajogb2JqZWN0LCBwcm9wPzogYW55LCBkZXNjcmlwdG9yPzogYW55KSB7XG4gICAgICByZXR1cm4gYXBwbHkoXG4gICAgICAgIG1ldGhvZE1ldGFkYXRhKE1ldGFkYXRhLmtleShQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5ULCBwcm9wKSwgdHJ1ZSlcbiAgICAgICkob2JqLCBwcm9wLCBkZXNjcmlwdG9yKTtcbiAgICB9O1xuICB9XG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihQZXJzaXN0ZW5jZUtleXMuU1RBVEVNRU5UKVxuICAgIC5kZWZpbmUoe1xuICAgICAgZGVjb3JhdG9yOiBwcmVwYXJlZCxcbiAgICAgIGFyZ3M6IFtdLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeShvcHRpb25zOiBRdWVyeU9wdGlvbnMgPSB7fSkge1xuICBmdW5jdGlvbiBxdWVyeShvcHRpb25zOiBRdWVyeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gcXVlcnkob2JqOiBvYmplY3QsIHByb3A/OiBhbnksIGRlc2NyaXB0b3I/OiBhbnkpIHtcbiAgICAgIGZ1bmN0aW9uIGlubmVyUXVlcnkob3B0aW9uczogUXVlcnlPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBpbm5lclF1ZXJ5KFxuICAgICAgICAgIG9iajogYW55LFxuICAgICAgICAgIHByb3BlcnR5S2V5PzogYW55LFxuICAgICAgICAgIGRlc2NyaXB0b3I/OiBhbnlcbiAgICAgICAgKSB7XG4gICAgICAgICAgKGRlc2NyaXB0b3IgYXMgVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8YW55PikudmFsdWUgPSBuZXcgUHJveHkoXG4gICAgICAgICAgICAoZGVzY3JpcHRvciBhcyBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxhbnk+KS52YWx1ZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYXBwbHkodGFyZ2V0OiBhbnksIHRoaXNBcmc6IGFueSwgYXJnczogYW55W10pOiBhbnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgICAgIHNlbGVjdCxcbiAgICAgICAgICAgICAgICAgIHNlbGVjdG9yLFxuICAgICAgICAgICAgICAgICAgd2hlcmUsXG4gICAgICAgICAgICAgICAgICBncm91cEJ5LFxuICAgICAgICAgICAgICAgICAgb3JkZXJCeSxcbiAgICAgICAgICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgIH0gPSBNZXRob2RRdWVyeUJ1aWxkZXIuYnVpbGQodGFyZ2V0Lm5hbWUsIC4uLmFyZ3MpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcmVwbyA9IHRoaXNBcmcgYXMgUmVwbzxhbnk+O1xuXG4gICAgICAgICAgICAgICAgLy8gQnVpbGQgc3RhdGVtZW50IGJhc2VkIG9uIGFjdGlvbiB0eXBlXG4gICAgICAgICAgICAgICAgbGV0IHN0bXQ6IGFueTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImZpbmRcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJwYWdlXCI6XG4gICAgICAgICAgICAgICAgICAgIHN0bXQgPSByZXBvLnNlbGVjdChzZWxlY3QgYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiY291bnRcIjpcbiAgICAgICAgICAgICAgICAgICAgc3RtdCA9IHJlcG8uY291bnQoc2VsZWN0b3IgYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwic3VtXCI6XG4gICAgICAgICAgICAgICAgICAgIHN0bXQgPSByZXBvLnN1bShzZWxlY3RvciBhcyBhbnkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJhdmdcIjpcbiAgICAgICAgICAgICAgICAgICAgc3RtdCA9IHJlcG8uYXZnKHNlbGVjdG9yIGFzIGFueSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcIm1pblwiOlxuICAgICAgICAgICAgICAgICAgICBzdG10ID0gcmVwby5taW4oc2VsZWN0b3IgYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwibWF4XCI6XG4gICAgICAgICAgICAgICAgICAgIHN0bXQgPSByZXBvLm1heChzZWxlY3RvciBhcyBhbnkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJkaXN0aW5jdFwiOlxuICAgICAgICAgICAgICAgICAgICBzdG10ID0gcmVwby5kaXN0aW5jdChzZWxlY3RvciBhcyBhbnkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJncm91cFwiOlxuICAgICAgICAgICAgICAgICAgICBzdG10ID0gcmVwby5zZWxlY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RtdCA9IHN0bXQuZ3JvdXBCeShzZWxlY3RvciBhcyBhbnkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoYFVuc3VwcG9ydGVkIGFjdGlvbjogJHthY3Rpb259YCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHdoZXJlKSBzdG10ID0gc3RtdC53aGVyZSh3aGVyZSkgYXMgYW55O1xuXG4gICAgICAgICAgICAgICAgLy8gQXBwbHkgZ3JvdXBCeSBmb3Igbm9uLWdyb3VwIGFjdGlvbnMgKGdyb3VwQnkgZnJvbSBtZXRob2QgbmFtZSBwYXR0ZXJuKVxuICAgICAgICAgICAgICAgIGlmIChncm91cEJ5ICYmIGdyb3VwQnkubGVuZ3RoID4gMCAmJiBhY3Rpb24gIT09IFwiZ3JvdXBcIikge1xuICAgICAgICAgICAgICAgICAgc3RtdCA9IHN0bXQuZ3JvdXBCeShncm91cEJ5WzBdIGFzIGFueSk7XG4gICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGdyb3VwQnkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc3RtdCA9IHN0bXQudGhlbkJ5KGdyb3VwQnlbaV0gYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgZ3JvdXBCeSAmJlxuICAgICAgICAgICAgICAgICAgZ3JvdXBCeS5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgICBhY3Rpb24gPT09IFwiZ3JvdXBcIlxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgLy8gRm9yIGdyb3VwIGFjdGlvbiwgYXBwbHkgYWRkaXRpb25hbCBncm91cEJ5IGZpZWxkcyBhZnRlciB0aGUgc2VsZWN0b3JcbiAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZ3JvdXBCeSkge1xuICAgICAgICAgICAgICAgICAgICBzdG10ID0gc3RtdC50aGVuQnkoZmllbGQgYXMgYW55KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBhbGxvdyBsaW1pdCBhbmQgb2Zmc2V0IGJ5IGRlZmF1bHRcbiAgICAgICAgICAgICAgICBjb25zdCB7IGFsbG93TGltaXQsIGFsbG93T2Zmc2V0LCBhbGxvd09yZGVyQnksIHRocm93cyB9ID0ge1xuICAgICAgICAgICAgICAgICAgYWxsb3dMaW1pdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFsbG93T3JkZXJCeTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGFsbG93T2Zmc2V0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdGhyb3dzOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgICB9IGFzIFF1ZXJ5T3B0aW9ucztcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IFtcbiAgICAgICAgICAgICAgICAgIC8vIGtlZXAgdGhlIG9yZGVyIHRvIGVuc3VyZSB0aGUgZXhwZWN0ZWQgYmVoYXZpb3JcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBcIm9yZGVyQnlcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IChvcmRlckJ5IHx8IFtdKVswXSwgLy8gb3JkZXJCeSBvbmx5IHN1cHBvcnRzIG9uZSBzZW50ZW5jZVxuICAgICAgICAgICAgICAgICAgICBhbGxvd2VkOiBhbGxvd09yZGVyQnksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgeyBrZXk6IFwibGltaXRcIiwgdmFsdWU6IGxpbWl0LCBhbGxvd2VkOiBhbGxvd0xpbWl0IH0sXG4gICAgICAgICAgICAgICAgICB7IGtleTogXCJvZmZzZXRcIiwgdmFsdWU6IG9mZnNldCwgYWxsb3dlZDogYWxsb3dPZmZzZXQgfSxcbiAgICAgICAgICAgICAgICBdO1xuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwYXJhbSBvZiBwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChwYXJhbS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcGFyYW0uYWxsb3dlZCAmJiB0aHJvd3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3BhcmFtLmtleVswXS50b1VwcGVyQ2FzZSgpICsgcGFyYW0ua2V5LnNsaWNlKDEpfSBpcyBub3QgYWxsb3dlZCBmb3IgdGhpcyBxdWVyeWBcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtLmFsbG93ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzdG10ID0gKHN0bXQgYXMgYW55KVtwYXJhbS5rZXldKHBhcmFtLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEZvciBwYWdlIGFjdGlvbiwgY2FsbCBwYWdpbmF0ZSBpbnN0ZWFkIG9mIGV4ZWN1dGVcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uID09PSBcInBhZ2VcIikge1xuICAgICAgICAgICAgICAgICAgLy8gRXh0cmFjdCBwYWdpbmF0aW9uIHBhcmFtZXRlcnMgZnJvbSBhcmdzXG4gICAgICAgICAgICAgICAgICAvLyBUaGUgbGFzdCBhcmd1bWVudCBzaG91bGQgYmUgRGlyZWN0aW9uTGltaXRPZmZzZXQgb3IgcGFnZSBzaXplXG4gICAgICAgICAgICAgICAgICBjb25zdCBsYXN0QXJnID0gYXJnc1thcmdzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZVNpemUgPVxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgbGFzdEFyZyA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgID8gbGFzdEFyZ1xuICAgICAgICAgICAgICAgICAgICAgIDogKChsYXN0QXJnIGFzIERpcmVjdGlvbkxpbWl0T2Zmc2V0KT8ubGltaXQgPz8gMTApO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0bXQucGFnaW5hdGUocGFnZVNpemUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBzdG10LmV4ZWN1dGUoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWVsZHMgPSBNZXRob2RRdWVyeUJ1aWxkZXIuZ2V0RmllbGRzRnJvbU1ldGhvZE5hbWUocHJvcCk7XG4gICAgICAvLyBjb25zdCBwYXJhbU5hbWVzID0gZGVzY3JpcHRvci52YWx1ZVxuICAgICAgLy8gICAudG9TdHJpbmcoKVxuICAgICAgLy8gICAubWF0Y2goL1xcKChbXildKilcXCkvKT8uWzFdXG4gICAgICAvLyAgIC5zcGxpdChcIixcIilcbiAgICAgIC8vICAgLm1hcCgoeCkgPT4geC50cmltKCkpXG4gICAgICAvLyAgIC5maWx0ZXIoQm9vbGVhbik7XG4gICAgICByZXR1cm4gYXBwbHkoXG4gICAgICAgIG1ldGhvZE1ldGFkYXRhKE1ldGFkYXRhLmtleShQZXJzaXN0ZW5jZUtleXMuUVVFUlksIHByb3ApLCB7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBmaWVsZHMsXG4gICAgICAgIH0pLFxuICAgICAgICBwcmVwYXJlZCgpLFxuICAgICAgICBpbm5lclF1ZXJ5KG9wdGlvbnMpXG4gICAgICApKG9iaiwgcHJvcCwgZGVzY3JpcHRvcik7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBEZWNvcmF0aW9uLmZvcihQZXJzaXN0ZW5jZUtleXMuUVVFUlkpXG4gICAgLmRlZmluZSh7XG4gICAgICBkZWNvcmF0b3I6IHF1ZXJ5LFxuICAgICAgYXJnczogW29wdGlvbnNdLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG5cbmZ1bmN0aW9uIG5leHRWaWV3U2xvdChcbiAgdGFyZ2V0OiBhbnksXG4gIGtleTogUGVyc2lzdGVuY2VLZXlzIHwgT3BlcmF0b3IsXG4gIGF0dHI6IHN0cmluZ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgZXhpc3RpbmcgPSBNZXRhZGF0YS5nZXQodGFyZ2V0LmNvbnN0cnVjdG9yLCBrZXkpIHx8IHt9O1xuICBjb25zdCBhdHRyQnVja2V0ID0gZXhpc3RpbmdbYXR0cl0gfHwge307XG4gIGNvbnN0IG5leHQgPSBPYmplY3Qua2V5cyhhdHRyQnVja2V0KS5sZW5ndGggKyAxO1xuICByZXR1cm4gU3RyaW5nKG5leHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlWaWV3RGVjb3JhdG9yKFxuICBtZXRhS2V5OiBQZXJzaXN0ZW5jZUtleXMgfCBPcGVyYXRvcixcbiAga2luZDogVmlld0tpbmQsXG4gIG9wdHM/OiBWaWV3T3B0aW9uc1xuKSB7XG4gIHJldHVybiBmdW5jdGlvbiBkZWNvcmF0b3IodGFyZ2V0OiBhbnksIGF0dHI6IGFueSkge1xuICAgIGNvbnN0IHNsb3QgPSBvcHRzPy5uYW1lIHx8IG5leHRWaWV3U2xvdCh0YXJnZXQsIG1ldGFLZXksIGF0dHIgYXMgc3RyaW5nKTtcbiAgICBjb25zdCBrZXkgPSBNZXRhZGF0YS5rZXkobWV0YUtleSwgYXR0ciBhcyBzdHJpbmcsIHNsb3QpO1xuICAgIGNvbnN0IHZhbHVlOiBWaWV3TWV0YWRhdGEgPSB7XG4gICAgICAuLi4ob3B0cyB8fCB7fSksXG4gICAgICBraW5kLFxuICAgICAgYXR0cmlidXRlOiBhdHRyIGFzIHN0cmluZyxcbiAgICB9O1xuICAgIHJldHVybiBwcm9wTWV0YWRhdGEoa2V5LCB2YWx1ZSkodGFyZ2V0LCBhdHRyKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZpZXc8T1BUUyBleHRlbmRzIFZpZXdPcHRpb25zPihvcHRzPzogT1BUUykge1xuICByZXR1cm4gRGVjb3JhdGlvbi5mb3IoT3BlcmF0b3IuVklFVylcbiAgICAuZGVmaW5lKHtcbiAgICAgIGRlY29yYXRvcjogZnVuY3Rpb24gdmlldyhvPzogVmlld09wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIGFwcGx5Vmlld0RlY29yYXRvcihPcGVyYXRvci5WSUVXLCBcInZpZXdcIiwgbyk7XG4gICAgICB9LFxuICAgICAgYXJnczogW29wdHNdLFxuICAgIH0pXG4gICAgLmFwcGx5KCk7XG59XG4iXX0=
|
package/lib/esm/query/errors.js
CHANGED
|
@@ -23,4 +23,4 @@ export class PagingError extends InternalError {
|
|
|
23
23
|
super(msg, PagingError.name, 500);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxPQUFPLFVBQVcsU0FBUSxhQUFhO0lBQzNDLFlBQVksR0FBbUI7UUFDN0IsS0FBSyxDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsYUFBYTtJQUM1QyxZQUFZLEdBQW1CO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEVycm9yIHRocm93biBkdXJpbmcgcXVlcnkgb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgUmVwcmVzZW50cyBlcnJvcnMgdGhhdCBvY2N1ciBkdXJpbmcgcXVlcnkgYnVpbGRpbmcgb3IgZXhlY3V0aW9uXG4gKiBAcGFyYW0ge3N0cmluZyB8IEVycm9yfSBtc2cgLSBUaGUgZXJyb3IgbWVzc2FnZSBvciBFcnJvciBvYmplY3RcbiAqIEBjbGFzcyBRdWVyeUVycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWVyeUVycm9yIGV4dGVuZHMgSW50ZXJuYWxFcnJvciB7XG4gIGNvbnN0cnVjdG9yKG1zZzogc3RyaW5nIHwgRXJyb3IpIHtcbiAgICBzdXBlcihtc2csIFF1ZXJ5RXJyb3IubmFtZSwgNTAwKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFcnJvciB0aHJvd24gZHVyaW5nIHBhZ2luYXRpb24gb3BlcmF0aW9uc1xuICogQHN1bW1hcnkgUmVwcmVzZW50cyBlcnJvcnMgdGhhdCBvY2N1ciBkdXJpbmcgcGFnaW5hdGlvbiBzZXR1cCBvciBleGVjdXRpb25cbiAqIEBwYXJhbSB7c3RyaW5nIHwgRXJyb3J9IG1zZyAtIFRoZSBlcnJvciBtZXNzYWdlIG9yIEVycm9yIG9iamVjdFxuICogQGNsYXNzIFBhZ2luZ0Vycm9yXG4gKiBAY2F0ZWdvcnkgRXJyb3JzXG4gKi9cbmV4cG9ydCBjbGFzcyBQYWdpbmdFcnJvciBleHRlbmRzIEludGVybmFsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcihtc2c6IHN0cmluZyB8IEVycm9yKSB7XG4gICAgc3VwZXIobXNnLCBQYWdpbmdFcnJvci5uYW1lLCA1MDApO1xuICB9XG59XG4iXX0=
|
package/lib/esm/query/index.js
CHANGED
|
@@ -14,4 +14,4 @@ export * from "./decorators.js";
|
|
|
14
14
|
export * from "./MethodQueryBuilder.js";
|
|
15
15
|
export * from "./types.js";
|
|
16
16
|
export * from "./utils.js";
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILCtCQUE0QjtBQUM1QiwrQkFBNEI7QUFDNUIsNEJBQXlCO0FBQ3pCLDZCQUEwQjtBQUMxQiwrQkFBNEI7QUFDNUIsK0JBQTRCO0FBQzVCLCtCQUE0QjtBQUM1QixnQ0FBNkI7QUFDN0Isd0NBQXFDO0FBQ3JDLDJCQUF3QjtBQUN4QiwyQkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBFeHBvcnRzIGZvciB0aGUgcXVlcnkgbW9kdWxlLlxuICogQHN1bW1hcnkgVGhpcyBmaWxlIGV4cG9ydHMgYWxsIHRoZSBuZWNlc3NhcnkgY29tcG9uZW50cyBmb3IgdGhlIHF1ZXJ5IGZ1bmN0aW9uYWxpdHksIGluY2x1ZGluZyBDb25kaXRpb24sIGNvbnN0YW50cywgZXJyb3JzLCBhbmQgbW9yZS5cbiAqIEBtb2R1bGUgY29yZS9xdWVyeVxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9Db25kaXRpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vcHRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9QYWdpbmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlbGVjdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vU3RhdGVtZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9NZXRob2RRdWVyeUJ1aWxkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi91dGlsc1wiO1xuIl19
|
package/lib/esm/query/options.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=options.js.map
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyeS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktb2JqZWN0LXR5cGUgKi9cbmltcG9ydCB7XG4gIEdyb3VwQnlTZWxlY3RvcixcbiAgTGltaXRTZWxlY3RvcixcbiAgT2Zmc2V0U2VsZWN0b3IsXG4gIE9yZGVyQnlTZWxlY3RvcixcbiAgT3JkZXJEaXJlY3Rpb25JbnB1dCxcbiAgU2VsZWN0U2VsZWN0b3IsXG59IGZyb20gXCIuL3NlbGVjdG9yc1wiO1xuaW1wb3J0IHsgRXhlY3V0b3IgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi9Db25kaXRpb25cIjtcbmltcG9ydCB7IFBhZ2luYXRhYmxlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvUGFnaW5hdGFibGVcIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbnR5cGUgTm9ybWFsaXplZEdyb3VwS2V5PE0gZXh0ZW5kcyBNb2RlbCwgSyBleHRlbmRzIGtleW9mIE0+ID1cbiAgTVtLXSBleHRlbmRzIFByb3BlcnR5S2V5ID8gTVtLXSA6IFByb3BlcnR5S2V5O1xuXG50eXBlIEdyb3VwQnlSZXR1cm5WYWx1ZTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBLZXlzIGV4dGVuZHMgcmVhZG9ubHkgR3JvdXBCeVNlbGVjdG9yPE0+W10sXG4+ID0gS2V5cyBleHRlbmRzIFtcbiAgaW5mZXIgSGVhZCBleHRlbmRzIGtleW9mIE0sXG4gIC4uLmluZmVyIFRhaWwgZXh0ZW5kcyByZWFkb25seSBHcm91cEJ5U2VsZWN0b3I8TT5bXVxuXVxuICA/IFJlY29yZDxcbiAgICAgIE5vcm1hbGl6ZWRHcm91cEtleTxNLCBIZWFkPixcbiAgICAgIEdyb3VwQnlSZXR1cm5WYWx1ZTxNLCBUYWlsPlxuICAgID5cbiAgOiBNW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVtZW50RXhlY3V0b3I8TSBleHRlbmRzIE1vZGVsLCBSPlxuICBleHRlbmRzIEV4ZWN1dG9yPFI+LFxuICAgIFBhZ2luYXRhYmxlPE0sIFIsIGFueT4ge31cblxuZXhwb3J0IGludGVyZmFjZSBQcmVwYXJhYmxlU3RhdGVtZW50RXhlY3V0b3I8TSBleHRlbmRzIE1vZGVsLCBSPlxuICBleHRlbmRzIFN0YXRlbWVudEV4ZWN1dG9yPE0sIFI+IHtcbiAgcHJlcGFyZSguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8U3RhdGVtZW50RXhlY3V0b3I8TSwgUj4+O1xufVxuLyoqXG4gKiBAc3VtbWFyeSBHcm91cEJ5IE9wdGlvbiBpbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSBHUk9VUCBCWSBtZXRob2QgYW5kIHJlbWFpbmluZyBvcHRpb25zXG4gKlxuICogQGludGVyZmFjZSBHcm91cEJ5T3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91cEJ5UmVzdWx0PFxuICBNIGV4dGVuZHMgTW9kZWwsXG4gIEtleXMgZXh0ZW5kcyByZWFkb25seSBHcm91cEJ5U2VsZWN0b3I8TT5bXSA9IHJlYWRvbmx5IEdyb3VwQnlTZWxlY3RvcjxNPltdLFxuPiBleHRlbmRzIFByZXBhcmFibGVTdGF0ZW1lbnRFeGVjdXRvcjxNLCBHcm91cEJ5UmV0dXJuVmFsdWU8TSwgS2V5cz4+LFxuICAgIE9yZGVyQnlPcHRpb248TSwgR3JvdXBCeVJldHVyblZhbHVlPE0sIEtleXM+PixcbiAgICBMaW1pdE9wdGlvbjxNLCBHcm91cEJ5UmV0dXJuVmFsdWU8TSwgS2V5cz4+LFxuICAgIE9mZnNldE9wdGlvbjxNLCBHcm91cEJ5UmV0dXJuVmFsdWU8TSwgS2V5cz4+IHtcbiAgdGhlbkJ5PEtleSBleHRlbmRzIEdyb3VwQnlTZWxlY3RvcjxNPj4oXG4gICAgc2VsZWN0b3I6IEtleVxuICApOiBHcm91cEJ5UmVzdWx0PE0sIFsuLi5LZXlzLCBLZXldPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cEJ5T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbD4ge1xuICBncm91cEJ5PEtleSBleHRlbmRzIEdyb3VwQnlTZWxlY3RvcjxNPj4oXG4gICAgc2VsZWN0b3I6IEtleVxuICApOiBHcm91cEJ5UmVzdWx0PE0sIFtLZXldPjtcbn1cbi8qKlxuICogQHN1bW1hcnkgT2Zmc2V0IE9wdGlvbiBpbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSBPRkZTRVQgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgR3JvdXBCeU9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2Zmc2V0T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj5cbiAgZXh0ZW5kcyBQcmVwYXJhYmxlU3RhdGVtZW50RXhlY3V0b3I8TSwgUj4ge1xuICBvZmZzZXQoc2VsZWN0b3I6IE9mZnNldFNlbGVjdG9yKTogUHJlcGFyYWJsZVN0YXRlbWVudEV4ZWN1dG9yPE0sIFI+O1xufVxuLyoqXG4gKiBAc3VtbWFyeSBMaW1pdCBPcHRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgTElNSVQgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgTGltaXRPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbWl0T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj5cbiAgZXh0ZW5kcyBQcmVwYXJhYmxlU3RhdGVtZW50RXhlY3V0b3I8TSwgUj4ge1xuICBsaW1pdChzZWxlY3RvcjogTGltaXRTZWxlY3Rvcik6IE9mZnNldE9wdGlvbjxNLCBSPjtcbn1cbi8qKlxuICogQHN1bW1hcnkgT3JkZXJCeSBPcHRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgT1JERVIgQlkgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgT3JkZXJCeU9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJCeVJlc3VsdDxNIGV4dGVuZHMgTW9kZWwsIFI+XG4gIGV4dGVuZHMgTGltaXRPcHRpb248TSwgUj4sXG4gICAgT2Zmc2V0T3B0aW9uPE0sIFI+LFxuICAgIE9yZGVyQnlUaGVuQnlTdGFydGVyT3B0aW9uPE0sIFI+IHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJCeU9wdGlvbjxNIGV4dGVuZHMgTW9kZWwsIFI+XG4gIGV4dGVuZHMgUHJlcGFyYWJsZVN0YXRlbWVudEV4ZWN1dG9yPE0sIFI+IHtcbiAgb3JkZXJCeShzZWxlY3RvcjogT3JkZXJCeVNlbGVjdG9yPE0+KTogT3JkZXJCeVJlc3VsdDxNLCBSPjtcbiAgb3JkZXJCeShcbiAgICBhdHRyaWJ1dGU6IGtleW9mIE0sXG4gICAgZGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbklucHV0XG4gICk6IE9yZGVyQnlSZXN1bHQ8TSwgUj47XG59XG4vKipcbiAqIEBzdW1tYXJ5IE9yZGVyQnkgY2hhaW5pbmcgc3RhcnRlciBpbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSB0aGVuQnkgbWV0aG9kcyBmb3IgY29udGludWluZyBvcmRlckJ5IGNoYWluc1xuICpcbiAqIEBpbnRlcmZhY2UgT3JkZXJCeVRoZW5CeVN0YXJ0ZXJPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yZGVyQnlUaGVuQnlTdGFydGVyT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj4ge1xuICB0aGVuQnkoc2VsZWN0b3I6IE9yZGVyQnlTZWxlY3RvcjxNPik6IE9yZGVyQnlUaGVuQnlPcHRpb248TSwgUj47XG4gIHRoZW5CeShcbiAgICBhdHRyaWJ1dGU6IGtleW9mIE0sXG4gICAgZGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbklucHV0XG4gICk6IE9yZGVyQnlUaGVuQnlPcHRpb248TSwgUj47XG59XG5cbi8qKlxuICogQHN1bW1hcnkgT3JkZXJCeSBjaGFpbmluZyBjb250aW51YXRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyBsaW1pdC9vZmZzZXQgYW5kIGZ1cnRoZXIgdGhlbkJ5IGNoYWluaW5nIGZvciBtdWx0aS1sZXZlbCBzb3J0c1xuICpcbiAqIEBpbnRlcmZhY2UgT3JkZXJCeVRoZW5CeU9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJCeVRoZW5CeU9wdGlvbjxNIGV4dGVuZHMgTW9kZWwsIFI+XG4gIGV4dGVuZHMgTGltaXRPcHRpb248TSwgUj4sXG4gICAgT2Zmc2V0T3B0aW9uPE0sIFI+LFxuICAgIE9yZGVyQnlUaGVuQnlTdGFydGVyT3B0aW9uPE0sIFI+IHt9XG4vKipcbiAqIEBzdW1tYXJ5IEdyb3VwcyBzZXZlcmFsIG9yZGVyIGFuZCBncm91cGluZyBvcHRpb25zXG4gKlxuICogQGludGVyZmFjZSBPcmRlckFuZEdyb3VwT3B0aW9uXG4gKiBAZXh0ZW5kcyBPcmRlckJ5T3B0aW9uXG4gKiBAZXh0ZW5kcyBHcm91cEJ5T3B0aW9uXG4gKiBAZXh0ZW5kcyBMaW1pdE9wdGlvblxuICogQGV4dGVuZHMgT2Zmc2V0T3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmRlckFuZEdyb3VwT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj5cbiAgZXh0ZW5kcyBPcmRlckJ5T3B0aW9uPE0sIFI+LFxuICAgIFByZXBhcmFibGVTdGF0ZW1lbnRFeGVjdXRvcjxNLCBSPixcbiAgICBHcm91cEJ5T3B0aW9uPE0+LFxuICAgIExpbWl0T3B0aW9uPE0sIFI+LFxuICAgIE9mZnNldE9wdGlvbjxNLCBSPiB7fVxuLyoqXG4gKiBAc3VtbWFyeSBXaGVyZSBPcHRpb24gaW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgV0hFUkUgbWV0aG9kIGFuZCByZW1haW5pbmcgb3B0aW9uc1xuICpcbiAqIEBpbnRlcmZhY2UgV2hlcmVPcHRpb25cbiAqIEBleHRlbmRzIE9yZGVyQW5kR3JvdXBPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdoZXJlT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj5cbiAgZXh0ZW5kcyBPcmRlckFuZEdyb3VwT3B0aW9uPE0sIFI+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IGZpbHRlciB0aGUgcmVjb3JkcyBieSBhIGNvbmRpdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge0NvbmRpdGlvbn0gY29uZGl0aW9uXG4gICAqIEBtZXRob2RcbiAgICovXG4gIHdoZXJlKGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+KTogT3JkZXJBbmRHcm91cE9wdGlvbjxNLCBSPjtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBGcm9tIE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSBGUk9NIG1ldGhvZCBhbmQgcmVtYWluaW5nIG9wdGlvbnNcbiAqXG4gKiBAaW50ZXJmYWNlIEZyb21PcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZyb21PcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBzZWxlY3RzIHJlY29yZHMgZnJvbSBhIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3J9IHRhYmxlTmFtZVxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBmcm9tKHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcpOiBXaGVyZU9wdGlvbjxNLCBSPjtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEaXN0aW5jdCBPcHRpb24gSW50ZXJmYWNlXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyB0aGUgcmVtYWluaW5nIG9wdGlvbnMgYWZ0ZXIgYSBESVNUSU5DVFxuICpcbiAqIEBpbnRlcmZhY2UgRGlzdGluY3RPcHRpb25cbiAqIEBleHRlbmRzIEZyb21PcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpc3RpbmN0T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUj4gZXh0ZW5kcyBGcm9tT3B0aW9uPE0sIFI+IHt9XG5cbi8qKlxuICogQHN1bW1hcnkgTWF4IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIE1BWFxuICpcbiAqIEBpbnRlcmZhY2UgTWF4T3B0aW9uXG4gKiBAZXh0ZW5kcyBGcm9tT3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXhPcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPiBleHRlbmRzIEZyb21PcHRpb248TSwgUj4ge31cblxuLyoqXG4gKiBAc3VtbWFyeSBNaW4gT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGEgTUlOXG4gKlxuICogQGludGVyZmFjZSBNaW5PcHRpb25cbiAqIEBleHRlbmRzIEZyb21PcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1pbk9wdGlvbjxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgRnJvbU9wdGlvbjxNLCBSPiB7fVxuXG4vKipcbiAqIEBzdW1tYXJ5IENvdW50IERpc3RpbmN0IFdoZXJlIE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBDT1VOVCBESVNUSU5DVC4uLkZST01cbiAqXG4gKiBAaW50ZXJmYWNlIENvdW50RGlzdGluY3RXaGVyZU9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ291bnREaXN0aW5jdFdoZXJlT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbD5cbiAgZXh0ZW5kcyBPcmRlckFuZEdyb3VwT3B0aW9uPE0sIG51bWJlcj4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgZmlsdGVyIHRoZSByZWNvcmRzIGJ5IGEgY29uZGl0aW9uXG4gICAqIEBwYXJhbSB7Q29uZGl0aW9ufSBjb25kaXRpb25cbiAgICovXG4gIHdoZXJlKGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+KTogQ291bnREaXN0aW5jdFdoZXJlT3B0aW9uPE0+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IENvdW50IFdoZXJlIE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBDT1VOVC4uLkZST00gd2l0aCBkaXN0aW5jdCgpIGF2YWlsYWJsZVxuICpcbiAqIEBpbnRlcmZhY2UgQ291bnRXaGVyZU9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRXaGVyZU9wdGlvbjxNIGV4dGVuZHMgTW9kZWw+XG4gIGV4dGVuZHMgT3JkZXJBbmRHcm91cE9wdGlvbjxNLCBudW1iZXI+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IE1ha2VzIHRoZSBjb3VudCBkaXN0aW5jdFxuICAgKiBAZGVzY3JpcHRpb24gV2hlbiBjaGFpbmVkIGFmdGVyIGNvdW50KCksIGNvdW50cyBvbmx5IGRpc3RpbmN0IHZhbHVlc1xuICAgKiBAcmV0dXJuIEEgY291bnQgZGlzdGluY3QgcXVlcnkgYnVpbGRlclxuICAgKi9cbiAgZGlzdGluY3QoKTogQ291bnREaXN0aW5jdFdoZXJlT3B0aW9uPE0+O1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBmaWx0ZXIgdGhlIHJlY29yZHMgYnkgYSBjb25kaXRpb25cbiAgICogQHBhcmFtIHtDb25kaXRpb259IGNvbmRpdGlvblxuICAgKi9cbiAgd2hlcmUoY29uZGl0aW9uOiBDb25kaXRpb248TT4pOiBDb3VudFdoZXJlT3B0aW9uPE0+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IENvdW50IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIENPVU5UXG4gKlxuICogQGludGVyZmFjZSBDb3VudE9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRPcHRpb248TSBleHRlbmRzIE1vZGVsPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBNYWtlcyB0aGUgY291bnQgZGlzdGluY3RcbiAgICogQGRlc2NyaXB0aW9uIFdoZW4gY2hhaW5lZCBhZnRlciBjb3VudCgpLCBjb3VudHMgb25seSBkaXN0aW5jdCB2YWx1ZXNcbiAgICogQHJldHVybiBBIGNvdW50IGRpc3RpbmN0IHF1ZXJ5IGJ1aWxkZXJcbiAgICovXG4gIGRpc3RpbmN0KCk6IENvdW50RGlzdGluY3RPcHRpb248TT47XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHNlbGVjdHMgcmVjb3JkcyBmcm9tIGEgdGFibGVcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3Rvcn0gdGFibGVOYW1lXG4gICAqL1xuICBmcm9tKHRhYmxlTmFtZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcpOiBDb3VudFdoZXJlT3B0aW9uPE0+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IENvdW50IERpc3RpbmN0IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIENPVU5UIERJU1RJTkNUXG4gKlxuICogQGludGVyZmFjZSBDb3VudERpc3RpbmN0T3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3VudERpc3RpbmN0T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbD4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgc2VsZWN0cyByZWNvcmRzIGZyb20gYSB0YWJsZVxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yfSB0YWJsZU5hbWVcbiAgICovXG4gIGZyb20odGFibGVOYW1lOiBDb25zdHJ1Y3RvcjxNPiB8IHN0cmluZyk6IENvdW50V2hlcmVPcHRpb248TT47XG59XG5cbi8qKlxuICogQHN1bW1hcnkgU3VtIE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhIFNVTVxuICpcbiAqIEBpbnRlcmZhY2UgU3VtT3B0aW9uXG4gKiBAZXh0ZW5kcyBGcm9tT3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdW1PcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPiBleHRlbmRzIEZyb21PcHRpb248TSwgUj4ge31cblxuLyoqXG4gKiBAc3VtbWFyeSBBdmcgT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGFuIEFWR1xuICpcbiAqIEBpbnRlcmZhY2UgQXZnT3B0aW9uXG4gKiBAZXh0ZW5kcyBGcm9tT3B0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdmdPcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPiBleHRlbmRzIEZyb21PcHRpb248TSwgUj4ge31cblxuLyoqXG4gKiBAc3VtbWFyeSBTZWxlY3QgT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGEgU0VMRUNUXG4gKlxuICogQGludGVyZmFjZSBTZWxlY3RPcHRpb25cbiAqIEBleHRlbmRzIEZyb21PcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvbjxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgRnJvbU9wdGlvbjxNLCBSPiB7XG4gIGRpc3RpbmN0PFMgZXh0ZW5kcyBTZWxlY3RTZWxlY3RvcjxNPj4oc2VsZWN0b3I6IFMpOiBEaXN0aW5jdE9wdGlvbjxNLCBNW1NdW10+O1xuXG4gIG1heDxTIGV4dGVuZHMgU2VsZWN0U2VsZWN0b3I8TT4+KHNlbGVjdG9yOiBTKTogTWF4T3B0aW9uPE0sIE1bU10+O1xuXG4gIG1pbjxTIGV4dGVuZHMgU2VsZWN0U2VsZWN0b3I8TT4+KHNlbGVjdG9yOiBTKTogTWluT3B0aW9uPE0sIE1bU10+O1xuXG4gIGNvdW50PFMgZXh0ZW5kcyBTZWxlY3RTZWxlY3RvcjxNPj4oc2VsZWN0b3I/OiBTKTogQ291bnRPcHRpb248TT47XG5cbiAgc3VtPFMgZXh0ZW5kcyBTZWxlY3RTZWxlY3RvcjxNPj4oc2VsZWN0b3I6IFMpOiBTdW1PcHRpb248TSwgbnVtYmVyPjtcblxuICBhdmc8UyBleHRlbmRzIFNlbGVjdFNlbGVjdG9yPE0+PihzZWxlY3RvcjogUyk6IEF2Z09wdGlvbjxNLCBudW1iZXI+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEludG8gT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGFuIElOVE9cbiAqXG4gKiBAaW50ZXJmYWNlIEludG9PcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludG9PcHRpb248TSBleHRlbmRzIE1vZGVsLCBSPiB7XG4gIHZhbHVlcyguLi5tb2RlbHM6IE1bXSk6IEV4ZWN1dG9yPFI+O1xuXG4gIHdoZXJlKGNvbmRpdGlvbjogQ29uZGl0aW9uPE0+KTogRXhlY3V0b3I8Uj47XG59XG4vKipcbiAqIEBzdW1tYXJ5IFZhbHVlc3QgT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIHJlbWFpbmluZyBvcHRpb25zIGFmdGVyIGEgVkFMVUVTXG4gKlxuICogQGludGVyZmFjZSBWYWx1ZXNPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlc09wdGlvbjxNIGV4dGVuZHMgTW9kZWw+IGV4dGVuZHMgRXhlY3V0b3I8TT4ge31cbi8qKlxuICogQHN1bW1hcnkgSW5zZXJ0IE9wdGlvbiBJbnRlcmZhY2VcbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSByZW1haW5pbmcgb3B0aW9ucyBhZnRlciBhbiBJTlNFUlRcbiAqXG4gKiBAaW50ZXJmYWNlIEluc2VydE9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zZXJ0T3B0aW9uPE0gZXh0ZW5kcyBNb2RlbCwgUiA9IHZvaWQ+IHtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHNlbGVjdHMgdGhlIHRhYmxlIHRvIGluc2VydCByZWNvcmRzIGludG9cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBDb25zdHJ1Y3Rvcn0gdGFibGVcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgaW50byh0YWJsZTogQ29uc3RydWN0b3I8TT4pOiBJbnRvT3B0aW9uPE0sIFI+O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IHtAbGluayBPcGVyYXRvcn0gT3B0aW9uIEludGVyZmFjZVxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIGF2YWlsYWJsZSBvcGVyYXRvcnMgZm9yIGEge0BsaW5rIENvbmRpdGlvbn1cbiAqXG4gKiBAaW50ZXJmYWNlIEF0dHJpYnV0ZU9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXR0cmlidXRlT3B0aW9uPE0gZXh0ZW5kcyBNb2RlbD4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgVGVzdCBlcXVhbGl0eVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIGVxKHZhbDogYW55KTogQ29uZGl0aW9uPE0+O1xuICAvKipcbiAgICogQHN1bW1hcnkgVGVzdCBkaWZmZXJlbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSB2YWwgdGhlIHZhbHVlIHRvIHRlc3RcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZGlmKHZhbDogYW55KTogQ29uZGl0aW9uPE0+O1xuICAvKipcbiAgICogQHN1bW1hcnkgVGVzdCBncmVhdGVyIHRoYW5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbCB0aGUgdmFsdWUgdG8gdGVzdFxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBndCh2YWw6IGFueSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgbG93ZXIgdGhhblxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIGx0KHZhbDogYW55KTogQ29uZGl0aW9uPE0+O1xuICAvKipcbiAgICogQHN1bW1hcnkgVGVzdCBncmVhdGVyIG9yIGVxdWFsIHRvXG4gICAqXG4gICAqIEBwYXJhbSB7YW55fSB2YWwgdGhlIHZhbHVlIHRvIHRlc3RcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZ3RlKHZhbDogYW55KTogQ29uZGl0aW9uPE0+O1xuICAvKipcbiAgICogQHN1bW1hcnkgVGVzdCBsb3dlciBvciBlcXVhbCB0b1xuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIGx0ZSh2YWw6IGFueSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgdmFsdWUgaW4gYSByYW5nZSBvZiB2YWx1ZXNcbiAgICogQHBhcmFtIHthbnlbXX0gdmFsXG4gICAqL1xuICBpbih2YWw6IGFueVtdKTogQ29uZGl0aW9uPE0+O1xuICAvKipcbiAgICogQHN1bW1hcnkgVGVzdCB2YWx1ZSBpcyBiZXR3ZWVuIG1pbiBhbmQgbWF4IChpbmNsdXNpdmUpXG4gICAqIEBwYXJhbSB7YW55fSBtaW4gdGhlIG1pbmltdW0gdmFsdWVcbiAgICogQHBhcmFtIHthbnl9IG1heCB0aGUgbWF4aW11bSB2YWx1ZVxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBiZXR3ZWVuKG1pbjogYW55LCBtYXg6IGFueSk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3QgbWF0Y2hlcyB7QGxpbmsgUmVnRXhwfVxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsIHRoZSB2YWx1ZSB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIHJlZ2V4cCh2YWw6IHN0cmluZyB8IFJlZ0V4cCk6IENvbmRpdGlvbjxNPjtcbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFRlc3Qgc3RyaW5nIHN0YXJ0cyB3aXRoIHZhbHVlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWwgdGhlIHByZWZpeCB0byB0ZXN0XG4gICAqIEBtZXRob2RcbiAgICovXG4gIHN0YXJ0c1dpdGgodmFsOiBzdHJpbmcpOiBDb25kaXRpb248TT47XG4gIC8qKlxuICAgKiBAc3VtbWFyeSBUZXN0IHN0cmluZyBlbmRzIHdpdGggdmFsdWVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbCB0aGUgc3VmZml4IHRvIHRlc3RcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZW5kc1dpdGgodmFsOiBzdHJpbmcpOiBDb25kaXRpb248TT47XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGUgc3RhcnRpbmcgcG9pbnQgZm9yIGNyZWF0aW5nIHF1ZXJ5IGNvbmRpdGlvbnNcbiAqIEBzdW1tYXJ5IEV4cG9zZXMgdGhlIGF2YWlsYWJsZSBvcGVyYXRpb25zIGZvciBidWlsZGluZyBkYXRhYmFzZSBxdWVyeSBjb25kaXRpb25zXG4gKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIHRoaXMgY29uZGl0aW9uIGJ1aWxkZXIgb3BlcmF0ZXMgb25cbiAqIEBpbnRlcmZhY2UgQ29uZGl0aW9uQnVpbGRlck9wdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZGl0aW9uQnVpbGRlck9wdGlvbjxNIGV4dGVuZHMgTW9kZWw+IHtcbiAgYXR0cmlidXRlKGF0dHI6IGtleW9mIE0pOiBBdHRyaWJ1dGVPcHRpb248TT47XG4gIGF0dHIoYXR0cjoga2V5b2YgTSk6IEF0dHJpYnV0ZU9wdGlvbjxNPjtcbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L3NlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IE9yZGVyRGlyZWN0aW9uIH0gZnJvbSBcIi4uL3JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG5leHBvcnQgdHlwZSBPcmRlckRpcmVjdGlvbklucHV0ID1cbiAgfCBPcmRlckRpcmVjdGlvblxuICB8IFwiYXNjXCJcbiAgfCBcImRlc2NcIlxuICB8IFwiQVNDXCJcbiAgfCBcIkRFU0NcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSBmb3Igc2VsZWN0aW5nIHRoZSBkYXRhIHNvdXJjZSBpbiBhIHF1ZXJ5XG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSB0eXBlIGZvciBzcGVjaWZ5aW5nIHRoZSB0YWJsZSBvciBtb2RlbCB0byBxdWVyeSBmcm9tXG4gKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIHRoaXMgc2VsZWN0b3Igb3BlcmF0ZXMgb25cbiAqIEB0eXBlZGVmIHtDb25zdHJ1Y3RvcjxNPiB8IHN0cmluZ30gRnJvbVNlbGVjdG9yXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IHR5cGUgRnJvbVNlbGVjdG9yPE0gZXh0ZW5kcyBNb2RlbD4gPSBDb25zdHJ1Y3RvcjxNPiB8IHN0cmluZztcblxuZXhwb3J0IHR5cGUgR3JvdXBCeVNlbGVjdG9yPE0gZXh0ZW5kcyBNb2RlbD4gPSBrZXlvZiBNO1xuXG5leHBvcnQgdHlwZSBPcmRlckJ5U2VsZWN0b3I8TSBleHRlbmRzIE1vZGVsPiA9IFtcbiAga2V5b2YgTSxcbiAgT3JkZXJEaXJlY3Rpb25JbnB1dCxcbl07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGUgZm9yIGxpbWl0aW5nIHF1ZXJ5IHJlc3VsdHNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHR5cGUgZm9yIHNwZWNpZnlpbmcgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgdG8gcmV0dXJuXG4gKiBAdHlwZWRlZiB7bnVtYmVyfSBMaW1pdFNlbGVjdG9yXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmNvcmVcbiAqL1xuZXhwb3J0IHR5cGUgTGltaXRTZWxlY3RvciA9IG51bWJlcjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSBmb3Igb2Zmc2V0dGluZyBxdWVyeSByZXN1bHRzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSB0eXBlIGZvciBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgcmVzdWx0cyB0byBza2lwXG4gKiBAdHlwZWRlZiB7bnVtYmVyfSBPZmZzZXRTZWxlY3RvclxuICogQG1lbWJlck9mIG1vZHVsZTpjb3JlXG4gKi9cbmV4cG9ydCB0eXBlIE9mZnNldFNlbGVjdG9yID0gbnVtYmVyO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIGZvciBzZWxlY3RpbmcgZmllbGRzIGluIGEgcXVlcnlcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHR5cGUgZm9yIHNwZWNpZnlpbmcgd2hpY2ggZmllbGRzIHRvIHNlbGVjdCBmcm9tIGEgbW9kZWxcbiAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGUgdGhpcyBzZWxlY3RvciBvcGVyYXRlcyBvblxuICogQHR5cGVkZWYgU2VsZWN0U2VsZWN0b3JcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Y29yZVxuICovXG5leHBvcnQgdHlwZSBTZWxlY3RTZWxlY3RvcjxNIGV4dGVuZHMgTW9kZWw+ID0ga2V5b2YgTTtcbiJdfQ==
|
package/lib/esm/query/types.js
CHANGED
|
@@ -28,4 +28,4 @@ export var QueryClause;
|
|
|
28
28
|
QueryClause["THEN"] = "Then";
|
|
29
29
|
QueryClause["THEN_BY"] = "ThenBy";
|
|
30
30
|
})(QueryClause || (QueryClause = {}));
|
|
31
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcnkvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkZBOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQU4sSUFBWSxXQWlCWDtBQWpCRCxXQUFZLFdBQVc7SUFDckIsaUNBQWtCLENBQUE7SUFDbEIsaUNBQWtCLENBQUE7SUFDbEIsbUNBQW9CLENBQUE7SUFDcEIsK0JBQWdCLENBQUE7SUFDaEIsK0JBQWdCLENBQUE7SUFDaEIsK0JBQWdCLENBQUE7SUFDaEIsK0JBQWdCLENBQUE7SUFDaEIseUNBQTBCLENBQUE7SUFDMUIsMENBQTJCLENBQUE7SUFDM0IsZ0NBQWlCLENBQUE7SUFDakIsMEJBQVcsQ0FBQTtJQUNYLHdCQUFTLENBQUE7SUFDVCxtQ0FBb0IsQ0FBQTtJQUNwQixtQ0FBb0IsQ0FBQTtJQUNwQiw0QkFBYSxDQUFBO0lBQ2IsaUNBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQWpCVyxXQUFXLEtBQVgsV0FBVyxRQWlCdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi9Db25kaXRpb25cIjtcbmltcG9ydCB7IE9yZGVyQnlTZWxlY3RvciB9IGZyb20gXCIuL3NlbGVjdG9yc1wiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24gfSBmcm9tIFwiLi4vcmVwb3NpdG9yeS9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE9wdGlvbnMgZm9yIGNvbmZpZ3VyaW5nIHF1ZXJ5IGJ1aWxkaW5nIGJlaGF2aW9yLlxuICpcbiAqIEBzdW1tYXJ5XG4gKiBUaGUgYFF1ZXJ5T3B0aW9uc2AgdHlwZSBkZWZpbmVzIGZsYWdzIHRoYXQgZGV0ZXJtaW5lIHdoZXRoZXIgY2VydGFpbiBjbGF1c2VzXG4gKiAobGltaXQsIG9mZnNldCwgb3JkZXIgYnkpIGFyZSBwZXJtaXR0ZWQsIGFzIHdlbGwgYXMgd2hldGhlciB2aW9sYXRpb25zXG4gKiBzaG91bGQgdGhyb3cgYW4gZXJyb3IgZHVyaW5nIHF1ZXJ5IGNvbnN0cnVjdGlvbi5cbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnF1ZXJ5XG4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5T3B0aW9ucyA9IHtcbiAgYWxsb3dMaW1pdD86IGJvb2xlYW47XG4gIGFsbG93T2Zmc2V0PzogYm9vbGVhbjtcbiAgYWxsb3dPcmRlckJ5PzogYm9vbGVhbjtcbiAgdGhyb3dzPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIE9yZGVyTGltaXRPZmZzZXRFeHRyYWN0ID0ge1xuICBvcmRlckJ5PzogT3JkZXJCeVNlbGVjdG9yPGFueT5bXTtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIG9mZnNldD86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIERpcmVjdGlvbkxpbWl0T2Zmc2V0ID0ge1xuICBkaXJlY3Rpb24/OiBPcmRlckRpcmVjdGlvbjtcbiAgb3JkZXI/OiBPcmRlckJ5U2VsZWN0b3I8YW55PltdO1xuICBsaW1pdD86IG51bWJlcjtcbiAgb2Zmc2V0PzogbnVtYmVyO1xuICBib29rbWFyaz86IHN0cmluZyB8IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkU3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbD4gPSB7XG4gIGNsYXNzOiBDb25zdHJ1Y3RvcjxNPjtcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIGFyZ3M6IGFueVtdO1xuICBwYXJhbXM6IERpcmVjdGlvbkxpbWl0T2Zmc2V0O1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIFN0cnVjdHVyZWQgcXVlcnkgb2JqZWN0IHJlcHJlc2VudGluZyBwYXJzZWQgcXVlcnkgY2xhdXNlcy5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBRdWVyeUFzc2lzdGAgaW50ZXJmYWNlIGRlZmluZXMgdGhlIHN0YW5kYXJkIHN0cnVjdHVyZSByZXR1cm5lZFxuICogYnkgcXVlcnkgYnVpbGRlcnMuIEl0IGluY2x1ZGVzIGFjdGlvbnMgc3VjaCBhcyBmaW5kLCBvcHRpb25hbCBjbGF1c2VzXG4gKiBsaWtlIHNlbGVjdCwgZ3JvdXBCeSwgYW5kIG9yZGVyQnksIGFuZCBwYWdpbmF0aW9uIGNvbnRyb2xzIChsaW1pdCwgb2Zmc2V0KS5cbiAqXG4gKiBAdGVtcGxhdGUgVCBUaGUgZW50aXR5IG9yIHJlY29yZCB0eXBlIHRoYXQgY29uZGl0aW9ucyBtYXkgYXBwbHkgdG8uXG4gKlxuICogQGludGVyZmFjZSBRdWVyeUFzc2lzdFxuICogQG1lbWJlck9mIG1vZHVsZTpxdWVyeVxuICovXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogU3VwcG9ydGVkIHF1ZXJ5IGFjdGlvbiB0eXBlcyBmb3IgbWV0aG9kLWJhc2VkIHF1ZXJpZXMuXG4gKlxuICogQHN1bW1hcnlcbiAqIFRoZSBgUXVlcnlBY3Rpb25gIHR5cGUgZGVmaW5lcyB0aGUgcG9zc2libGUgYWN0aW9ucyB0aGF0IGNhbiBiZVxuICogcGVyZm9ybWVkIGJ5IGEgcXVlcnkgYnVpbHQgZnJvbSBhIG1ldGhvZCBuYW1lLlxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6cXVlcnlcbiAqL1xuZXhwb3J0IHR5cGUgUXVlcnlBY3Rpb24gPVxuICB8IFwiZmluZFwiXG4gIHwgXCJwYWdlXCJcbiAgfCBcImNvdW50XCJcbiAgfCBcInN1bVwiXG4gIHwgXCJhdmdcIlxuICB8IFwibWluXCJcbiAgfCBcIm1heFwiXG4gIHwgXCJkaXN0aW5jdFwiXG4gIHwgXCJncm91cFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5QXNzaXN0IHtcbiAgYWN0aW9uOiBRdWVyeUFjdGlvbjtcbiAgc2VsZWN0OiB1bmRlZmluZWQgfCBzdHJpbmdbXTtcbiAgc2VsZWN0b3I/OiBzdHJpbmc7XG4gIHdoZXJlPzogQ29uZGl0aW9uPGFueT47XG4gIGdyb3VwQnk/OiBzdHJpbmdbXTtcbiAgb3JkZXJCeT86IE9yZGVyQnlTZWxlY3Rvcjxhbnk+W107XG4gIGxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIG9mZnNldDogbnVtYmVyIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogRW51bWVyYXRpb24gb2Ygc3VwcG9ydGVkIHF1ZXJ5IGNsYXVzZXMgZm9yIGJ1aWxkaW5nIG1ldGhvZC1iYXNlZCBxdWVyaWVzLlxuICpcbiAqIEBzdW1tYXJ5XG4gKiBUaGUgYFF1ZXJ5Q2xhdXNlYCBlbnVtIGRlZmluZXMgc3RyaW5nIGxpdGVyYWxzIHRoYXQgcmVwcmVzZW50XG4gKiBkaWZmZXJlbnQgc2VnbWVudHMgb2YgYSBxdWVyeSAoZS5nLiwgYGZpbmRCeWAsIGBTZWxlY3RgLCBgQW5kYCwgYE9yYCkuXG4gKlxuICogQGVudW0gUXVlcnlDbGF1c2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6cXVlcnlcbiAqL1xuZXhwb3J0IGVudW0gUXVlcnlDbGF1c2Uge1xuICBGSU5EX0JZID0gXCJmaW5kQnlcIixcbiAgUEFHRV9CWSA9IFwicGFnZUJ5XCIsXG4gIENPVU5UX0JZID0gXCJjb3VudEJ5XCIsXG4gIFNVTV9CWSA9IFwic3VtQnlcIixcbiAgQVZHX0JZID0gXCJhdmdCeVwiLFxuICBNSU5fQlkgPSBcIm1pbkJ5XCIsXG4gIE1BWF9CWSA9IFwibWF4QnlcIixcbiAgRElTVElOQ1RfQlkgPSBcImRpc3RpbmN0QnlcIixcbiAgR1JPVVBfQllfUFJFRklYID0gXCJncm91cEJ5XCIsXG4gIFNFTEVDVCA9IFwiU2VsZWN0XCIsXG4gIEFORCA9IFwiQW5kXCIsXG4gIE9SID0gXCJPclwiLFxuICBHUk9VUF9CWSA9IFwiR3JvdXBCeVwiLFxuICBPUkRFUl9CWSA9IFwiT3JkZXJCeVwiLFxuICBUSEVOID0gXCJUaGVuXCIsXG4gIFRIRU5fQlkgPSBcIlRoZW5CeVwiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogRnVuY3Rpb24gc2lnbmF0dXJlIGZvciBwYXJzaW5nIG9wZXJhdG9ycyBpbiBxdWVyeSBidWlsZGluZy5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBPcGVyYXRvclBhcnNlcmAgdHlwZSByZXByZXNlbnRzIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIGZpZWxkIG5hbWVcbiAqIGFuZCBhcmd1bWVudHMsIHRoZW4gcHJvZHVjZXMgYSBgQ29uZGl0aW9uYCBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBpbiBhIHF1ZXJ5LlxuICpcbiAqIEB0ZW1wbGF0ZSBUIFRoZSB0eXBlIG9mIHRoZSBjb25kaXRpb24gcmVzdWx0LlxuICpcbiAqIEBwYXJhbSBmaWVsZCB7c3RyaW5nfSAtIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCBiZWluZyBwYXJzZWQuXG4gKiBAcGFyYW0gYXJncyB7YW55W119IC0gQWRkaXRpb25hbCBhcmd1bWVudHMgZm9yIG9wZXJhdG9yIGV2YWx1YXRpb24uXG4gKlxuICogQHJldHVybiB7Q29uZGl0aW9uPGFueT59IEEgY29uZGl0aW9uIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHBhcnNlZCBvcGVyYXRvci5cbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnF1ZXJ5XG4gKi9cbmV4cG9ydCB0eXBlIE9wZXJhdG9yUGFyc2VyID0gKGZpZWxkOiBzdHJpbmcsIC4uLmFyZ3M6IGFueSkgPT4gQ29uZGl0aW9uPGFueT47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBEZXNjcmlwdG9yIGZvciBmaWVsZHMgYW5kIHRoZWlyIGFzc29jaWF0ZWQgb3BlcmF0b3JzIGluIHF1ZXJ5IHBhcnNpbmcuXG4gKlxuICogQHN1bW1hcnlcbiAqIFRoZSBgRmlsdGVyRGVzY3JpcHRvcmAgaW50ZXJmYWNlIGRlZmluZXMgdGhlIHN0cnVjdHVyZSB1c2VkIHdoZW4gcGFyc2luZ1xuICogbWV0aG9kIHNlZ21lbnRzIGludG8gZmlsdGVyYWJsZSBmaWVsZHMgYW5kIGFzc29jaWF0ZWQgb3BlcmF0b3JzLlxuICpcbiAqIEBpbnRlcmZhY2UgRmlsdGVyRGVzY3JpcHRvclxuICogQG1lbWJlck9mIG1vZHVsZTpxdWVyeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckRlc2NyaXB0b3Ige1xuICBmaWVsZDogc3RyaW5nO1xuICBvcGVyYXRvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVmlld0tleSA9IHN0cmluZyB8IHN0cmluZ1tdO1xuXG5leHBvcnQgdHlwZSBWaWV3S2luZCA9XG4gIHwgXCJ2aWV3XCJcbiAgfCBcImdyb3VwQnlcIlxuICB8IFwiY291bnRcIlxuICB8IFwic3VtXCJcbiAgfCBcIm1heFwiXG4gIHwgXCJtaW5cIlxuICB8IFwiZGlzdGluY3RcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWaWV3QXV0aE9wdGlvbnMge1xuICBleHByZXNzaW9uPzogc3RyaW5nO1xuICBmaWVsZD86IHN0cmluZztcbiAgcm9sZXM/OiBzdHJpbmdbXTtcbiAgbW9kZT86IFwiYW55XCIgfCBcImFsbFwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdPcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAga2V5PzogVmlld0tleTtcbiAgdmFsdWU/OiBWaWV3S2V5IHwgbnVsbDtcbiAgY29uZGl0aW9uPzogQ29uZGl0aW9uPGFueT4gfCBzdHJpbmc7XG4gIGF1dGg/OiBzdHJpbmcgfCBWaWV3QXV0aE9wdGlvbnM7XG4gIGNvbXBvc2l0aW9ucz86IHN0cmluZ1tdO1xuICBkaXJlY3Rpb25zPzogT3JkZXJEaXJlY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWaWV3TWV0YWRhdGEgZXh0ZW5kcyBWaWV3T3B0aW9ucyB7XG4gIGtpbmQ6IFZpZXdLaW5kO1xuICBhdHRyaWJ1dGU6IHN0cmluZztcbn1cbiJdfQ==
|
package/lib/esm/query/utils.js
CHANGED
|
@@ -52,4 +52,4 @@ export const OperatorsMap = {
|
|
|
52
52
|
In: (f, v) => Condition.attribute(f).in(v),
|
|
53
53
|
Matches: (f, v) => Condition.attribute(f).regexp(v),
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcnkvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBb0I7QUFHeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQW1DO0lBQzFELE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUQsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsc0RBQXNEO0lBQ3RELDBCQUEwQjtJQUMxQixrQ0FBa0M7SUFDbEMsZUFBZTtJQUNmLG1EQUFtRDtJQUNuRCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakQsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0NBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25kaXRpb24gfSBmcm9tIFwiLi9Db25kaXRpb25cIjtcbmltcG9ydCB7IE9wZXJhdG9yUGFyc2VyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIE1hcCBvZiBzdXBwb3J0ZWQgb3BlcmF0b3JzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgcGFyc2VyIGZ1bmN0aW9ucy5cbiAqXG4gKiBAc3VtbWFyeVxuICogVGhlIGBPcGVyYXRvcnNNYXBgIGRlZmluZXMgYSBjb2xsZWN0aW9uIG9mIG9wZXJhdG9yIG5hbWVzIGFzIGtleXNcbiAqIChzdWNoIGFzIGBFcXVhbHNgLCBgTGVzc1RoYW5gLCBgQmV0d2VlbmAsIGV0Yy4pLCBlYWNoIG1hcHBlZCB0byBhXG4gKiBmdW5jdGlvbiB0aGF0IGNvbnN0cnVjdHMgYSBgQ29uZGl0aW9uYCBvYmplY3QgZm9yIHRoYXQgb3BlcmF0b3IuXG4gKiBUaGVzZSBmdW5jdGlvbnMgdHJhbnNsYXRlIHF1ZXJ5IGNsYXVzZXMgaW50byBjb25jcmV0ZSBjb25kaXRpb25cbiAqIGJ1aWxkZXJzLCBlbmFibGluZyBkeW5hbWljIHF1ZXJ5IGNvbnN0cnVjdGlvbiBmcm9tIG1ldGhvZCBuYW1lcy5cbiAqXG4gKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgZmllbGQgdmFsdWVzIHVzZWQgaW4gY29uZGl0aW9ucy5cbiAqXG4gKiBAcGFyYW0gZiB7c3RyaW5nfSAtIFRoZSBmaWVsZCBuYW1lIHRoZSBjb25kaXRpb24gYXBwbGllcyB0by5cbiAqIEBwYXJhbSB2MSB7YW55fSAtIFRoZSB2YWx1ZSB0byBjb21wYXJlIHRoZSBmaWVsZCBhZ2FpbnN0IG9yIHRoZSBsb3dlciBib3VuZCB2YWx1ZSBmb3IgcmFuZ2UtYmFzZWQgb3BlcmF0b3JzLlxuICogQHBhcmFtIHYyIHthbnl9IC0gVGhlIHVwcGVyIGJvdW5kIHZhbHVlIGZvciByYW5nZS1iYXNlZCBvcGVyYXRvcnMuXG4gKlxuICogQHJldHVybiB7Q29uZGl0aW9uPGFueT59IEEgY29uZGl0aW9uIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIG9wZXJhdG9yIGFwcGxpZWQgdG8gdGhlIGZpZWxkLlxuICpcbiAqIEBmdW5jdGlvbiBPcGVyYXRvcnNNYXBcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudCBhcyBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgTWFwIGFzIE9wZXJhdG9yc01hcFxuICogICBwYXJ0aWNpcGFudCBQYXJzZXIgYXMgT3BlcmF0b3JQYXJzZXJcbiAqICAgcGFydGljaXBhbnQgQ29uZCBhcyBDb25kaXRpb25cbiAqXG4gKiAgIENsaWVudC0+Pk1hcDogUmVxdWVzdCBvcGVyYXRvciBwYXJzZXIgKFwiQmV0d2VlblwiLCBmaWVsZCwgdjEsIHYyKVxuICogICBNYXAtPj5QYXJzZXI6IENhbGwgY29ycmVzcG9uZGluZyBvcGVyYXRvciBmdW5jdGlvblxuICogICBQYXJzZXItPj5Db25kOiBDb25kaXRpb24uYXR0cmlidXRlKGZpZWxkKVxuICogICBDb25kLS0+PlBhcnNlcjogQ29uZGl0aW9uIGluc3RhbmNlXG4gKiAgIFBhcnNlci0+PkNvbmQ6IEFwcGx5IGd0ZSh2MSlcbiAqICAgUGFyc2VyLT4+Q29uZDogQXBwbHkgYW5kKGx0ZSh2MikpXG4gKiAgIFBhcnNlci0tPj5DbGllbnQ6IFJldHVybiBidWlsdCBDb25kaXRpb25cbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnF1ZXJ5XG4gKi9cbmV4cG9ydCBjb25zdCBPcGVyYXRvcnNNYXA6IFJlY29yZDxzdHJpbmcsIE9wZXJhdG9yUGFyc2VyPiA9IHtcbiAgRXF1YWxzOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkuZXEodiksXG4gIERpZmY6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5kaWYodiksXG4gIExlc3NUaGFuOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkubHQodiksXG4gIExlc3NUaGFuRXF1YWw6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5sdGUodiksXG4gIEdyZWF0ZXJUaGFuOiAoZiwgdikgPT4gQ29uZGl0aW9uLmF0dHJpYnV0ZShmIGFzIGFueSkuZ3QodiksXG4gIEdyZWF0ZXJUaGFuRXF1YWw6IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5ndGUodiksXG4gIC8vIEJldHdlZW4gZGVwcmVjYXRlZCBkdWUgdG8gR3JlYXRlclRoYW4vTGVzc1RoYW5FcXVhbFxuICAvLyBCZXR3ZWVuOiAoZiwgdjEsIHYyKSA9PlxuICAvLyAgIENvbmRpdGlvbi5hdHRyaWJ1dGUoZiBhcyBhbnkpXG4gIC8vICAgICAuZ3RlKHYxKVxuICAvLyAgICAgLmFuZChDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5sdGUodjIpKSxcbiAgSW46IChmLCB2KSA9PiBDb25kaXRpb24uYXR0cmlidXRlKGYgYXMgYW55KS5pbih2KSxcbiAgTWF0Y2hlczogKGYsIHYpID0+IENvbmRpdGlvbi5hdHRyaWJ1dGUoZiBhcyBhbnkpLnJlZ2V4cCh2KSxcbn07XG4iXX0=
|
|
@@ -683,4 +683,4 @@ export class RamAdapter extends Adapter {
|
|
|
683
683
|
}
|
|
684
684
|
Adapter.setCurrent(RamFlavour);
|
|
685
685
|
RamAdapter.decoration();
|
|
686
|
-
//# sourceMappingURL=RamAdapter.js.map
|
|
686
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtQWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yYW0vUmFtQWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsWUFBWSxFQUFFLDBCQUF1QjtBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLDRCQUFpQjtBQUd0QyxPQUFPLEVBQ0wsT0FBTyxFQUVQLGVBQWUsRUFFZixRQUFRLEdBQ1Qsa0NBQXVCO0FBQ3hCLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsYUFBYSxFQUNiLE1BQU0sRUFDTixhQUFhLEVBQ2IsYUFBYSxFQUNiLFFBQVEsRUFDUixjQUFjLEdBR2YsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsc0JBQW1CO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsdUJBQW9CO0FBRXpDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsMEJBQXVCO0FBRzlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQ0c7QUFDSCxNQUFNLE9BQU8sVUFBVyxTQUFRLE9BSy9CO0lBQ0MsWUFDRSxPQUFrQjtRQUNoQixJQUFJLEVBQUUsSUFBSSxTQUFTLEVBQUU7S0FDZixFQUNSLEtBQWM7UUFFZCxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQWtEekIsWUFBTyxHQUdYLEVBQUUsQ0FBQztRQXBETCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUMzQyxDQUFD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QkFBaUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBYTtRQUNyQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2hDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUTtZQUFFLE9BQU8sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hFLElBQUksT0FBTyxRQUFRLEtBQUssVUFBVSxJQUFJLFFBQVEsQ0FBQyxJQUFJO1lBQ2pELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sYUFBYSxDQUFDLElBQWE7UUFDakMsT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxRQUFRLENBQUM7SUFDaEQsQ0FBQztJQUVPLGNBQWMsQ0FDcEIsS0FBVSxFQUNWLEtBQWEsRUFDYixPQUFlO1FBRWYsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDNUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsTUFBTSxJQUFJLFVBQVUsQ0FDbEIsR0FBRyxPQUFPLFFBQVEsS0FBSyxzQ0FBc0MsT0FBTyxLQUFLLEVBQUUsQ0FDNUUsQ0FBQztJQUNKLENBQUM7SUFFa0IsU0FBUztRQUMxQixPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMvQixVQUFVLENBQUMsVUFBVSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBSYW1Db25maWcsXG4gIFJhbUNvbnRleHQsXG4gIFJhbUZsYWdzLFxuICBSYW1TdG9yYWdlLFxuICBSYXdSYW1RdWVyeSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IFJhbVN0YXRlbWVudCB9IGZyb20gXCIuL1JhbVN0YXRlbWVudFwiO1xuaW1wb3J0IHsgUXVlcnlFcnJvciB9IGZyb20gXCIuLi9xdWVyeVwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9yZXBvc2l0b3J5L1JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IERpc3BhdGNoIH0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlL0Rpc3BhdGNoXCI7XG5pbXBvcnQge1xuICBBZGFwdGVyLFxuICBBZGFwdGVyRmxhZ3MsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUmF3UmVzdWx0LFxuICBTZXF1ZW5jZSxcbn0gZnJvbSBcIi4uL3BlcnNpc3RlbmNlXCI7XG5pbXBvcnQgeyBMb2NrLCBNdWx0aUxvY2sgfSBmcm9tIFwiQGRlY2FmLXRzL3RyYW5zYWN0aW9uYWwtZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgaGFzaE9iaiwgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQge1xuICBCYXNlRXJyb3IsXG4gIENvbmZsaWN0RXJyb3IsXG4gIERCS2V5cyxcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgb25DcmVhdGUsXG4gIG9uQ3JlYXRlVXBkYXRlLFxuICBPcGVyYXRpb25LZXlzLFxuICBQcmltYXJ5S2V5VHlwZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBjcmVhdGVkQnlPblJhbUNyZWF0ZVVwZGF0ZSB9IGZyb20gXCIuL2hhbmRsZXJzXCI7XG5pbXBvcnQgeyBSYW1GbGF2b3VyIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBEZWNvcmF0aW9uLCBNZXRhZGF0YSwgcHJvcE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyBSYW1QYWdpbmF0b3IgfSBmcm9tIFwiLi9SYW1QYWdpbmF0b3JcIjtcbmltcG9ydCB7IENvbnRleHR1YWxBcmdzIH0gZnJvbSBcIi4uL3V0aWxzL0NvbnRleHR1YWxMb2dnZWRDbGFzc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbi1tZW1vcnkgYWRhcHRlciBmb3IgZGF0YSBwZXJzaXN0ZW5jZVxuICogQHN1bW1hcnkgVGhlIFJhbUFkYXB0ZXIgcHJvdmlkZXMgYW4gaW4tbWVtb3J5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBwZXJzaXN0ZW5jZSBsYXllci5cbiAqIEl0IHN0b3JlcyBkYXRhIGluIEphdmFTY3JpcHQgTWFwcyBhbmQgcHJvdmlkZXMgQ1JVRCBvcGVyYXRpb25zIGFuZCBxdWVyeSBjYXBhYmlsaXRpZXMuXG4gKiBUaGlzIGFkYXB0ZXIgaXMgdXNlZnVsIGZvciB0ZXN0aW5nLCBwcm90b3R5cGluZywgYW5kIGFwcGxpY2F0aW9ucyB0aGF0IGRvbid0IHJlcXVpcmVcbiAqIHBlcnNpc3RlbnQgc3RvcmFnZSBhY3Jvc3MgYXBwbGljYXRpb24gcmVzdGFydHMuXG4gKiBAY2xhc3MgUmFtQWRhcHRlclxuICogQGNhdGVnb3J5IFJhbVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIG5ldyBSQU0gYWRhcHRlclxuICogY29uc3QgYWRhcHRlciA9IG5ldyBSYW1BZGFwdGVyKCdteVJhbUFkYXB0ZXInKTtcbiAqXG4gKiAvLyBDcmVhdGUgYSByZXBvc2l0b3J5IGZvciBhIG1vZGVsXG4gKiBjb25zdCB1c2VyUmVwbyA9IG5ldyAoYWRhcHRlci5yZXBvc2l0b3J5PFVzZXI+KCkpKFVzZXIsIGFkYXB0ZXIpO1xuICpcbiAqIC8vIFBlcmZvcm0gQ1JVRCBvcGVyYXRpb25zXG4gKiBjb25zdCB1c2VyID0gbmV3IFVzZXIoeyBuYW1lOiAnSm9obicsIGVtYWlsOiAnam9obkBleGFtcGxlLmNvbScgfSk7XG4gKiBhd2FpdCB1c2VyUmVwby5jcmVhdGUodXNlcik7XG4gKiBjb25zdCByZXRyaWV2ZWRVc2VyID0gYXdhaXQgdXNlclJlcG8uZmluZEJ5SWQodXNlci5pZCk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgUmFtQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBTdG9yYWdlIGFzIEluLU1lbW9yeSBTdG9yYWdlXG4gKlxuICogICBDbGllbnQtPj5SZXBvc2l0b3J5OiBjcmVhdGUobW9kZWwpXG4gKiAgIFJlcG9zaXRvcnktPj5SYW1BZGFwdGVyOiBjcmVhdGUodGFibGVOYW1lLCBpZCwgbW9kZWwpXG4gKiAgIFJhbUFkYXB0ZXItPj5SYW1BZGFwdGVyOiBsb2NrLmFjcXVpcmUoKVxuICogICBSYW1BZGFwdGVyLT4+U3RvcmFnZTogc2V0KGlkLCBtb2RlbClcbiAqICAgUmFtQWRhcHRlci0+PlJhbUFkYXB0ZXI6IGxvY2sucmVsZWFzZSgpXG4gKiAgIFJhbUFkYXB0ZXItLT4+UmVwb3NpdG9yeTogbW9kZWxcbiAqICAgUmVwb3NpdG9yeS0tPj5DbGllbnQ6IG1vZGVsXG4gKlxuICogICBDbGllbnQtPj5SZXBvc2l0b3J5OiBmaW5kQnlJZChpZClcbiAqICAgUmVwb3NpdG9yeS0+PlJhbUFkYXB0ZXI6IHJlYWQodGFibGVOYW1lLCBpZClcbiAqICAgUmFtQWRhcHRlci0+PlN0b3JhZ2U6IGdldChpZClcbiAqICAgU3RvcmFnZS0tPj5SYW1BZGFwdGVyOiBtb2RlbFxuICogICBSYW1BZGFwdGVyLS0+PlJlcG9zaXRvcnk6IG1vZGVsXG4gKiAgIFJlcG9zaXRvcnktLT4+Q2xpZW50OiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgUmFtQWRhcHRlciBleHRlbmRzIEFkYXB0ZXI8XG4gIFJhbUNvbmZpZyxcbiAgUmFtU3RvcmFnZSxcbiAgUmF3UmFtUXVlcnksXG4gIFJhbUNvbnRleHRcbj4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBjb25mOiBSYW1Db25maWcgPSB7XG4gICAgICBsb2NrOiBuZXcgTXVsdGlMb2NrKCksXG4gICAgfSBhcyBhbnksXG4gICAgYWxpYXM/OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoY29uZiwgUmFtRmxhdm91ciwgYWxpYXMpO1xuICAgIHRoaXMubG9jayA9IGNvbmYubG9jayB8fCBuZXcgTXVsdGlMb2NrKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIHJlcG9zaXRvcnkgY29uc3RydWN0b3IgZm9yIGEgbW9kZWxcbiAgICogQHN1bW1hcnkgUmV0dXJucyBhIGNvbnN0cnVjdG9yIGZvciBjcmVhdGluZyByZXBvc2l0b3JpZXMgdGhhdCB3b3JrIHdpdGggdGhlIHNwZWNpZmllZCBtb2RlbCB0eXBlLlxuICAgKiBUaGlzIG1ldGhvZCBvdmVycmlkZXMgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gdG8gcHJvdmlkZSBSQU0tc3BlY2lmaWMgcmVwb3NpdG9yeSBmdW5jdGlvbmFsaXR5LlxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIGZvciB0aGUgcmVwb3NpdG9yeVxuICAgKiBAcmV0dXJuIHtDb25zdHJ1Y3RvcjxSYW1SZXBvc2l0b3J5PE0+Pn0gQSBjb25zdHJ1Y3RvciBmb3IgY3JlYXRpbmcgUkFNIHJlcG9zaXRvcmllc1xuICAgKi9cbiAgb3ZlcnJpZGUgcmVwb3NpdG9yeTxcbiAgICBSIGV4dGVuZHMgUmVwb3NpdG9yeTxhbnksIEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pj4sXG4gID4oKTogQ29uc3RydWN0b3I8Uj4ge1xuICAgIHJldHVybiBzdXBlci5yZXBvc2l0b3J5PFI+KCkgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcjxSPjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBvcGVyYXRpb24gZmxhZ3Mgd2l0aCBVVUlEXG4gICAqIEBzdW1tYXJ5IEV4dGVuZHMgdGhlIGJhc2UgZmxhZ3Mgd2l0aCBhIFVVSUQgZm9yIHVzZXIgaWRlbnRpZmljYXRpb24uXG4gICAqIFRoaXMgbWV0aG9kIGVuc3VyZXMgdGhhdCBhbGwgb3BlcmF0aW9ucyBoYXZlIGEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRyYWNraW5nIHB1cnBvc2VzLlxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIGZvciB0aGUgb3BlcmF0aW9uXG4gICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5c30gb3BlcmF0aW9uIC0gVGhlIHR5cGUgb2Ygb3BlcmF0aW9uIGJlaW5nIHBlcmZvcm1lZFxuICAgKiBAcGFyYW0ge0NvbnN0cnVjdG9yPE0+fSBtb2RlbCAtIFRoZSBtb2RlbCBjb25zdHJ1Y3RvclxuICAgKiBAcGFyYW0ge1BhcnRpYWw8UmFtRmxhZ3M+fSBmbGFncyAtIFBhcnRpYWwgZmxhZ3MgdG8gYmUgZXh0ZW5kZWRcbiAgICogQHJldHVybiB7UHJvbWlzZTxSYW1GbGFncz59IENvbXBsZXRlIGZsYWdzIHdpdGggVVVJRFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgZmxhZ3M8TSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+PihcbiAgICBvcGVyYXRpb246IE9wZXJhdGlvbktleXMsXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPE0+LFxuICAgIGZsYWdzOiBQYXJ0aWFsPFJhbUZsYWdzPlxuICApOiBQcm9taXNlPFJhbUZsYWdzPiB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICBhd2FpdCBzdXBlci5mbGFncyhcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBtb2RlbCxcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBVVUlEOiBmbGFncy5VVUlEIHx8IHRoaXMuY29uZmlnLnVzZXIgfHwgXCJcIiArIERhdGUubm93KCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmbGFnc1xuICAgICAgICApXG4gICAgICApXG4gICAgKSBhcyBSYW1GbGFncztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBEaXNwYXRjaCgpOiBEaXNwYXRjaDxSYW1BZGFwdGVyPiB7XG4gICAgcmV0dXJuIHN1cGVyLkRpc3BhdGNoKCkgYXMgRGlzcGF0Y2g8UmFtQWRhcHRlcj47XG4gIH1cblxuICBwcml2YXRlIGluZGV4ZXM6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgUmVjb3JkPHN0cmluZyB8IG51bWJlciwgUmVjb3JkPHN0cmluZywgYW55Pj5cbiAgPiA9IHt9O1xuXG4gIHByaXZhdGUgbG9jazogTG9jaztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluZGV4ZXMgbW9kZWxzIGluIHRoZSBSQU0gYWRhcHRlclxuICAgKiBAc3VtbWFyeSBBIG5vLW9wIGluZGV4aW5nIG1ldGhvZCBmb3IgdGhlIFJBTSBhZGFwdGVyLlxuICAgKiBTaW5jZSBSQU0gYWRhcHRlciBkb2Vzbid0IHJlcXVpcmUgZXhwbGljaXQgaW5kZXhpbmcsIHRoaXMgbWV0aG9kIHNpbXBseSByZXNvbHZlcyBpbW1lZGlhdGVseS5cbiAgICogQHBhcmFtIG1vZGVscyAtIE1vZGVscyB0byBiZSBpbmRleGVkICh1bnVzZWQpXG4gICAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbmRleGluZyBpcyBjb21wbGV0ZVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBhc3luYyBpbmRleCguLi5tb2RlbHM6IFJlY29yZDxzdHJpbmcsIGFueT5bXSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmVwYXJlcyBhIG1vZGVsIGZvciBzdG9yYWdlXG4gICAqIEBzdW1tYXJ5IENvbnZlcnRzIGEgbW9kZWwgaW5zdGFuY2UgdG8gYSBmb3JtYXQgc3VpdGFibGUgZm9yIHN0b3JhZ2UgaW4gdGhlIFJBTSBhZGFwdGVyLlxuICAgKiBUaGlzIG1ldGhvZCBleHRyYWN0cyB0aGUgcHJpbWFyeSBrZXkgYW5kIGNyZWF0ZXMgYSByZWNvcmQgd2l0aG91dCB0aGUgcHJpbWFyeSBrZXkgZmllbGQuXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGUgYmVpbmcgcHJlcGFyZWRcbiAgICogQHBhcmFtIHtNfSBtb2RlbCAtIFRoZSBtb2RlbCBpbnN0YW5jZSB0byBwcmVwYXJlXG4gICAqIEBwYXJhbSBwayAtIFRoZSBwcmltYXJ5IGtleSBwcm9wZXJ0eSBuYW1lXG4gICAqIEByZXR1cm4gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlY29yZCBhbmQgSURcbiAgICovXG4gIG92ZXJyaWRlIHByZXBhcmU8TSBleHRlbmRzIE1vZGVsPihcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBbLi4uYW55W10sIFJhbUNvbnRleHRdXG4gICk6IHtcbiAgICByZWNvcmQ6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgaWQ6IHN0cmluZztcbiAgICB0cmFuc2llbnQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB9IHtcbiAgICBjb25zdCBjdHggPSBhcmdzLnBvcCgpO1xuICAgIGNvbnN0IHByZXBhcmVkID0gc3VwZXIucHJlcGFyZShtb2RlbCwgLi4uYXJncywgY3R4KTtcbiAgICByZXR1cm4gcHJlcGFyZWQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENvbnZlcnRzIGEgc3RvcmVkIHJlY29yZCBiYWNrIHRvIGEgbW9kZWwgaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgUmVjb25zdHJ1Y3RzIGEgbW9kZWwgaW5zdGFuY2UgZnJvbSBhIHN0b3JlZCByZWNvcmQgYnkgYWRkaW5nIGJhY2sgdGhlIHByaW1hcnkga2V5LlxuICAgKiBUaGlzIG1ldGhvZCBpcyB0aGUgaW52ZXJzZSBvZiB0aGUgcHJlcGFyZSBtZXRob2QuXG4gICAqIEB0ZW1wbGF0ZSBNIC0gVGhlIG1vZGVsIHR5cGUgdG8gcmV2ZXJ0IHRvXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gb2JqIC0gVGhlIHN0b3JlZCByZWNvcmRcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gY2xhenogLSBUaGUgbW9kZWwgY2xhc3Mgb3IgbmFtZVxuICAgKiBAcGFyYW0ge1ByaW1hcnlLZXlUeXBlfSBpZCAtIFRoZSBwcmltYXJ5IGtleSB2YWx1ZVxuICAgKiBAcmV0dXJuIHtNfSBUaGUgcmVjb25zdHJ1Y3RlZCBtb2RlbCBpbnN0YW5jZVxuICAgKi9cbiAgb3ZlcnJpZGUgcmV2ZXJ0PE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgdHJhbnNpZW50PzogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBbLi4uYW55W10sIFJhbUNvbnRleHRdXG4gICk6IE0ge1xuICAgIGNvbnN0IHJlcyA9IHN1cGVyLnJldmVydChvYmosIGNsYXp6LCBpZCwgdHJhbnNpZW50LCAuLi5hcmdzKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IHJlY29yZCBpbiB0aGUgaW4tbWVtb3J5IHN0b3JhZ2VcbiAgICogQHN1bW1hcnkgU3RvcmVzIGEgbmV3IHJlY29yZCBpbiB0aGUgc3BlY2lmaWVkIHRhYmxlIHdpdGggdGhlIGdpdmVuIElELlxuICAgKiBUaGlzIG1ldGhvZCBhY3F1aXJlcyBhIGxvY2sgdG8gZW5zdXJlIHRocmVhZCBzYWZldHksIGNyZWF0ZXMgdGhlIHRhYmxlIGlmIGl0IGRvZXNuJ3QgZXhpc3QsXG4gICAqIGNoZWNrcyBmb3IgY29uZmxpY3RzLCBhbmQgc3RvcmVzIHRoZSBtb2RlbC5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGNsYXp6IC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIHN0b3JlIHRoZSByZWNvcmQgaW5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcmVjb3JkXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgYW55Pn0gbW9kZWwgLSBUaGUgcmVjb3JkIGRhdGEgdG8gc3RvcmVcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHN0b3JlZCByZWNvcmRcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAqICAgcGFydGljaXBhbnQgUmFtQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IFN0b3JhZ2UgYXMgSW4tTWVtb3J5IFN0b3JhZ2VcbiAgICpcbiAgICogICBDYWxsZXItPj5SYW1BZGFwdGVyOiBjcmVhdGUodGFibGVOYW1lLCBpZCwgbW9kZWwpXG4gICAqICAgUmFtQWRhcHRlci0+PlJhbUFkYXB0ZXI6IGxvY2suYWNxdWlyZSgpXG4gICAqICAgUmFtQWRhcHRlci0+PlN0b3JhZ2U6IGhhcyh0YWJsZU5hbWUpXG4gICAqICAgYWx0IFRhYmxlIGRvZXNuJ3QgZXhpc3RcbiAgICogICAgIFJhbUFkYXB0ZXItPj5TdG9yYWdlOiBzZXQodGFibGVOYW1lLCBuZXcgTWFwKCkpXG4gICAqICAgZW5kXG4gICAqICAgUmFtQWRhcHRlci0+PlN0b3JhZ2U6IGhhcyhpZClcbiAgICogICBhbHQgUmVjb3JkIGV4aXN0c1xuICAgKiAgICAgUmFtQWRhcHRlci0tPj5DYWxsZXI6IHRocm93IENvbmZsaWN0RXJyb3JcbiAgICogICBlbmRcbiAgICogICBSYW1BZGFwdGVyLT4+U3RvcmFnZTogc2V0KGlkLCBtb2RlbClcbiAgICogICBSYW1BZGFwdGVyLT4+UmFtQWRhcHRlcjogbG9jay5yZWxlYXNlKClcbiAgICogICBSYW1BZGFwdGVyLS0+PkNhbGxlcjogbW9kZWxcbiAgICovXG4gIGFzeW5jIGNyZWF0ZTxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgbW9kZWw6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8UmFtQ29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlKTtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGxvZy5kZWJ1ZyhgY3JlYXRpbmcgcmVjb3JkIGluIHRhYmxlICR7dGFibGVOYW1lfSB3aXRoIGlkICR7aWR9YCk7XG4gICAgYXdhaXQgdGhpcy5sb2NrLmFjcXVpcmUodGFibGVOYW1lKTtcbiAgICBpZiAoIXRoaXMuY2xpZW50Lmhhcyh0YWJsZU5hbWUpKSB0aGlzLmNsaWVudC5zZXQodGFibGVOYW1lLCBuZXcgTWFwKCkpO1xuICAgIGlmIChcbiAgICAgIHRoaXMuY2xpZW50LmdldCh0YWJsZU5hbWUpICYmXG4gICAgICB0aGlzLmNsaWVudC5nZXQodGFibGVOYW1lKT8uaGFzKGlkIGFzIGFueSlcbiAgICApIHtcbiAgICAgIHRoaXMubG9jay5yZWxlYXNlKHRhYmxlTmFtZSk7XG4gICAgICB0aHJvdyBuZXcgQ29uZmxpY3RFcnJvcihcbiAgICAgICAgYFJlY29yZCB3aXRoIGlkICR7aWR9IGFscmVhZHkgZXhpc3RzIGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jbGllbnQuZ2V0KHRhYmxlTmFtZSk/LnNldChpZCBhcyBhbnksIG1vZGVsKTtcbiAgICB0aGlzLmxvY2sucmVsZWFzZSh0YWJsZU5hbWUpO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgcmVjb3JkIGZyb20gaW4tbWVtb3J5IHN0b3JhZ2VcbiAgICogQHN1bW1hcnkgRmV0Y2hlcyBhIHJlY29yZCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgZnJvbSB0aGUgZ2l2ZW4gdGFibGUuXG4gICAqIFRoaXMgbWV0aG9kIGNoZWNrcyBpZiB0aGUgdGFibGUgYW5kIHJlY29yZCBleGlzdCBhbmQgdGhyb3dzIGFwcHJvcHJpYXRlIGVycm9ycyBpZiBub3QuXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0b3J9IGNsYXp6IC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHRvIHJldHJpZXZlIGZyb21cbiAgICogQHBhcmFtIHtQcmltYXJ5S2V5VHlwZX0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlY29yZCB0byByZXRyaWV2ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgcmV0cmlldmVkIHJlY29yZFxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAgICogICBwYXJ0aWNpcGFudCBSYW1BZGFwdGVyXG4gICAqICAgcGFydGljaXBhbnQgU3RvcmFnZSBhcyBJbi1NZW1vcnkgU3RvcmFnZVxuICAgKlxuICAgKiAgIENhbGxlci0+PlJhbUFkYXB0ZXI6IHJlYWQodGFibGVOYW1lLCBpZClcbiAgICogICBSYW1BZGFwdGVyLT4+U3RvcmFnZTogaGFzKHRhYmxlTmFtZSlcbiAgICogICBhbHQgVGFibGUgZG9lc24ndCBleGlzdFxuICAgKiAgICAgUmFtQWRhcHRlci0tPj5DYWxsZXI6IHRocm93IE5vdEZvdW5kRXJyb3JcbiAgICogICBlbmRcbiAgICogICBSYW1BZGFwdGVyLT4+U3RvcmFnZTogaGFzKGlkKVxuICAgKiAgIGFsdCBSZWNvcmQgZG9lc24ndCBleGlzdFxuICAgKiAgICAgUmFtQWRhcHRlci0tPj5DYWxsZXI6IHRocm93IE5vdEZvdW5kRXJyb3JcbiAgICogICBlbmRcbiAgICogICBSYW1BZGFwdGVyLT4+U3RvcmFnZTogZ2V0KGlkKVxuICAgKiAgIFN0b3JhZ2UtLT4+UmFtQWRhcHRlcjogcmVjb3JkXG4gICAqICAgUmFtQWRhcHRlci0tPj5DYWxsZXI6IHJlY29yZFxuICAgKi9cbiAgYXN5bmMgcmVhZDxNIGV4dGVuZHMgTW9kZWw+KFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPixcbiAgICBpZDogUHJpbWFyeUtleVR5cGUsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8UmFtQ29udGV4dD5cbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMucmVhZCk7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKGNsYXp6KTtcbiAgICBsb2cuZGVidWcoYHJlYWRpbmcgcmVjb3JkIGluIHRhYmxlICR7dGFibGVOYW1lfSB3aXRoIGlkICR7aWR9YCk7XG4gICAgaWYgKCF0aGlzLmNsaWVudC5oYXModGFibGVOYW1lKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUYWJsZSAke3RhYmxlTmFtZX0gbm90IGZvdW5kYCk7XG4gICAgaWYgKCF0aGlzLmNsaWVudC5nZXQodGFibGVOYW1lKT8uaGFzKGlkIGFzIGFueSkpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgUmVjb3JkIHdpdGggaWQgJHtpZH0gbm90IGZvdW5kIGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXQodGFibGVOYW1lKT8uZ2V0KGlkIGFzIGFueSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcmVjb3JkIGluIHRoZSBpbi1tZW1vcnkgc3RvcmFnZVxuICAgKiBAc3VtbWFyeSBVcGRhdGVzIGEgcmVjb3JkIHdpdGggdGhlIHNwZWNpZmllZCBJRCBpbiB0aGUgZ2l2ZW4gdGFibGUuXG4gICAqIFRoaXMgbWV0aG9kIGFjcXVpcmVzIGEgbG9jayB0byBlbnN1cmUgdGhyZWFkIHNhZmV0eSwgY2hlY2tzIGlmIHRoZSB0YWJsZSBhbmQgcmVjb3JkIGV4aXN0LFxuICAgKiBhbmQgdXBkYXRlcyB0aGUgcmVjb3JkIHdpdGggdGhlIG5ldyBkYXRhLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIGNvbnRhaW5pbmcgdGhlIHJlY29yZFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlY29yZCB0byB1cGRhdGVcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBtb2RlbCAtIFRoZSBuZXcgcmVjb3JkIGRhdGFcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHVwZGF0ZWQgcmVjb3JkXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICAgKiAgIHBhcnRpY2lwYW50IFJhbUFkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBTdG9yYWdlIGFzIEluLU1lbW9yeSBTdG9yYWdlXG4gICAqXG4gICAqICAgQ2FsbGVyLT4+UmFtQWRhcHRlcjogdXBkYXRlKHRhYmxlTmFtZSwgaWQsIG1vZGVsKVxuICAgKiAgIFJhbUFkYXB0ZXItPj5SYW1BZGFwdGVyOiBsb2NrLmFjcXVpcmUoKVxuICAgKiAgIFJhbUFkYXB0ZXItPj5TdG9yYWdlOiBoYXModGFibGVOYW1lKVxuICAgKiAgIGFsdCBUYWJsZSBkb2Vzbid0IGV4aXN0XG4gICAqICAgICBSYW1BZGFwdGVyLS0+PkNhbGxlcjogdGhyb3cgTm90Rm91bmRFcnJvclxuICAgKiAgIGVuZFxuICAgKiAgIFJhbUFkYXB0ZXItPj5TdG9yYWdlOiBoYXMoaWQpXG4gICAqICAgYWx0IFJlY29yZCBkb2Vzbid0IGV4aXN0XG4gICAqICAgICBSYW1BZGFwdGVyLS0+PkNhbGxlcjogdGhyb3cgTm90Rm91bmRFcnJvclxuICAgKiAgIGVuZFxuICAgKiAgIFJhbUFkYXB0ZXItPj5TdG9yYWdlOiBzZXQoaWQsIG1vZGVsKVxuICAgKiAgIFJhbUFkYXB0ZXItPj5SYW1BZGFwdGVyOiBsb2NrLnJlbGVhc2UoKVxuICAgKiAgIFJhbUFkYXB0ZXItLT4+Q2FsbGVyOiBtb2RlbFxuICAgKi9cbiAgYXN5bmMgdXBkYXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICBtb2RlbDogUmVjb3JkPHN0cmluZywgYW55PixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxSYW1Db250ZXh0PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGUpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLmRlYnVnKGB1cGRhdGluZyByZWNvcmQgaW4gdGFibGUgJHt0YWJsZU5hbWV9IHdpdGggaWQgJHtpZH1gKTtcblxuICAgIGF3YWl0IHRoaXMubG9jay5hY3F1aXJlKHRhYmxlTmFtZSk7XG4gICAgaWYgKCF0aGlzLmNsaWVudC5oYXModGFibGVOYW1lKSlcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKGBUYWJsZSAke3RhYmxlTmFtZX0gbm90IGZvdW5kYCk7XG4gICAgaWYgKCF0aGlzLmNsaWVudC5nZXQodGFibGVOYW1lKT8uaGFzKGlkIGFzIGFueSkpIHtcbiAgICAgIHRoaXMubG9jay5yZWxlYXNlKHRhYmxlTmFtZSk7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcbiAgICAgICAgYFJlY29yZCB3aXRoIGlkICR7aWR9IG5vdCBmb3VuZCBpbiB0YWJsZSAke3RhYmxlTmFtZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY2xpZW50LmdldCh0YWJsZU5hbWUpPy5zZXQoaWQgYXMgYW55LCBtb2RlbCk7XG4gICAgdGhpcy5sb2NrLnJlbGVhc2UodGFibGVOYW1lKTtcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIERlbGV0ZXMgYSByZWNvcmQgZnJvbSB0aGUgaW4tbWVtb3J5IHN0b3JhZ2VcbiAgICogQHN1bW1hcnkgUmVtb3ZlcyBhIHJlY29yZCB3aXRoIHRoZSBzcGVjaWZpZWQgSUQgZnJvbSB0aGUgZ2l2ZW4gdGFibGUuXG4gICAqIFRoaXMgbWV0aG9kIGFjcXVpcmVzIGEgbG9jayB0byBlbnN1cmUgdGhyZWFkIHNhZmV0eSwgY2hlY2tzIGlmIHRoZSB0YWJsZSBhbmQgcmVjb3JkIGV4aXN0LFxuICAgKiByZXRyaWV2ZXMgdGhlIHJlY29yZCBiZWZvcmUgZGVsZXRpb24sIGFuZCB0aGVuIHJlbW92ZXMgaXQgZnJvbSBzdG9yYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIGNvbnRhaW5pbmcgdGhlIHJlY29yZFxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlY29yZCB0byBkZWxldGVcbiAgICogQHJldHVybiB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGRlbGV0ZWQgcmVjb3JkXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICAgKiAgIHBhcnRpY2lwYW50IFJhbUFkYXB0ZXJcbiAgICogICBwYXJ0aWNpcGFudCBTdG9yYWdlIGFzIEluLU1lbW9yeSBTdG9yYWdlXG4gICAqXG4gICAqICAgQ2FsbGVyLT4+UmFtQWRhcHRlcjogZGVsZXRlKHRhYmxlTmFtZSwgaWQpXG4gICAqICAgUmFtQWRhcHRlci0+PlJhbUFkYXB0ZXI6IGxvY2suYWNxdWlyZSgpXG4gICAqICAgUmFtQWRhcHRlci0+PlN0b3JhZ2U6IGhhcyh0YWJsZU5hbWUpXG4gICAqICAgYWx0IFRhYmxlIGRvZXNuJ3QgZXhpc3RcbiAgICogICAgIFJhbUFkYXB0ZXItLT4+Q2FsbGVyOiB0aHJvdyBOb3RGb3VuZEVycm9yXG4gICAqICAgZW5kXG4gICAqICAgUmFtQWRhcHRlci0+PlN0b3JhZ2U6IGhhcyhpZClcbiAgICogICBhbHQgUmVjb3JkIGRvZXNuJ3QgZXhpc3RcbiAgICogICAgIFJhbUFkYXB0ZXItLT4+Q2FsbGVyOiB0aHJvdyBOb3RGb3VuZEVycm9yXG4gICAqICAgZW5kXG4gICAqICAgUmFtQWRhcHRlci0+PlN0b3JhZ2U6IGdldChpZClcbiAgICogICBTdG9yYWdlLS0+PlJhbUFkYXB0ZXI6IHJlY29yZFxuICAgKiAgIFJhbUFkYXB0ZXItPj5TdG9yYWdlOiBkZWxldGUoaWQpXG4gICAqICAgUmFtQWRhcHRlci0+PlJhbUFkYXB0ZXI6IGxvY2sucmVsZWFzZSgpXG4gICAqICAgUmFtQWRhcHRlci0tPj5DYWxsZXI6IHJlY29yZFxuICAgKi9cbiAgYXN5bmMgZGVsZXRlPE0gZXh0ZW5kcyBNb2RlbD4oXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+LFxuICAgIGlkOiBQcmltYXJ5S2V5VHlwZSxcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxSYW1Db250ZXh0PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5kZWxldGUpO1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShjbGF6eik7XG4gICAgbG9nLmRlYnVnKGBkZWxldGluZyByZWNvcmQgZnJvbSB0YWJsZSAke3RhYmxlTmFtZX0gd2l0aCBpZCAke2lkfWApO1xuXG4gICAgYXdhaXQgdGhpcy5sb2NrLmFjcXVpcmUodGFibGVOYW1lKTtcbiAgICBpZiAoIXRoaXMuY2xpZW50Lmhhcyh0YWJsZU5hbWUpKVxuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoYFRhYmxlICR7dGFibGVOYW1lfSBub3QgZm91bmRgKTtcbiAgICBpZiAoIXRoaXMuY2xpZW50LmdldCh0YWJsZU5hbWUpPy5oYXMoaWQgYXMgYW55KSkge1xuICAgICAgdGhpcy5sb2NrLnJlbGVhc2UodGFibGVOYW1lKTtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFxuICAgICAgICBgUmVjb3JkIHdpdGggaWQgJHtpZH0gbm90IGZvdW5kIGluIHRhYmxlICR7dGFibGVOYW1lfWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbmF0aXZlZCA9IHRoaXMuY2xpZW50LmdldCh0YWJsZU5hbWUpPy5nZXQoaWQgYXMgYW55KTtcbiAgICB0aGlzLmNsaWVudC5nZXQodGFibGVOYW1lKT8uZGVsZXRlKGlkIGFzIGFueSk7XG4gICAgdGhpcy5sb2NrLnJlbGVhc2UodGFibGVOYW1lKTtcbiAgICByZXR1cm4gbmF0aXZlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyBvciBjcmVhdGVzIGEgdGFibGUgaW4gdGhlIGluLW1lbW9yeSBzdG9yYWdlXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgTWFwIHJlcHJlc2VudGluZyBhIHRhYmxlIGZvciBhIGdpdmVuIG1vZGVsIGNsYXNzLlxuICAgKiBJZiB0aGUgdGFibGUgZG9lc24ndCBleGlzdCwgaXQgY3JlYXRlcyBhIG5ldyBvbmUgc28gY2FsbGVycyBjYW4gaW5zZXJ0IG9yXG4gICAqIHF1ZXJ5IGVudGl0aWVzIHdpdGhvdXQgbnVsbCByZWZlcmVuY2UgY2hlY2tzLlxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIGZvciB0aGUgdGFibGVcbiAgICogQHBhcmFtIHtDb25zdHJ1Y3RvcjxNPn0gZnJvbSAtIFRoZSBtb2RlbCBjbGFzc1xuICAgKiBAcmV0dXJuIHtNYXA8c3RyaW5nIHwgbnVtYmVyLCBhbnk+IHwgdW5kZWZpbmVkfSBUaGUgdGFibGUgTWFwIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgcHJvdGVjdGVkIHRhYmxlRm9yPE0gZXh0ZW5kcyBNb2RlbD4oZnJvbTogQ29uc3RydWN0b3I8TT4pIHtcbiAgICBjb25zdCB0YWJsZSA9IE1vZGVsLnRhYmxlTmFtZShmcm9tKTtcbiAgICBpZiAoIXRoaXMuY2xpZW50Lmhhcyh0YWJsZSkpIHRoaXMuY2xpZW50LnNldCh0YWJsZSwgbmV3IE1hcCgpKTtcbiAgICByZXR1cm4gdGhpcy5jbGllbnQuZ2V0KHRhYmxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXhlY3V0ZXMgYSByYXcgcXVlcnkgYWdhaW5zdCB0aGUgaW4tbWVtb3J5IHN0b3JhZ2VcbiAgICogQHN1bW1hcnkgUGVyZm9ybXMgYSBxdWVyeSBvcGVyYXRpb24gb24gdGhlIGluLW1lbW9yeSBkYXRhIHN0b3JlIHVzaW5nIHRoZSBwcm92aWRlZCBxdWVyeSBzcGVjaWZpY2F0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBzdXBwb3J0cyBmaWx0ZXJpbmcsIHNvcnRpbmcsIHBhZ2luYXRpb24sIGFuZCBmaWVsZCBzZWxlY3Rpb24uXG4gICAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHJldHVybiB0eXBlIG9mIHRoZSBxdWVyeVxuICAgKiBAcGFyYW0ge1Jhd1JhbVF1ZXJ5PGFueT59IHJhd0lucHV0IC0gVGhlIHF1ZXJ5IHNwZWNpZmljYXRpb25cbiAgICogQHJldHVybiB7UHJvbWlzZTxSPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHF1ZXJ5IHJlc3VsdHNcbiAgICogQG1lcm1haWRcbiAgICogc2VxdWVuY2VEaWFncmFtXG4gICAqICAgcGFydGljaXBhbnQgQ2FsbGVyXG4gICAqICAgcGFydGljaXBhbnQgUmFtQWRhcHRlclxuICAgKiAgIHBhcnRpY2lwYW50IFN0b3JhZ2UgYXMgSW4tTWVtb3J5IFN0b3JhZ2VcbiAgICpcbiAgICogICBDYWxsZXItPj5SYW1BZGFwdGVyOiByYXcocmF3SW5wdXQpXG4gICAqICAgUmFtQWRhcHRlci0+PlJhbUFkYXB0ZXI6IHRhYmxlRm9yKGZyb20pXG4gICAqICAgYWx0IFRhYmxlIGRvZXNuJ3QgZXhpc3RcbiAgICogICAgIFJhbUFkYXB0ZXItLT4+Q2FsbGVyOiB0aHJvdyBJbnRlcm5hbEVycm9yXG4gICAqICAgZW5kXG4gICAqICAgUmFtQWRhcHRlci0+PlJhbUFkYXB0ZXI6IGZpbmRQcmltYXJ5S2V5KG5ldyBmcm9tKCkpXG4gICAqICAgUmFtQWRhcHRlci0+PlN0b3JhZ2U6IGVudHJpZXMoKVxuICAgKiAgIFN0b3JhZ2UtLT4+UmFtQWRhcHRlcjogZW50cmllc1xuICAgKiAgIGxvb3AgRm9yIGVhY2ggZW50cnlcbiAgICogICAgIFJhbUFkYXB0ZXItPj5SYW1BZGFwdGVyOiByZXZlcnQociwgZnJvbSwgaWQsIHBrKVxuICAgKiAgIGVuZFxuICAgKiAgIGFsdCBXaGVyZSBjb25kaXRpb24gZXhpc3RzXG4gICAqICAgICBSYW1BZGFwdGVyLT4+UmFtQWRhcHRlcjogcmVzdWx0LmZpbHRlcih3aGVyZSlcbiAgICogICBlbmRcbiAgICogICBhbHQgU29ydCBjb25kaXRpb24gZXhpc3RzXG4gICAqICAgICBSYW1BZGFwdGVyLT4+UmFtQWRhcHRlcjogcmVzdWx0LnNvcnQoc29ydClcbiAgICogICBlbmRcbiAgICogICBhbHQgU2tpcCBzcGVjaWZpZWRcbiAgICogICAgIFJhbUFkYXB0ZXItPj5SYW1BZGFwdGVyOiByZXN1bHQuc2xpY2Uoc2tpcClcbiAgICogICBlbmRcbiAgICogICBhbHQgTGltaXQgc3BlY2lmaWVkXG4gICAqICAgICBSYW1BZGFwdGVyLT4+UmFtQWRhcHRlcjogcmVzdWx0LnNsaWNlKDAsIGxpbWl0KVxuICAgKiAgIGVuZFxuICAgKiAgIGFsdCBTZWxlY3QgZmllbGRzIHNwZWNpZmllZFxuICAgKiAgICAgbG9vcCBGb3IgZWFjaCByZXN1bHRcbiAgICogICAgICAgUmFtQWRhcHRlci0+PlJhbUFkYXB0ZXI6IEZpbHRlciB0byBzZWxlY3RlZCBmaWVsZHNcbiAgICogICAgIGVuZFxuICAgKiAgIGVuZFxuICAgKiAgIFJhbUFkYXB0ZXItLT4+Q2FsbGVyOiByZXN1bHRcbiAgICovXG4gIGFzeW5jIHJhdzxSLCBEIGV4dGVuZHMgYm9vbGVhbj4oXG4gICAgcmF3SW5wdXQ6IFJhd1JhbVF1ZXJ5PGFueT4sXG4gICAgZG9jc09ubHk6IEQgPSB0cnVlIGFzIEQsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8UmFtQ29udGV4dD5cbiAgKTogUHJvbWlzZTxSYXdSZXN1bHQ8UiwgRD4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJhdyk7XG4gICAgbG9nLmRlYnVnKGBwZXJmb3JtaW5nIHJhdyBxdWVyeTogJHtKU09OLnN0cmluZ2lmeShyYXdJbnB1dCl9YCk7XG5cbiAgICBjb25zdCB7XG4gICAgICB3aGVyZSxcbiAgICAgIHNvcnQsXG4gICAgICBsaW1pdCxcbiAgICAgIHNraXAsXG4gICAgICBmcm9tLFxuICAgICAgZ3JvdXBCeSxcbiAgICAgIGNvdW50OiBjb3VudEZpZWxkLFxuICAgICAgY291bnREaXN0aW5jdDogY291bnREaXN0aW5jdEZpZWxkLFxuICAgICAgbWluOiBtaW5GaWVsZCxcbiAgICAgIG1heDogbWF4RmllbGQsXG4gICAgICBzdW06IHN1bUZpZWxkLFxuICAgICAgYXZnOiBhdmdGaWVsZCxcbiAgICAgIGRpc3RpbmN0OiBkaXN0aW5jdEZpZWxkLFxuICAgIH0gPSByYXdJbnB1dDtcbiAgICBsZXQgeyBzZWxlY3QgfSA9IHJhd0lucHV0O1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLnRhYmxlRm9yKGZyb20pO1xuICAgIGlmICghY29sbGVjdGlvbilcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBUYWJsZSAke2Zyb219IG5vdCBmb3VuZCBpbiBSYW1BZGFwdGVyYCk7XG4gICAgY29uc3QgY2xhenogPSBmcm9tO1xuICAgIGNvbnN0IGlkID0gTW9kZWwucGsoZnJvbSk7XG4gICAgY29uc3QgcHJvcHMgPSBNZXRhZGF0YS5nZXQoZnJvbSwgTWV0YWRhdGEua2V5KERCS2V5cy5JRCwgaWQgYXMgc3RyaW5nKSk7XG5cbiAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IEFycmF5LmZyb20oY29sbGVjdGlvbi5lbnRyaWVzKCkpLm1hcCgoW3BrLCByXSkgPT5cbiAgICAgIHRoaXMucmV2ZXJ0KFxuICAgICAgICByLFxuICAgICAgICBmcm9tLFxuICAgICAgICBTZXF1ZW5jZS5wYXJzZVZhbHVlKHByb3BzLnR5cGUgYXMgYW55LCBwayBhcyBzdHJpbmcpIGFzIHN0cmluZyxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBjdHhcbiAgICAgIClcbiAgICApO1xuICAgIGlmIChzb3J0KSByZXN1bHQgPSByZXN1bHQuc29ydChzb3J0KTtcblxuICAgIHJlc3VsdCA9IHdoZXJlID8gcmVzdWx0LmZpbHRlcih3aGVyZSkgOiByZXN1bHQ7XG5cbiAgICAvLyBIYW5kbGUgYWdncmVnYXRlIG9wZXJhdGlvbnNcbiAgICBpZiAoJ2NvdW50JyBpbiByYXdJbnB1dCkge1xuICAgICAgLy8gQ291bnQgb3BlcmF0aW9uXG4gICAgICBpZiAoIWNvdW50RmllbGQpIHtcbiAgICAgICAgLy8gQ291bnQgYWxsIHJlY29yZHMgKENPVU5UKCopKVxuICAgICAgICByZXR1cm4gcmVzdWx0Lmxlbmd0aCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENvdW50IHNwZWNpZmljIGZpZWxkIChub24tbnVsbCB2YWx1ZXMpIChDT1VOVChmaWVsZCkpXG4gICAgICAgIGNvbnN0IGNvdW50ID0gcmVzdWx0LmZpbHRlcihyID0+IHJbY291bnRGaWVsZCBhcyBzdHJpbmddICE9PSB1bmRlZmluZWQgJiYgcltjb3VudEZpZWxkIGFzIHN0cmluZ10gIT09IG51bGwpLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGNvdW50IGFzIHVua25vd24gYXMgUmF3UmVzdWx0PFIsIEQ+O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb3VudERpc3RpbmN0RmllbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQoKTtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiByZXN1bHQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBpdGVtW2NvdW50RGlzdGluY3RGaWVsZCBhcyBzdHJpbmddO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgIHNlZW4uYWRkKEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBzZWVuLnNpemUgYXMgdW5rbm93biBhcyBSYXdSZXN1bHQ8UiwgRD47XG4gICAgfVxuXG4gICAgaWYgKG1pbkZpZWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZW5zdXJlRmllbGRUeXBlKFxuICAgICAgICBjbGF6eixcbiAgICAgICAgbWluRmllbGQgYXMgc3RyaW5nLFxuICAgICAgICBcIk1JTiBvcGVyYXRpb25cIixcbiAgICAgICAgKHR5cGUpID0+IHRoaXMuaXNOdW1lcmljVHlwZSh0eXBlKSB8fCB0eXBlID09PSBcImRhdGVcIixcbiAgICAgICAgXCJudW1lcmljIG9yIGRhdGVcIlxuICAgICAgKTtcbiAgICAgIC8vIE1pbiBvcGVyYXRpb25cbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHJlc3VsdC5tYXAociA9PiByW21pbkZpZWxkIGFzIHN0cmluZ10pLmZpbHRlcih2ID0+IHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsKTtcbiAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcblxuICAgICAgLy8gRmluZCBtaW5pbXVtIHZhbHVlIHByZXNlcnZpbmcgb3JpZ2luYWwgdHlwZVxuICAgICAgbGV0IG1pblZhbHVlID0gdmFsdWVzWzBdO1xuICAgICAgZm9yIChjb25zdCB2IG9mIHZhbHVlcykge1xuICAgICAgICBjb25zdCBjb21wYXJpc29uID0gdiBpbnN0YW5jZW9mIERhdGUgPyB2LmdldFRpbWUoKSA6ICh0eXBlb2YgdiA9PT0gJ2JpZ2ludCcgPyBOdW1iZXIodikgOiBOdW1iZXIodikpO1xuICAgICAgICBjb25zdCBtaW5Db21wYXJpc29uID0gbWluVmFsdWUgaW5zdGFuY2VvZiBEYXRlID8gbWluVmFsdWUuZ2V0VGltZSgpIDogKHR5cGVvZiBtaW5WYWx1ZSA9PT0gJ2JpZ2ludCcgPyBOdW1iZXIobWluVmFsdWUpIDogTnVtYmVyKG1pblZhbHVlKSk7XG4gICAgICAgIGlmIChjb21wYXJpc29uIDwgbWluQ29tcGFyaXNvbikge1xuICAgICAgICAgIG1pblZhbHVlID0gdjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG1pblZhbHVlIGFzIHVua25vd24gYXMgUmF3UmVzdWx0PFIsIEQ+O1xuICAgIH1cblxuICAgIGlmIChtYXhGaWVsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmVuc3VyZUZpZWxkVHlwZShcbiAgICAgICAgY2xhenosXG4gICAgICAgIG1heEZpZWxkIGFzIHN0cmluZyxcbiAgICAgICAgXCJNQVggb3BlcmF0aW9uXCIsXG4gICAgICAgICh0eXBlKSA9PiB0aGlzLmlzTnVtZXJpY1R5cGUodHlwZSkgfHwgdHlwZSA9PT0gXCJkYXRlXCIsXG4gICAgICAgIFwibnVtZXJpYyBvciBkYXRlXCJcbiAgICAgICk7XG4gICAgICAvLyBNYXggb3BlcmF0aW9uXG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGwgYXMgdW5rbm93biBhcyBSYXdSZXN1bHQ8UiwgRD47XG4gICAgICBjb25zdCB2YWx1ZXMgPSByZXN1bHQubWFwKHIgPT4gclttYXhGaWVsZCBhcyBzdHJpbmddKS5maWx0ZXIodiA9PiB2ICE9PSB1bmRlZmluZWQgJiYgdiAhPT0gbnVsbCk7XG4gICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGwgYXMgdW5rbm93biBhcyBSYXdSZXN1bHQ8UiwgRD47XG5cbiAgICAgIC8vIEZpbmQgbWF4aW11bSB2YWx1ZSBwcmVzZXJ2aW5nIG9yaWdpbmFsIHR5cGVcbiAgICAgIGxldCBtYXhWYWx1ZSA9IHZhbHVlc1swXTtcbiAgICAgIGZvciAoY29uc3QgdiBvZiB2YWx1ZXMpIHtcbiAgICAgICAgY29uc3QgY29tcGFyaXNvbiA9IHYgaW5zdGFuY2VvZiBEYXRlID8gdi5nZXRUaW1lKCkgOiAodHlwZW9mIHYgPT09ICdiaWdpbnQnID8gTnVtYmVyKHYpIDogTnVtYmVyKHYpKTtcbiAgICAgICAgY29uc3QgbWF4Q29tcGFyaXNvbiA9IG1heFZhbHVlIGluc3RhbmNlb2YgRGF0ZSA/IG1heFZhbHVlLmdldFRpbWUoKSA6ICh0eXBlb2YgbWF4VmFsdWUgPT09ICdiaWdpbnQnID8gTnVtYmVyKG1heFZhbHVlKSA6IE51bWJlcihtYXhWYWx1ZSkpO1xuICAgICAgICBpZiAoY29tcGFyaXNvbiA+IG1heENvbXBhcmlzb24pIHtcbiAgICAgICAgICBtYXhWYWx1ZSA9IHY7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBtYXhWYWx1ZSBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICB9XG5cbiAgICBpZiAoc3VtRmllbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbnN1cmVGaWVsZFR5cGUoXG4gICAgICAgIGNsYXp6LFxuICAgICAgICBzdW1GaWVsZCBhcyBzdHJpbmcsXG4gICAgICAgIFwiU1VNIG9wZXJhdGlvblwiLFxuICAgICAgICAodHlwZSkgPT4gdGhpcy5pc051bWVyaWNUeXBlKHR5cGUpLFxuICAgICAgICBcIm51bWVyaWNcIlxuICAgICAgKTtcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHJlc3VsdFxuICAgICAgICAubWFwKChyKSA9PiByW3N1bUZpZWxkIGFzIHN0cmluZ10pXG4gICAgICAgIC5maWx0ZXIoKHYpID0+IHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsKTtcbiAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICAgIGNvbnN0IHN1bSA9IHZhbHVlcy5yZWR1Y2UoXG4gICAgICAgIChhY2MsIHYpID0+XG4gICAgICAgICAgYWNjICsgdGhpcy50b051bWVyaWNWYWx1ZSh2LCBzdW1GaWVsZCBhcyBzdHJpbmcsIFwiU1VNIG9wZXJhdGlvblwiKSxcbiAgICAgICAgMFxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdW0gYXMgdW5rbm93biBhcyBSYXdSZXN1bHQ8UiwgRD47XG4gICAgfVxuXG4gICAgaWYgKGF2Z0ZpZWxkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGZpZWxkVHlwZSA9IHRoaXMucmVzb2x2ZUZpZWxkVHlwZShjbGF6eiwgYXZnRmllbGQgYXMgc3RyaW5nKTtcbiAgICAgIGNvbnN0IGlzRGF0ZUZpZWxkID0gZmllbGRUeXBlID09PSBcImRhdGVcIjtcbiAgICAgIHRoaXMuZW5zdXJlRmllbGRUeXBlKFxuICAgICAgICBjbGF6eixcbiAgICAgICAgYXZnRmllbGQgYXMgc3RyaW5nLFxuICAgICAgICBcIkFWRyBvcGVyYXRpb25cIixcbiAgICAgICAgKHR5cGUpID0+IHRoaXMuaXNOdW1lcmljVHlwZSh0eXBlKSB8fCB0eXBlID09PSBcImRhdGVcIixcbiAgICAgICAgXCJudW1lcmljIG9yIGRhdGVcIlxuICAgICAgKTtcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IHJlc3VsdFxuICAgICAgICAubWFwKChyKSA9PiByW2F2Z0ZpZWxkIGFzIHN0cmluZ10pXG4gICAgICAgIC5maWx0ZXIoKHYpID0+IHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsKTtcbiAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSByZXR1cm4gbnVsbCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcblxuICAgICAgaWYgKGlzRGF0ZUZpZWxkKSB7XG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcHMgPSB2YWx1ZXMubWFwKCh2KSA9PlxuICAgICAgICAgIHYgaW5zdGFuY2VvZiBEYXRlID8gdi5nZXRUaW1lKCkgOiBuZXcgRGF0ZSh2KS5nZXRUaW1lKClcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYXZnVGltZXN0YW1wID1cbiAgICAgICAgICB0aW1lc3RhbXBzLnJlZHVjZSgoYWNjLCB0KSA9PiBhY2MgKyB0LCAwKSAvIHRpbWVzdGFtcHMubGVuZ3RoO1xuICAgICAgICByZXR1cm4gbmV3IERhdGUoYXZnVGltZXN0YW1wKSBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdG90YWwgPSB2YWx1ZXMucmVkdWNlKFxuICAgICAgICAoYWNjLCB2KSA9PlxuICAgICAgICAgIGFjYyArIHRoaXMudG9OdW1lcmljVmFsdWUodiwgYXZnRmllbGQgYXMgc3RyaW5nLCBcIkFWRyBvcGVyYXRpb25cIiksXG4gICAgICAgIDBcbiAgICAgICk7XG4gICAgICBjb25zdCBhdmVyYWdlID0gdG90YWwgLyB2YWx1ZXMubGVuZ3RoO1xuICAgICAgcmV0dXJuIGF2ZXJhZ2UgYXMgdW5rbm93biBhcyBSYXdSZXN1bHQ8UiwgRD47XG4gICAgfVxuXG4gICAgaWYgKGRpc3RpbmN0RmllbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gRGlzdGluY3Qgb3BlcmF0aW9uXG4gICAgICBjb25zdCBzZWVuID0gbmV3IFNldCgpO1xuICAgICAgY29uc3QgZGlzdGluY3RSZXN1bHRzOiBhbnlbXSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHJlc3VsdCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bZGlzdGluY3RGaWVsZCBhcyBzdHJpbmddO1xuICAgICAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgIGlmICghc2Vlbi5oYXMoa2V5KSkge1xuICAgICAgICAgIHNlZW4uYWRkKGtleSk7XG4gICAgICAgICAgZGlzdGluY3RSZXN1bHRzLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGlzdGluY3RSZXN1bHRzIGFzIHVua25vd24gYXMgUmF3UmVzdWx0PFIsIEQ+O1xuICAgIH1cblxuICAgIGxldCBjb3VudDogbnVtYmVyO1xuICAgIGxldCBvdXRwdXQ6IGFueVtdIHwgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBpZiAoZ3JvdXBCeSAmJiBncm91cEJ5Lmxlbmd0aCkge1xuICAgICAgY29uc3QgZ3JvdXBlZCA9IHRoaXMuZ3JvdXBSZWNvcmRzKHJlc3VsdCwgZ3JvdXBCeSBhcyAoa2V5b2YgTW9kZWwpW10pO1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGdyb3VwZWQpO1xuICAgICAgY291bnQgPSBrZXlzLmxlbmd0aDtcbiAgICAgIG91dHB1dCA9IHRoaXMuYXBwbHlHcm91cFBhZ2luYXRpb24oZ3JvdXBlZCwgc2tpcCwgbGltaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3VudCA9IHJlc3VsdC5sZW5ndGg7XG4gICAgICBsZXQgcGFnZWQgPSByZXN1bHQ7XG4gICAgICBpZiAoc2tpcCkgcGFnZWQgPSBwYWdlZC5zbGljZShza2lwKTtcbiAgICAgIGlmIChsaW1pdCkgcGFnZWQgPSBwYWdlZC5zbGljZSgwLCBsaW1pdCk7XG4gICAgICBvdXRwdXQgPSBwYWdlZDtcbiAgICB9XG5cbiAgICBpZiAoc2VsZWN0ICYmICEoZ3JvdXBCeSAmJiBncm91cEJ5Lmxlbmd0aCkpIHtcbiAgICAgIHNlbGVjdCA9IEFycmF5LmlzQXJyYXkoc2VsZWN0KSA/IHNlbGVjdCA6IFtzZWxlY3RdO1xuICAgICAgb3V0cHV0ID0gKG91dHB1dCBhcyBhbnlbXSkubWFwKChyb3cpID0+XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHJvdykucmVkdWNlKChhY2M6IFJlY29yZDxzdHJpbmcsIGFueT4sIFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICBpZiAoKHNlbGVjdCBhcyBzdHJpbmdbXSkuaW5jbHVkZXMoa2V5KSkgYWNjW2tleV0gPSB2YWw7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChkb2NzT25seSkgcmV0dXJuIG91dHB1dCBhcyB1bmtub3duIGFzIFJhd1Jlc3VsdDxSLCBEPjtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogb3V0cHV0LFxuICAgICAgY291bnQsXG4gICAgfSBhcyBSYXdSZXN1bHQ8UiwgRD47XG4gIH1cblxuICBwcml2YXRlIGdyb3VwUmVjb3JkcyhcbiAgICByZWNvcmRzOiBhbnlbXSxcbiAgICBzZWxlY3RvcnM6IChrZXlvZiBNb2RlbClbXVxuICApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBpZiAoIXNlbGVjdG9ycy5sZW5ndGgpIHJldHVybiByZWNvcmRzIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY29uc3QgW2N1cnJlbnQsIC4uLnJlc3RdID0gc2VsZWN0b3JzO1xuICAgIGNvbnN0IGdyb3VwZWQ6IFJlY29yZDxzdHJpbmcsIGFueVtdPiA9IHt9O1xuICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcbiAgICAgIGNvbnN0IGtleSA9IHRoaXMubm9ybWFsaXplR3JvdXBLZXkocmVjb3JkW2N1cnJlbnQgYXMgc3RyaW5nXSk7XG4gICAgICBpZiAoIWdyb3VwZWRba2V5XSkgZ3JvdXBlZFtrZXldID0gW107XG4gICAgICBncm91cGVkW2tleV0ucHVzaChyZWNvcmQpO1xuICAgIH1cbiAgICBpZiAoIXJlc3QubGVuZ3RoKSByZXR1cm4gZ3JvdXBlZDtcbiAgICBjb25zdCBuZXN0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlc10gb2YgT2JqZWN0LmVudHJpZXMoZ3JvdXBlZCkpIHtcbiAgICAgIG5lc3RlZFtrZXldID0gdGhpcy5ncm91cFJlY29yZHModmFsdWVzLCByZXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIG5lc3RlZDtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplR3JvdXBLZXkodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiBcInVuZGVmaW5lZFwiO1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIFwibnVsbFwiO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwic3ltYm9sXCIpIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUdyb3VwUGFnaW5hdGlvbihcbiAgICBncm91cGVkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHNraXA/OiBudW1iZXIsXG4gICAgbGltaXQ/OiBudW1iZXJcbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgaWYgKHR5cGVvZiBza2lwID09PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBsaW1pdCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgcmV0dXJuIGdyb3VwZWQ7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhncm91cGVkKTtcbiAgICBjb25zdCBzdGFydCA9IHNraXAgPz8gMDtcbiAgICBjb25zdCBlbmQgPSB0eXBlb2YgbGltaXQgPT09IFwidW5kZWZpbmVkXCIgPyB1bmRlZmluZWQgOiBzdGFydCArIGxpbWl0O1xuICAgIGNvbnN0IHBhZ2VkOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cy5zbGljZShzdGFydCwgZW5kKSkge1xuICAgICAgcGFnZWRba2V5XSA9IGdyb3VwZWRba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIHBhZ2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQYXJzZXMgYW5kIGNvbnZlcnRzIGVycm9ycyB0byBhcHByb3ByaWF0ZSB0eXBlc1xuICAgKiBAc3VtbWFyeSBFbnN1cmVzIHRoYXQgZXJyb3JzIGFyZSBvZiB0aGUgY29ycmVjdCB0eXBlIGZvciBjb25zaXN0ZW50IGVycm9yIGhhbmRsaW5nLlxuICAgKiBJZiB0aGUgZXJyb3IgaXMgYWxyZWFkeSBhIEJhc2VFcnJvciwgaXQncyByZXR1cm5lZCBhcyBpczsgb3RoZXJ3aXNlLCBpdCdzIHdyYXBwZWQgaW4gYW4gSW50ZXJuYWxFcnJvci5cbiAgICogQHRlbXBsYXRlIFYgLSBUaGUgZXhwZWN0ZWQgZXJyb3IgdHlwZSwgZXh0ZW5kaW5nIEJhc2VFcnJvclxuICAgKiBAcGFyYW0ge0Vycm9yfSBlcnIgLSBUaGUgZXJyb3IgdG8gcGFyc2VcbiAgICogQHJldHVybiB7Vn0gVGhlIHBhcnNlZCBlcnJvciBvZiB0aGUgZXhwZWN0ZWQgdHlwZVxuICAgKi9cbiAgcGFyc2VFcnJvcjxWIGV4dGVuZHMgQmFzZUVycm9yPihlcnI6IEVycm9yKTogViB7XG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEJhc2VFcnJvcikgcmV0dXJuIGVyciBhcyBWO1xuICAgIHJldHVybiBuZXcgSW50ZXJuYWxFcnJvcihlcnIpIGFzIFY7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgc3RhdGVtZW50IGJ1aWxkZXIgZm9yIHF1ZXJpZXNcbiAgICogQHN1bW1hcnkgRmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgbmV3IFJhbVN0YXRlbWVudCBpbnN0YW5jZSBmb3IgYnVpbGRpbmcgcXVlcmllcy5cbiAgICogVGhpcyBtZXRob2QgYWxsb3dzIGZvciBmbHVlbnQgcXVlcnkgY29uc3RydWN0aW9uIGFnYWluc3QgdGhlIFJBTSBhZGFwdGVyLlxuICAgKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIGZvciB0aGUgc3RhdGVtZW50XG4gICAqIEByZXR1cm4ge1JhbVN0YXRlbWVudDxNLCBhbnk+fSBBIG5ldyBzdGF0ZW1lbnQgYnVpbGRlciBpbnN0YW5jZVxuICAgKi9cbiAgU3RhdGVtZW50PE0gZXh0ZW5kcyBNb2RlbDxib29sZWFuPj4oXG4gICAgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+XG4gICk6IFJhbVN0YXRlbWVudDxNLCBhbnksIEFkYXB0ZXI8YW55LCBhbnksIFJhd1JhbVF1ZXJ5PE0+LCBSYW1Db250ZXh0Pj4ge1xuICAgIHJldHVybiBuZXcgUmFtU3RhdGVtZW50PFxuICAgICAgTSxcbiAgICAgIGFueSxcbiAgICAgIEFkYXB0ZXI8YW55LCBhbnksIFJhd1JhbVF1ZXJ5PE0+LCBSYW1Db250ZXh0PlxuICAgID4odGhpcyBhcyBhbnksIG92ZXJyaWRlcyk7XG4gIH1cblxuICBQYWdpbmF0b3I8TSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+PihcbiAgICBxdWVyeTogUmF3UmFtUXVlcnksXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIGNsYXp6OiBDb25zdHJ1Y3RvcjxNPlxuICApOiBSYW1QYWdpbmF0b3I8TT4ge1xuICAgIHJldHVybiBuZXcgUmFtUGFnaW5hdG9yKHRoaXMsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIG92ZXJyaWRlIGZvcihjb25maWc6IFBhcnRpYWw8UmFtQ29uZmlnPiwgLi4uYXJnczogYW55W10pOiB0eXBlb2YgdGhpcyB7XG4gICAgaWYgKCF0aGlzLnByb3hpZXMpIHRoaXMucHJveGllcyA9IHt9O1xuICAgIGNvbnN0IGtleSA9IGAke3RoaXMuYWxpYXN9IC0gJHtoYXNoT2JqKGNvbmZpZyl9YDtcbiAgICBpZiAoa2V5IGluIHRoaXMucHJveGllcykgcmV0dXJuIHRoaXMucHJveGllc1trZXldIGFzIHR5cGVvZiB0aGlzO1xuXG4gICAgY29uc3QgcHJveHkgPSBuZXcgUHJveHkodGhpcywge1xuICAgICAgZ2V0OiAodGFyZ2V0OiB0eXBlb2YgdGhpcywgcDogc3RyaW5nIHwgc3ltYm9sLCByZWNlaXZlcjogYW55KSA9PiB7XG4gICAgICAgIGlmIChwID09PSBcIl9jb25maWdcIikge1xuICAgICAgICAgIGNvbnN0IG9yaWdpbmFsQ29uZjogUmFtQ29uZmlnID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwLCByZWNlaXZlcik7XG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG9yaWdpbmFsQ29uZiwgY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQodGFyZ2V0LCBwLCByZWNlaXZlcik7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMucHJveGllc1trZXldID0gcHJveHk7XG4gICAgcmV0dXJuIHByb3h5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTZXRzIHVwIFJBTS1zcGVjaWZpYyBkZWNvcmF0aW9ucyBmb3IgbW9kZWwgcHJvcGVydGllc1xuICAgKiBAc3VtbWFyeSBDb25maWd1cmVzIGRlY29yYXRpb25zIGZvciBjcmVhdGVkQnkgYW5kIHVwZGF0ZWRCeSBmaWVsZHMgaW4gdGhlIFJBTSBhZGFwdGVyLlxuICAgKiBUaGlzIHN0YXRpYyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyBpbml0aWFsaXphdGlvbiB0byBzZXQgdXAgaGFuZGxlcnMgdGhhdCBhdXRvbWF0aWNhbGx5XG4gICAqIHBvcHVsYXRlIHRoZXNlIGZpZWxkcyB3aXRoIHRoZSBjdXJyZW50IHVzZXIncyBVVUlEIGR1cmluZyBjcmVhdGUgYW5kIHVwZGF0ZSBvcGVyYXRpb25zLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKiBAbWVybWFpZFxuICAgKiBzZXF1ZW5jZURpYWdyYW1cbiAgICogICBwYXJ0aWNpcGFudCBSYW1BZGFwdGVyXG4gICAqICAgcGFydGljaXBhbnQgRGVjb3JhdGlvblxuICAgKiAgIHBhcnRpY2lwYW50IFJlcG9zaXRvcnlcbiAgICpcbiAgICogICBSYW1BZGFwdGVyLT4+UmVwb3NpdG9yeToga2V5KFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZKVxuICAgKiAgIFJlcG9zaXRvcnktLT4+UmFtQWRhcHRlcjogY3JlYXRlZEJ5S2V5XG4gICAqICAgUmFtQWRhcHRlci0+PlJlcG9zaXRvcnk6IGtleShQZXJzaXN0ZW5jZUtleXMuVVBEQVRFRF9CWSlcbiAgICogICBSZXBvc2l0b3J5LS0+PlJhbUFkYXB0ZXI6IHVwZGF0ZWRCeUtleVxuICAgKlxuICAgKiAgIFJhbUFkYXB0ZXItPj5EZWNvcmF0aW9uOiBmbGF2b3VyZWRBcyhSYW1GbGF2b3VyKVxuICAgKiAgIERlY29yYXRpb24tLT4+UmFtQWRhcHRlcjogRGVjb3JhdG9yQnVpbGRlclxuICAgKiAgIFJhbUFkYXB0ZXItPj5EZWNvcmF0aW9uOiBmb3IoY3JlYXRlZEJ5S2V5KVxuICAgKiAgIFJhbUFkYXB0ZXItPj5EZWNvcmF0aW9uOiBkZWZpbmUob25DcmVhdGUsIHByb3BNZXRhZGF0YSlcbiAgICogICBSYW1BZGFwdGVyLT4+RGVjb3JhdGlvbjogYXBwbHkoKVxuICAgKlxuICAgKiAgIFJhbUFkYXB0ZXItPj5EZWNvcmF0aW9uOiBmbGF2b3VyZWRBcyhSYW1GbGF2b3VyKVxuICAgKiAgIERlY29yYXRpb24tLT4+UmFtQWRhcHRlcjogRGVjb3JhdG9yQnVpbGRlclxuICAgKiAgIFJhbUFkYXB0ZXItPj5EZWNvcmF0aW9uOiBmb3IodXBkYXRlZEJ5S2V5KVxuICAgKiAgIFJhbUFkYXB0ZXItPj5EZWNvcmF0aW9uOiBkZWZpbmUob25DcmVhdGUsIHByb3BNZXRhZGF0YSlcbiAgICogICBSYW1BZGFwdGVyLT4+RGVjb3JhdGlvbjogYXBwbHkoKVxuICAgKi9cbiAgc3RhdGljIG92ZXJyaWRlIGRlY29yYXRpb24oKTogdm9pZCB7XG4gICAgc3VwZXIuZGVjb3JhdGlvbigpO1xuICAgIGNvbnN0IGNyZWF0ZWRCeUtleSA9IFBlcnNpc3RlbmNlS2V5cy5DUkVBVEVEX0JZO1xuICAgIGNvbnN0IHVwZGF0ZWRCeUtleSA9IFBlcnNpc3RlbmNlS2V5cy5VUERBVEVEX0JZO1xuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoUmFtRmxhdm91cilcbiAgICAgIC5mb3IoY3JlYXRlZEJ5S2V5KVxuICAgICAgLmRlZmluZShcbiAgICAgICAgb25DcmVhdGUoY3JlYXRlZEJ5T25SYW1DcmVhdGVVcGRhdGUpLFxuICAgICAgICBwcm9wTWV0YWRhdGEoY3JlYXRlZEJ5S2V5LCB7fSlcbiAgICAgIClcbiAgICAgIC5hcHBseSgpO1xuICAgIERlY29yYXRpb24uZmxhdm91cmVkQXMoUmFtRmxhdm91cilcbiAgICAgIC5mb3IodXBkYXRlZEJ5S2V5KVxuICAgICAgLmRlZmluZShcbiAgICAgICAgb25DcmVhdGVVcGRhdGUoY3JlYXRlZEJ5T25SYW1DcmVhdGVVcGRhdGUpLFxuICAgICAgICBwcm9wTWV0YWRhdGEodXBkYXRlZEJ5S2V5LCB7fSlcbiAgICAgIClcbiAgICAgIC5hcHBseSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVGaWVsZFR5cGUoXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE1vZGVsPixcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIGNvbnRleHQ6IHN0cmluZyxcbiAgICBwcmVkaWNhdGU6ICh0eXBlOiBzdHJpbmcpID0+IGJvb2xlYW4sXG4gICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5yZXNvbHZlRmllbGRUeXBlKGNsYXp6LCBmaWVsZCk7XG4gICAgaWYgKCF0eXBlIHx8ICFwcmVkaWNhdGUodHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICBgJHtjb250ZXh0fSByZXF1aXJlcyAke2Rlc2NyaXB0aW9ufSBhdHRyaWJ1dGUsIGJ1dCBcIiR7ZmllbGR9XCIgaXMgJHtcbiAgICAgICAgICB0eXBlIHx8IFwidW5rbm93blwiXG4gICAgICAgIH1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUZpZWxkVHlwZShcbiAgICBjbGF6ejogQ29uc3RydWN0b3I8TW9kZWw+LFxuICAgIGZpZWxkOiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBwcm9wS2V5ID0gZmllbGQgYXMga2V5b2YgTW9kZWw8ZmFsc2U+O1xuICAgIGNvbnN0IG1ldGFUeXBlID1cbiAgICAgIE1ldGFkYXRhLnR5cGUoY2xhenosIHByb3BLZXkpID8/XG4gICAgICBNZXRhZGF0YS5nZXRQcm9wRGVzaWduVHlwZXMoY2xhenosIHByb3BLZXkpPy5kZXNpZ25UeXBlO1xuICAgIHJldHVybiB0aGlzLm5vcm1hbGl6ZU1ldGFUeXBlKG1ldGFUeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplTWV0YVR5cGUobWV0YVR5cGU6IGFueSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCFtZXRhVHlwZSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodHlwZW9mIG1ldGFUeXBlID09PSBcInN0cmluZ1wiKSByZXR1cm4gbWV0YVR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAodHlwZW9mIG1ldGFUeXBlID09PSBcImZ1bmN0aW9uXCIgJiYgbWV0YVR5cGUubmFtZSlcbiAgICAgIHJldHVybiBtZXRhVHlwZS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNOdW1lcmljVHlwZSh0eXBlPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGUgPT09IFwibnVtYmVyXCIgfHwgdHlwZSA9PT0gXCJiaWdpbnRcIjtcbiAgfVxuXG4gIHByaXZhdGUgdG9OdW1lcmljVmFsdWUoXG4gICAgdmFsdWU6IGFueSxcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIGNvbnRleHQ6IHN0cmluZ1xuICApOiBudW1iZXIge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHJldHVybiB2YWx1ZTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcImJpZ2ludFwiKSByZXR1cm4gTnVtYmVyKHZhbHVlKTtcbiAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcbiAgICAgIGAke2NvbnRleHR9IG9uIFwiJHtmaWVsZH1cIiByZXF1aXJlcyBudW1lcmljIHZhbHVlcywgYnV0IGdvdCAke3R5cGVvZiB2YWx1ZX1gXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXRDbGllbnQoKTogUmFtU3RvcmFnZSB7XG4gICAgcmV0dXJuIG5ldyBNYXAoKTtcbiAgfVxufVxuXG5BZGFwdGVyLnNldEN1cnJlbnQoUmFtRmxhdm91cik7XG5SYW1BZGFwdGVyLmRlY29yYXRpb24oKTtcbiJdfQ==
|
|
@@ -81,4 +81,4 @@ export class RamPaginator extends Paginator {
|
|
|
81
81
|
return results.data || results;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
//# sourceMappingURL=
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFtUGFnaW5hdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JhbS9SYW1QYWdpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSw0QkFBaUI7QUFDckMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBS3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFDSCxNQUFNLE9BQU8sWUFBOEIsU0FBUSxTQUlsRDtJQUNDLFlBQ0UsT0FBK0MsRUFDL0MsS0FBcUIsRUFDckIsSUFBWSxFQUNaLEtBQXFCO1FBRXJCLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sT0FBTyxDQUFDLFlBQTRCO1FBQzVDLE1BQU0sS0FBSyxHQUFxQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNoRSxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDeEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNNLEtBQUssQ0FBQyxJQUFJLENBQ2pCLE9BQWUsQ0FBQyxFQUNoQixHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLElBQUksT0FBNEIsQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUM5QixFQUFFLEdBQUcsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFDaEQsS0FBSyxFQUNMLEdBQUcsQ0FDSixDQUFDO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxJQUFJLEdBQUcsU0FBUyxFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsT0FBTyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3hDLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFZLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTTtZQUM3QixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU8sT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmF3UmFtUXVlcnkgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgUGFnaW5hdG9yIH0gZnJvbSBcIi4uL3F1ZXJ5XCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFJhd1Jlc3VsdCB9IGZyb20gXCIuLi9wZXJzaXN0ZW5jZVwiO1xuaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIi4uL3V0aWxzL0NvbnRleHR1YWxMb2dnZWRDbGFzc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSQU0tc3BlY2lmaWMgcGFnaW5hdG9yIGltcGxlbWVudGF0aW9uXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBiYXNlIFBhZ2luYXRvciBjbGFzcyB0byBwcm92aWRlIHBhZ2luYXRpb24gZnVuY3Rpb25hbGl0eSBmb3IgUkFNIGFkYXB0ZXIgcXVlcmllcy5cbiAqIFRoaXMgY2xhc3MgaGFuZGxlcyB0aGUgcGFnaW5hdGlvbiBvZiBxdWVyeSByZXN1bHRzIGZyb20gdGhlIGluLW1lbW9yeSBzdG9yYWdlLCBhbGxvd2luZ1xuICogZm9yIGVmZmljaWVudCByZXRyaWV2YWwgb2YgbGFyZ2UgcmVzdWx0IHNldHMgaW4gc21hbGxlciBjaHVua3MuXG4gKiBAdGVtcGxhdGUgTSAtIFRoZSBtb2RlbCB0eXBlIGJlaW5nIHBhZ2luYXRlZFxuICogQHRlbXBsYXRlIFIgLSBUaGUgcmVzdWx0IHR5cGUgcmV0dXJuZWQgYnkgdGhlIHBhZ2luYXRvclxuICogQGNsYXNzIFJhbVBhZ2luYXRvclxuICogQGNhdGVnb3J5IFJhbVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhIHF1ZXJ5IGZvciBVc2VyIG1vZGVsXG4gKiBjb25zdCBxdWVyeTogUmF3UmFtUXVlcnk8VXNlcj4gPSB7XG4gKiAgIHNlbGVjdDogdW5kZWZpbmVkLCAvLyBTZWxlY3QgYWxsIGZpZWxkc1xuICogICBmcm9tOiBVc2VyLFxuICogICB3aGVyZTogKHVzZXIpID0+IHVzZXIuYWN0aXZlID09PSB0cnVlXG4gKiB9O1xuICpcbiAqIC8vIENyZWF0ZSBhIHBhZ2luYXRvciB3aXRoIHBhZ2Ugc2l6ZSBvZiAxMFxuICogY29uc3QgcGFnaW5hdG9yID0gbmV3IFJhbVBhZ2luYXRvcjxVc2VyLCBVc2VyPihhZGFwdGVyLCBxdWVyeSwgMTAsIFVzZXIpO1xuICpcbiAqIC8vIEdldCB0aGUgZmlyc3QgcGFnZSBvZiByZXN1bHRzXG4gKiBjb25zdCBmaXJzdFBhZ2UgPSBhd2FpdCBwYWdpbmF0b3IucGFnZSgxKTtcbiAqXG4gKiAvLyBHZXQgdGhlIG5leHQgcGFnZVxuICogY29uc3Qgc2Vjb25kUGFnZSA9IGF3YWl0IHBhZ2luYXRvci5wYWdlKDIpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBSYW1QYWdpbmF0b3I8TSBleHRlbmRzIE1vZGVsPiBleHRlbmRzIFBhZ2luYXRvcjxcbiAgTSxcbiAgTVtdLFxuICBSYXdSYW1RdWVyeTxNPlxuPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGFkYXB0ZXI6IEFkYXB0ZXI8YW55LCBhbnksIFJhd1JhbVF1ZXJ5PE0+LCBhbnk+LFxuICAgIHF1ZXJ5OiBSYXdSYW1RdWVyeTxNPixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgY2xheno6IENvbnN0cnVjdG9yPE0+XG4gICkge1xuICAgIHN1cGVyKGFkYXB0ZXIsIHF1ZXJ5LCBzaXplLCBjbGF6eik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByZXBhcmVzIGEgUkFNIHF1ZXJ5IGZvciBwYWdpbmF0aW9uXG4gICAqIEBzdW1tYXJ5IE1vZGlmaWVzIHRoZSByYXcgcXVlcnkgc3RhdGVtZW50IHRvIGluY2x1ZGUgcGFnaW5hdGlvbiBwYXJhbWV0ZXJzLlxuICAgKiBUaGlzIHByb3RlY3RlZCBtZXRob2Qgc2V0cyB0aGUgbGltaXQgcGFyYW1ldGVyIG9uIHRoZSBxdWVyeSB0byBtYXRjaCB0aGUgcGFnZSBzaXplLlxuICAgKiBAcGFyYW0ge1Jhd1JhbVF1ZXJ5PE0+fSByYXdTdGF0ZW1lbnQgLSBUaGUgb3JpZ2luYWwgcXVlcnkgc3RhdGVtZW50XG4gICAqIEByZXR1cm4ge1Jhd1JhbVF1ZXJ5PE0+fSBUaGUgbW9kaWZpZWQgcXVlcnkgd2l0aCBwYWdpbmF0aW9uIHBhcmFtZXRlcnNcbiAgICovXG4gIHByb3RlY3RlZCBwcmVwYXJlKHJhd1N0YXRlbWVudDogUmF3UmFtUXVlcnk8TT4pOiBSYXdSYW1RdWVyeTxNPiB7XG4gICAgY29uc3QgcXVlcnk6IFJhd1JhbVF1ZXJ5PGFueT4gPSBPYmplY3QuYXNzaWduKHt9LCByYXdTdGF0ZW1lbnQpO1xuICAgIHF1ZXJ5LmxpbWl0ID0gdGhpcy5zaXplO1xuICAgIHJldHVybiBxdWVyeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIGEgc3BlY2lmaWMgcGFnZSBvZiByZXN1bHRzXG4gICAqIEBzdW1tYXJ5IEV4ZWN1dGVzIHRoZSBxdWVyeSB3aXRoIHBhZ2luYXRpb24gcGFyYW1ldGVycyB0byByZXRyaWV2ZSBhIHNwZWNpZmljIHBhZ2Ugb2YgcmVzdWx0cy5cbiAgICogVGhpcyBtZXRob2QgY2FsY3VsYXRlcyB0aGUgYXBwcm9wcmlhdGUgc2tpcCB2YWx1ZSBiYXNlZCBvbiB0aGUgcGFnZSBudW1iZXIgYW5kIHBhZ2Ugc2l6ZSxcbiAgICogZXhlY3V0ZXMgdGhlIHF1ZXJ5LCBhbmQgdXBkYXRlcyB0aGUgY3VycmVudCBwYWdlIHRyYWNraW5nLlxuICAgKiBAcGFyYW0ge251bWJlcn0gW3BhZ2U9MV0gLSBUaGUgcGFnZSBudW1iZXIgdG8gcmV0cmlldmUgKDEtYmFzZWQpXG4gICAqIEByZXR1cm4ge1Byb21pc2U8UltdPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYW4gYXJyYXkgb2YgcmVzdWx0cyBmb3IgdGhlIHJlcXVlc3RlZCBwYWdlXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyBwYWdlKFxuICAgIHBhZ2U6IG51bWJlciA9IDEsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGN0eCwgY3R4QXJncyB9ID0gdGhpcy5hZGFwdGVyW1wibG9nQ3R4XCJdKGFyZ3MsIHRoaXMucGFnZSk7XG4gICAgaWYgKHRoaXMuaXNQcmVwYXJlZFN0YXRlbWVudCgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5wYWdlUHJlcGFyZWQocGFnZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdGVtZW50ID0gdGhpcy5wcmVwYXJlKHRoaXMuc3RhdGVtZW50KTtcbiAgICBsZXQgcmVzdWx0czogUmF3UmVzdWx0PGFueSwgYW55PjtcbiAgICBpZiAoIXRoaXMuX3JlY29yZENvdW50IHx8ICF0aGlzLl90b3RhbFBhZ2VzKSB7XG4gICAgICB0aGlzLl90b3RhbFBhZ2VzID0gdGhpcy5fcmVjb3JkQ291bnQgPSAwO1xuICAgICAgcmVzdWx0cyA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXc8YW55LCBmYWxzZT4oXG4gICAgICAgIHsgLi4uc3RhdGVtZW50LCBsaW1pdDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgfSxcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGN0eFxuICAgICAgKTtcbiAgICAgIHRoaXMuX3JlY29yZENvdW50ID0gcmVzdWx0cy5jb3VudCB8fCByZXN1bHRzLmRhdGEubGVuZ3RoO1xuICAgICAgaWYgKHRoaXMuX3JlY29yZENvdW50ID4gMCkge1xuICAgICAgICBjb25zdCBzaXplID0gc3RhdGVtZW50Py5saW1pdCB8fCB0aGlzLnNpemU7XG4gICAgICAgIHRoaXMuX3RvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy5fcmVjb3JkQ291bnQgLyBzaXplKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucGFnZShwYWdlLCAuLi5jdHhBcmdzKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFnZSA9IHRoaXMudmFsaWRhdGVQYWdlKHBhZ2UpO1xuICAgICAgc3RhdGVtZW50LnNraXAgPSAocGFnZSAtIDEpICogdGhpcy5zaXplO1xuICAgICAgcmVzdWx0cyA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXc8YW55LCB0cnVlPihzdGF0ZW1lbnQsIHRydWUsIC4uLmN0eEFyZ3MpO1xuICAgIH1cblxuICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gcGFnZTtcbiAgICB0aGlzLl9ib29rbWFyayA9IHJlc3VsdHMubGVuZ3RoXG4gICAgICA/IHJlc3VsdHNbcmVzdWx0cy5sZW5ndGggLSAxXVtNb2RlbC5wayh0aGlzLmNsYXp6KV1cbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiByZXN1bHRzLmRhdGEgfHwgcmVzdWx0cztcbiAgfVxufVxuIl19
|