@decaf-ts/integrations 0.14.3 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +373 -21
- package/dist/integrations.cjs +2 -3317
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -3665
- package/dist/integrations.js.map +1 -0
- package/jest.config.cjs +0 -1
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/core/BlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs.map +1 -0
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobEnvironment.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs.map +1 -0
- package/lib/cjs/calendar/CalendarService.cjs +2 -2
- package/lib/cjs/calendar/CalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/environment.cjs +2 -2
- package/lib/cjs/calendar/environment.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
- package/lib/cjs/calendar/index.cjs +2 -2
- package/lib/cjs/calendar/index.cjs.map +1 -0
- package/lib/cjs/calendar/types.cjs +2 -2
- package/lib/cjs/calendar/types.cjs.map +1 -0
- package/lib/cjs/calendar/validators/cron.cjs +2 -2
- package/lib/cjs/calendar/validators/cron.cjs.map +1 -0
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +1 -0
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +1 -0
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +1 -0
- package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
- package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
- package/lib/cjs/comms/discord/index.cjs +2 -2
- package/lib/cjs/comms/discord/index.cjs.map +1 -0
- package/lib/cjs/comms/email/EmailService.cjs +2 -2
- package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
- package/lib/cjs/comms/email/index.cjs +2 -2
- package/lib/cjs/comms/email/index.cjs.map +1 -0
- package/lib/cjs/comms/email/mime.cjs +2 -2
- package/lib/cjs/comms/email/mime.cjs.map +1 -0
- package/lib/cjs/comms/email/smtp.cjs +2 -2
- package/lib/cjs/comms/email/smtp.cjs.map +1 -0
- package/lib/cjs/comms/environment.cjs +2 -2
- package/lib/cjs/comms/environment.cjs.map +1 -0
- package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
- package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
- package/lib/cjs/comms/gmail/index.cjs +2 -2
- package/lib/cjs/comms/gmail/index.cjs.map +1 -0
- package/lib/cjs/comms/index.cjs +2 -2
- package/lib/cjs/comms/index.cjs.map +1 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
- package/lib/cjs/comms/outlook/index.cjs +2 -2
- package/lib/cjs/comms/outlook/index.cjs.map +1 -0
- package/lib/cjs/comms/slack/SlackService.cjs +2 -2
- package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
- package/lib/cjs/comms/slack/index.cjs +2 -2
- package/lib/cjs/comms/slack/index.cjs.map +1 -0
- package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
- package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
- package/lib/cjs/comms/teams/index.cjs +2 -2
- package/lib/cjs/comms/teams/index.cjs.map +1 -0
- package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
- package/lib/cjs/comms/telegram/index.cjs +2 -2
- package/lib/cjs/comms/telegram/index.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/index.cjs +2 -2
- package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
- package/lib/cjs/devops/environment.cjs +2 -2
- package/lib/cjs/devops/environment.cjs.map +1 -0
- package/lib/cjs/devops/github/GithubService.cjs +2 -2
- package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
- package/lib/cjs/devops/github/index.cjs +2 -2
- package/lib/cjs/devops/github/index.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/index.cjs +2 -2
- package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
- package/lib/cjs/devops/index.cjs +2 -2
- package/lib/cjs/devops/index.cjs.map +1 -0
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/docker/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs.map +1 -0
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs.map +1 -0
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +3 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs.map +1 -0
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs.map +1 -0
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
- package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
- package/lib/cjs/io/airtable/index.cjs +2 -2
- package/lib/cjs/io/airtable/index.cjs.map +1 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
- package/lib/cjs/io/confluence/index.cjs +2 -2
- package/lib/cjs/io/confluence/index.cjs.map +1 -0
- package/lib/cjs/io/environment.cjs +2 -2
- package/lib/cjs/io/environment.cjs.map +1 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
- package/lib/cjs/io/google-docs/index.cjs +2 -2
- package/lib/cjs/io/google-docs/index.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/index.cjs +2 -2
- package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
- package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
- package/lib/cjs/io/graphql/index.cjs +2 -2
- package/lib/cjs/io/graphql/index.cjs.map +1 -0
- package/lib/cjs/io/index.cjs +2 -2
- package/lib/cjs/io/index.cjs.map +1 -0
- package/lib/cjs/io/jira/JiraService.cjs +2 -2
- package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
- package/lib/cjs/io/jira/index.cjs +2 -2
- package/lib/cjs/io/jira/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/index.cjs +2 -2
- package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
- package/lib/cjs/keycloak/broker.cjs +2 -2
- package/lib/cjs/keycloak/broker.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs.map +1 -0
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs.map +1 -0
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/kibana/types.cjs.map +1 -0
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
- package/lib/cjs/loader/assets.cjs +2 -2
- package/lib/cjs/loader/assets.cjs.map +1 -0
- package/lib/cjs/loader/config.cjs +2 -2
- package/lib/cjs/loader/config.cjs.map +1 -0
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/families.cjs.map +1 -0
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/index.cjs.map +1 -0
- package/lib/cjs/loader/nest.cjs +2 -2
- package/lib/cjs/loader/nest.cjs.map +1 -0
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/loader/types.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/credential.model.cjs +2 -2
- package/lib/cjs/namespaces/models/credential.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/index.cjs +2 -2
- package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
- package/lib/cjs/namespaces/rls/session-binding.cjs.map +1 -0
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/credential.service.cjs +2 -2
- package/lib/cjs/namespaces/services/credential.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs.map +1 -0
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs.map +1 -0
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs.map +1 -0
- package/lib/cjs/nest/decorators.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs.map +1 -0
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/index.cjs.map +1 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/logging.cjs.map +1 -0
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/types.cjs.map +1 -0
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/nest/utils.cjs.map +1 -0
- package/lib/cjs/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/contract.cjs.map +1 -0
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs.map +1 -0
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs.map +1 -0
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs.map +1 -0
- package/lib/cjs/redis/RedisContextLock.cjs +2 -2
- package/lib/cjs/redis/RedisContextLock.cjs.map +1 -0
- package/lib/cjs/redis/RedisDispatch.cjs +2 -2
- package/lib/cjs/redis/RedisDispatch.cjs.map +1 -0
- package/lib/cjs/redis/RedisPaginator.cjs +2 -2
- package/lib/cjs/redis/RedisPaginator.cjs.map +1 -0
- package/lib/cjs/redis/RedisStatement.cjs +2 -2
- package/lib/cjs/redis/RedisStatement.cjs.map +1 -0
- package/lib/cjs/redis/adapter.cjs +2 -2
- package/lib/cjs/redis/adapter.cjs.map +1 -0
- package/lib/cjs/redis/constants.cjs +2 -2
- package/lib/cjs/redis/constants.cjs.map +1 -0
- package/lib/cjs/redis/handlers.cjs +2 -2
- package/lib/cjs/redis/handlers.cjs.map +1 -0
- package/lib/cjs/redis/index.cjs +2 -2
- package/lib/cjs/redis/index.cjs.map +1 -0
- package/lib/cjs/redis/serialization.cjs +2 -2
- package/lib/cjs/redis/serialization.cjs.map +1 -0
- package/lib/cjs/redis/types.cjs +2 -2
- package/lib/cjs/redis/types.cjs.map +1 -0
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs.map +1 -0
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs +2 -2
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/core/SecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/fs/index.cjs +2 -2
- package/lib/cjs/secrets/fs/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/index.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/index.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs.map +1 -0
- package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +1 -0
- package/lib/cjs/sftp/aws/index.cjs +2 -2
- package/lib/cjs/sftp/aws/index.cjs.map +1 -0
- package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
- package/lib/cjs/sftp/core/SftpSource.cjs.map +1 -0
- package/lib/cjs/sftp/core/index.cjs +2 -2
- package/lib/cjs/sftp/core/index.cjs.map +1 -0
- package/lib/cjs/sftp/index.cjs +2 -2
- package/lib/cjs/sftp/index.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/index.cjs +2 -2
- package/lib/cjs/sftp/ssh2/index.cjs.map +1 -0
- package/lib/cjs/shared/environmentValue.cjs +2 -2
- package/lib/cjs/shared/environmentValue.cjs.map +1 -0
- package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
- package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
- package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
- package/lib/cjs/shared/http/index.cjs +2 -2
- package/lib/cjs/shared/http/index.cjs.map +1 -0
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs.map +1 -0
- package/lib/cjs/user-requests/index.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs.map +1 -0
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
- package/lib/esm/blob/azure/AzureBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/azure/index.js.map +1 -0
- package/lib/esm/blob/core/BlobEnvironment.js +1 -1
- package/lib/esm/blob/core/BlobEnvironment.js.map +1 -0
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js.map +1 -0
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobKey.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js.map +1 -0
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/BlobValue.js.map +1 -0
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/core/index.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobEnvironment.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/gcp/index.js.map +1 -0
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/index.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobEnvironment.js +1 -1
- package/lib/esm/blob/local/LocalBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/local/index.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobEnvironment.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/memory/index.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/MinioBlobEnvironment.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/blob/s3/index.js.map +1 -0
- package/lib/esm/calendar/CalendarService.js +1 -1
- package/lib/esm/calendar/CalendarService.js.map +1 -0
- package/lib/esm/calendar/environment.js +1 -1
- package/lib/esm/calendar/environment.js.map +1 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
- package/lib/esm/calendar/google-calendar/index.js +1 -1
- package/lib/esm/calendar/google-calendar/index.js.map +1 -0
- package/lib/esm/calendar/index.js +1 -1
- package/lib/esm/calendar/index.js.map +1 -0
- package/lib/esm/calendar/types.js +1 -1
- package/lib/esm/calendar/types.js.map +1 -0
- package/lib/esm/calendar/validators/cron.js +1 -1
- package/lib/esm/calendar/validators/cron.js.map +1 -0
- package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js.map +1 -0
- package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js.map +1 -0
- package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js.map +1 -0
- package/lib/esm/comms/discord/DiscordService.js +1 -1
- package/lib/esm/comms/discord/DiscordService.js.map +1 -0
- package/lib/esm/comms/discord/index.js +1 -1
- package/lib/esm/comms/discord/index.js.map +1 -0
- package/lib/esm/comms/email/EmailService.js +1 -1
- package/lib/esm/comms/email/EmailService.js.map +1 -0
- package/lib/esm/comms/email/index.js +1 -1
- package/lib/esm/comms/email/index.js.map +1 -0
- package/lib/esm/comms/email/mime.js +1 -1
- package/lib/esm/comms/email/mime.js.map +1 -0
- package/lib/esm/comms/email/smtp.js +1 -1
- package/lib/esm/comms/email/smtp.js.map +1 -0
- package/lib/esm/comms/environment.js +1 -1
- package/lib/esm/comms/environment.js.map +1 -0
- package/lib/esm/comms/gmail/GmailService.js +1 -1
- package/lib/esm/comms/gmail/GmailService.js.map +1 -0
- package/lib/esm/comms/gmail/index.js +1 -1
- package/lib/esm/comms/gmail/index.js.map +1 -0
- package/lib/esm/comms/index.js +1 -1
- package/lib/esm/comms/index.js.map +1 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
- package/lib/esm/comms/outlook/index.js +1 -1
- package/lib/esm/comms/outlook/index.js.map +1 -0
- package/lib/esm/comms/slack/SlackService.js +1 -1
- package/lib/esm/comms/slack/SlackService.js.map +1 -0
- package/lib/esm/comms/slack/index.js +1 -1
- package/lib/esm/comms/slack/index.js.map +1 -0
- package/lib/esm/comms/teams/TeamsService.js +1 -1
- package/lib/esm/comms/teams/TeamsService.js.map +1 -0
- package/lib/esm/comms/teams/index.js +1 -1
- package/lib/esm/comms/teams/index.js.map +1 -0
- package/lib/esm/comms/telegram/TelegramService.js +1 -1
- package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
- package/lib/esm/comms/telegram/index.js +1 -1
- package/lib/esm/comms/telegram/index.js.map +1 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
- package/lib/esm/comms/whatsapp/index.js +1 -1
- package/lib/esm/comms/whatsapp/index.js.map +1 -0
- package/lib/esm/devops/environment.js +1 -1
- package/lib/esm/devops/environment.js.map +1 -0
- package/lib/esm/devops/github/GithubService.js +1 -1
- package/lib/esm/devops/github/GithubService.js.map +1 -0
- package/lib/esm/devops/github/index.js +1 -1
- package/lib/esm/devops/github/index.js.map +1 -0
- package/lib/esm/devops/gitlab/GitlabService.js +1 -1
- package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
- package/lib/esm/devops/gitlab/index.js +1 -1
- package/lib/esm/devops/gitlab/index.js.map +1 -0
- package/lib/esm/devops/index.js +1 -1
- package/lib/esm/devops/index.js.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/DockerComposeService.js.map +1 -0
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/docker/index.js.map +1 -0
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/constants.js.map +1 -0
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/decorators.js.map +1 -0
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/environment.js.map +1 -0
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/readers/index.js.map +1 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +2 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/types.js.map +1 -0
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/feature-flags/utils.js.map +1 -0
- package/lib/esm/index.js +4 -4
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/io/airtable/AirtableService.js +1 -1
- package/lib/esm/io/airtable/AirtableService.js.map +1 -0
- package/lib/esm/io/airtable/index.js +1 -1
- package/lib/esm/io/airtable/index.js.map +1 -0
- package/lib/esm/io/confluence/ConfluenceService.js +1 -1
- package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
- package/lib/esm/io/confluence/index.js +1 -1
- package/lib/esm/io/confluence/index.js.map +1 -0
- package/lib/esm/io/environment.js +1 -1
- package/lib/esm/io/environment.js.map +1 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
- package/lib/esm/io/google-docs/index.js +1 -1
- package/lib/esm/io/google-docs/index.js.map +1 -0
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
- package/lib/esm/io/google-sheets/index.js +1 -1
- package/lib/esm/io/google-sheets/index.js.map +1 -0
- package/lib/esm/io/graphql/GraphqlService.js +1 -1
- package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
- package/lib/esm/io/graphql/index.js +1 -1
- package/lib/esm/io/graphql/index.js.map +1 -0
- package/lib/esm/io/index.js +1 -1
- package/lib/esm/io/index.js.map +1 -0
- package/lib/esm/io/jira/JiraService.js +1 -1
- package/lib/esm/io/jira/JiraService.js.map +1 -0
- package/lib/esm/io/jira/index.js +1 -1
- package/lib/esm/io/jira/index.js.map +1 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
- package/lib/esm/io/microsoft-excel/index.js +1 -1
- package/lib/esm/io/microsoft-excel/index.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
- package/lib/esm/io/spreadsheet/index.js +1 -1
- package/lib/esm/io/spreadsheet/index.js.map +1 -0
- package/lib/esm/keycloak/broker.js +1 -1
- package/lib/esm/keycloak/broker.js.map +1 -0
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/index.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/index.js.map +1 -0
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/services/runtime.js.map +1 -0
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/keycloak/types.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/builders/index.js.map +1 -0
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/helpers.js.map +1 -0
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/index.js.map +1 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/index.js.map +1 -0
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/services/runtime.js.map +1 -0
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/kibana/types.js.map +1 -0
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/ObjectLoader.js.map +1 -0
- package/lib/esm/loader/assets.js +1 -1
- package/lib/esm/loader/assets.js.map +1 -0
- package/lib/esm/loader/config.js +1 -1
- package/lib/esm/loader/config.js.map +1 -0
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/families.js.map +1 -0
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/index.js.map +1 -0
- package/lib/esm/loader/nest.js +1 -1
- package/lib/esm/loader/nest.js.map +1 -0
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/loader/types.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/index.js.map +1 -0
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
- package/lib/esm/namespaces/models/credential.model.js +1 -1
- package/lib/esm/namespaces/models/credential.model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js.map +1 -0
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/index.js.map +1 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js.map +1 -0
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js.map +1 -0
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
- package/lib/esm/namespaces/rls/index.js +1 -1
- package/lib/esm/namespaces/rls/index.js.map +1 -0
- package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
- package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.constants.js +1 -1
- package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.template.js +1 -1
- package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.types.js +1 -1
- package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
- package/lib/esm/namespaces/rls/session-binding.js +1 -1
- package/lib/esm/namespaces/rls/session-binding.js.map +1 -0
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js.map +1 -0
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/services/credential.service.js +1 -1
- package/lib/esm/namespaces/services/credential.service.js.map +1 -0
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/index.js.map +1 -0
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js.map +1 -0
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js.map +1 -0
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js.map +1 -0
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/types.js.map +1 -0
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/namespaces/utils.js.map +1 -0
- package/lib/esm/nest/decorators.js +1 -1
- package/lib/esm/nest/decorators.js.map +1 -0
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/index.js.map +1 -0
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/keycloakModule.js.map +1 -0
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/logging.js.map +1 -0
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/types.js.map +1 -0
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/nest/utils.js.map +1 -0
- package/lib/esm/plugins/contract.js +1 -1
- package/lib/esm/plugins/contract.js.map +1 -0
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/index.js.map +1 -0
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/host.js.map +1 -0
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/index.js.map +1 -0
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/installer.js.map +1 -0
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js.map +1 -0
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/templates.js.map +1 -0
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/kibana/types.js.map +1 -0
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/host.js.map +1 -0
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/index.js.map +1 -0
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/installer.js.map +1 -0
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/manifest.js.map +1 -0
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/templates.js.map +1 -0
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/plugins/superset/types.js.map +1 -0
- package/lib/esm/redis/RedisContextLock.js +1 -1
- package/lib/esm/redis/RedisContextLock.js.map +1 -0
- package/lib/esm/redis/RedisDispatch.js +1 -1
- package/lib/esm/redis/RedisDispatch.js.map +1 -0
- package/lib/esm/redis/RedisPaginator.js +1 -1
- package/lib/esm/redis/RedisPaginator.js.map +1 -0
- package/lib/esm/redis/RedisStatement.js +1 -1
- package/lib/esm/redis/RedisStatement.js.map +1 -0
- package/lib/esm/redis/adapter.js +1 -1
- package/lib/esm/redis/adapter.js.map +1 -0
- package/lib/esm/redis/constants.js +1 -1
- package/lib/esm/redis/constants.js.map +1 -0
- package/lib/esm/redis/handlers.js +1 -1
- package/lib/esm/redis/handlers.js.map +1 -0
- package/lib/esm/redis/index.js +1 -1
- package/lib/esm/redis/index.js.map +1 -0
- package/lib/esm/redis/serialization.js +1 -1
- package/lib/esm/redis/serialization.js.map +1 -0
- package/lib/esm/redis/types.js +1 -1
- package/lib/esm/redis/types.js.map +1 -0
- package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/aws/index.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/azure/AzureSecretEnvironment.js +1 -1
- package/lib/esm/secrets/azure/AzureSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/azure/index.js.map +1 -0
- package/lib/esm/secrets/core/ClientBasedSecretService.js +1 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
- package/lib/esm/secrets/core/SecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretName.js.map +1 -0
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js.map +1 -0
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/core/index.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretService.js +1 -1
- package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/fs/index.js +1 -1
- package/lib/esm/secrets/fs/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/gcp/index.js.map +1 -0
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/index.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/kubernetes/index.js +1 -1
- package/lib/esm/secrets/kubernetes/index.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretEnvironment.js +1 -1
- package/lib/esm/secrets/model/ModelSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/Secret.js.map +1 -0
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/model/index.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/onepassword/index.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretEnvironment.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/secrets/vault/index.js.map +1 -0
- package/lib/esm/sftp/aws/AwsSftpEnvironment.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpService.js.map +1 -0
- package/lib/esm/sftp/aws/index.js +1 -1
- package/lib/esm/sftp/aws/index.js.map +1 -0
- package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
- package/lib/esm/sftp/core/SftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/core/SftpSource.js +1 -1
- package/lib/esm/sftp/core/SftpSource.js.map +1 -0
- package/lib/esm/sftp/core/index.js +1 -1
- package/lib/esm/sftp/core/index.js.map +1 -0
- package/lib/esm/sftp/index.js +1 -1
- package/lib/esm/sftp/index.js.map +1 -0
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +1 -0
- package/lib/esm/sftp/ssh2/index.js +1 -1
- package/lib/esm/sftp/ssh2/index.js.map +1 -0
- package/lib/esm/shared/environmentValue.js +1 -1
- package/lib/esm/shared/environmentValue.js.map +1 -0
- package/lib/esm/shared/http/HttpApiService.js +1 -1
- package/lib/esm/shared/http/HttpApiService.js.map +1 -0
- package/lib/esm/shared/http/hermeticBoot.js +1 -1
- package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
- package/lib/esm/shared/http/index.js +1 -1
- package/lib/esm/shared/http/index.js.map +1 -0
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/shared/runtime.js.map +1 -0
- package/lib/esm/user-requests/index.js +1 -1
- package/lib/esm/user-requests/index.js.map +1 -0
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/package.json +74 -50
|
@@ -264,5 +264,5 @@ exports.KeycloakService = KeycloakService = __decorate([
|
|
|
264
264
|
(0, decoration_1.description)("Orchestrates Keycloak realm/user/client provisioning across the inner Keycloak services"),
|
|
265
265
|
__metadata("design:paramtypes", [])
|
|
266
266
|
], KeycloakService);
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2tleWNsb2FrL3NlcnZpY2VzL0tleWNsb2FrU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBTXZFLE9BQU8sS0FBd0IsTUFBTSxPQUFPLENBQUM7QUFDN0MsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtDQUErQjtBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUNBQThCO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQ0FBOEI7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFnQztBQUNoRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsNkNBQTBDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQ0FBOEI7QUFDNUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFrQjtBQVNuRCxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLGtCQUdwQztJQWFDO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRVMsWUFBWTtRQUNwQixPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxH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LENBQUM7WUFDbkIsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLFlBQVksQ0FBQyxLQUFLLGtCQUFrQixVQUFVLENBQUMsRUFBRSw0QkFBNEIsaUJBQWlCLENBQUMsRUFBRSxFQUFFO1lBQ3RLLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUCxhQUFhLEVBQUUsVUFBVSxnQkFBZ0IsRUFBRTtnQkFDM0MsY0FBYyxFQUFFLGtCQUFrQjthQUNuQztZQUNELGNBQWMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBSSxJQUFhO1FBQ3hDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQU0sQ0FBQztZQUMvQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGLENBQUE7QUE1YlksZUFBZTtJQUgzQixXQUFXLENBQ1YseUZBQXlGLENBQzFGOztHQUNZLGVBQWUsQ0E0YjNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVzY3JpcHRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIENsaWVudEJhc2VkU2VydmljZSxcbiAgQ29udGV4dHVhbEFyZ3MsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgc2VydmljZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yLCBOb3RGb3VuZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEtleWNsb2FrQnJva2VyU2V0dXBDb25maWcsXG4gIEtleWNsb2FrU2V0dXBDb25maWcsXG4gIEtleWNsb2FrVXNlcixcbn0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcblxuaW1wb3J0IHsgS2V5Y2xvYWtSZWFsbVNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha1JlYWxtU2VydmljZVwiO1xuaW1wb3J0IHsgS2V5Y2xvYWtVc2VyU2VydmljZSB9IGZyb20gXCIuL0tleWNsb2FrVXNlclNlcnZpY2VcIjtcbmltcG9ydCB7IEtleWNsb2FrUm9sZVNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha1JvbGVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBLZXljbG9ha0NsaWVudFNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha0NsaWVudFNlcnZpY2VcIjtcbmltcG9ydCB7IEtleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBLZXljbG9ha0F1dGhTZXJ2aWNlIH0gZnJvbSBcIi4vS2V5Y2xvYWtBdXRoU2VydmljZVwiO1xuaW1wb3J0IHsgc2V0S2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXIgfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5cbnR5cGUgS2V5Y2xvYWtSdW50aW1lU2V0dXBDb25maWcgPSBLZXljbG9ha1NldHVwQ29uZmlnICYge1xuICBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbjtcbn07XG5cbkBkZXNjcmlwdGlvbihcbiAgXCJPcmNoZXN0cmF0ZXMgS2V5Y2xvYWsgcmVhbG0vdXNlci9jbGllbnQgcHJvdmlzaW9uaW5nIGFjcm9zcyB0aGUgaW5uZXIgS2V5Y2xvYWsgc2VydmljZXNcIlxuKVxuZXhwb3J0IGNsYXNzIEtleWNsb2FrU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZTxcbiAgQXhpb3NJbnN0YW5jZSxcbiAgS2V5Y2xvYWtTZXR1cENvbmZpZ1xuPiB7XG4gIHByb3RlY3RlZCByZWFsbVNlcnZpY2UhOiBLZXljbG9ha1JlYWxtU2VydmljZTtcblxuICBwcm90ZWN0ZWQgdXNlclNlcnZpY2UhOiBLZXljbG9ha1VzZXJTZXJ2aWNlO1xuXG4gIHByb3RlY3RlZCByb2xlU2VydmljZSE6IEtleWNsb2FrUm9sZVNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGNsaWVudFNlcnZpY2UhOiBLZXljbG9ha0NsaWVudFNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGlkZW50aXR5UHJvdmlkZXJTZXJ2aWNlITogS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZTtcblxuICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2UhOiBLZXljbG9ha0F1dGhTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNQcm9kdWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhW1wiZGV2ZWxvcG1lbnRcIiwgXCJsb2NhbFwiXS5pbmNsdWRlcyhwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdID8/IFwiXCIpO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmluaXRpYWxpemVcbiAgICApO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICBjb25zdCBydW50aW1lQ29uZmlnOiBLZXljbG9ha1J1bnRpbWVTZXR1cENvbmZpZyA9IHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGlzUHJvZHVjdGlvbjogdGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSxcbiAgICB9O1xuICAgIHRoaXMuX2NvbmZpZyA9IHJ1bnRpbWVDb25maWc7XG4gICAgc2V0S2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXIodGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSk7XG5cbiAgICBsb2cuZGVidWcoYEJpbmRpbmcgaW5uZXIgc2VydmljZXMuLi5gKTtcbiAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtSZWFsbVNlcnZpY2UpO1xuICAgIHNlcnZpY2UoKShLZXljbG9ha1VzZXJTZXJ2aWNlKTtcbiAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtSb2xlU2VydmljZSk7XG4gICAgc2VydmljZSgpKEtleWNsb2FrQ2xpZW50U2VydmljZSk7XG4gICAgc2VydmljZSgpKEtleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UpO1xuICAgIHNlcnZpY2UoKShLZXljbG9ha0F1dGhTZXJ2aWNlKTtcblxuICAgIGxvZy5kZWJ1ZyhgSW5pdGlhbGl6aW5nIGlubmVyIHNlcnZpY2VzLi4uYCk7XG4gICAgdGhpcy5yZWFsbVNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtSZWFsbVNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMudXNlclNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtVc2VyU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLnJvbGVTZXJ2aWNlID0gbmV3IEtleWNsb2FrUm9sZVNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgdGhpcy5jbGllbnRTZXJ2aWNlID0gbmV3IEtleWNsb2FrQ2xpZW50U2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuY2xpZW50U2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlID0gbmV3IEtleWNsb2FrQXV0aFNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG5cbiAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQocnVudGltZUNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBLZXljbG9hayBTZXJ2aWNlIGluaXRpYWxpemVkIHdpdGggY29uZmlnOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIHNldHVwS2V5Y2xvYWsoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPEtleWNsb2FrU2V0dXBDb25maWc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInNldHVwS2V5Y2xvYWtcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuc2V0dXBLZXljbG9ha1xuICAgICk7XG5cbiAgICBjb25zdCBhZG1pbkFwaVVzZXJVVUlEID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5hZGRVc2VyVG9SZWFsbShcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcuYWRtaW5BcGlVc2VyISxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIhLnVzZXJuYW1lVVVJRCA9IGFkbWluQXBpVXNlclVVSUQ7XG4gICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5ncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLmFkbWluQXBpVXNlciEucmVhbG0sXG4gICAgICBhZG1pbkFwaVVzZXJVVUlELFxuICAgICAgW1wiYWRtaW5cIl0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4ga2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgfVxuXG4gIGFzeW5jIGFkZFJlYWxtKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFkZFJlYWxtXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmFkZFJlYWxtXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5hZGRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZWRpdFJlYWxtKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImVkaXRSZWFsbVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5lZGl0UmVhbG1cbiAgICApO1xuICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLmVkaXRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlUmVhbG0oXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZW1vdmVSZWFsbVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5yZW1vdmVSZWFsbVxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UucmVtb3ZlUmVhbG0ocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFVzZXJUb1JlYWxtKFxuICAgIGtleWNsb2FrVXNlcjogS2V5Y2xvYWtVc2VyLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkVXNlclRvUmVhbG1cIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuYWRkVXNlclRvUmVhbG1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmFkZFVzZXJUb1JlYWxtKGtleWNsb2FrVXNlciwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBlZGl0VXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICB1c2VyVVVJRDogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImVkaXRVc2VyXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmVkaXRVc2VyXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmVkaXRVc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVXNlckZyb21SZWFsbShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICB1c2VyVVVJRDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZW1vdmVVc2VyRnJvbVJlYWxtXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZW1vdmVVc2VyRnJvbVJlYWxtKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLnJlbW92ZVVzZXJGcm9tUmVhbG0ocmVhbG1OYW1lLCB1c2VyVVVJRCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBhZGRSZWFsbVJvbGVzVG9Vc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkUmVhbG1Sb2xlc1RvVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuYWRkUmVhbG1Sb2xlc1RvVXNlcik7XG4gICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5ncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICB1c2VyVVVJRCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWFsbS1sZXZlbCByb2xlLCBvcHRpb25hbGx5IGFzIGEgY29tcG9zaXRlIG9mIGV4aXN0aW5nIHJvbGVzLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUmVhbG1Sb2xlKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHJvbGVOYW1lOiBzdHJpbmcsXG4gICAgY29tcG9zaXRlUm9sZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlUmVhbG1Sb2xlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmNyZWF0ZVJlYWxtUm9sZVxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5jcmVhdGVSZWFsbVJvbGUoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICByb2xlTmFtZSxcbiAgICAgIGNvbXBvc2l0ZVJvbGVzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNsaWVudCBpbiB0aGUgY29uZmlndXJlZCByZWFsbSBhbmQgcmV0dXJucyBpdHMgVVVJRC5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUNsaWVudChcbiAgICBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPGltcG9ydChcIi4uL3R5cGVzXCIpLktleWNsb2FrQ2xpZW50Q29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlQ2xpZW50XCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmNyZWF0ZUNsaWVudFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50U2VydmljZS5jcmVhdGVDbGllbnQoY29uZmlnLCBvdmVycmlkZXMsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgYWRkQ2xpZW50Um9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgY2xpZW50VVVJRDogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkQ2xpZW50Um9sZXNUb1VzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmFkZENsaWVudFJvbGVzVG9Vc2VyKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmdyYW50Q2xpZW50Um9sZXNUb1VzZXIoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICBjbGllbnRVVUlELFxuICAgICAgdXNlclVVSUQsXG4gICAgICByb2xlTmFtZXMsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFkbWluQXBpVXNlcihcbiAgICBrZXljbG9ha1NldHVwQ29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVBZG1pbkFwaVVzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmRlbGV0ZUFkbWluQXBpVXNlcik7XG4gICAgY29uc3Qgcm9vdEFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbihcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcucm9vdEFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5kZWxldGVVc2VyKFxuICAgICAgcm9vdEFjY2Vzc1Rva2VuLFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBzZXR1cE9yZ2FuaXphdGlvbihcbiAgICBjb25maWc/OiBLZXljbG9ha1NldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8S2V5Y2xvYWtTZXR1cENvbmZpZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzZXR1cE9yZ2FuaXphdGlvblwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc2V0dXBPcmdhbml6YXRpb24pO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUNvbmZpZyA9IGNvbmZpZyA/PyB0aGlzLmNvbmZpZztcblxuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLmFkbWluQXBpVXNlciB8fCB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5jcmVhdGVSZWFsbShcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLnJlYWxtLFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQ29uZmlnID8/IHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yUmVhbG0oZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciEucmVhbG0sIC4uLmN0eEFyZ3MpO1xuXG4gICAgY29uc3QgcmVhbG1Vc2VyVVVJRCA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlUmVhbG1Vc2VyKFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciEsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLnVzZXJuYW1lVVVJRCA9IHJlYWxtVXNlclVVSUQ7XG5cbiAgICBjb25zdCByZWFsbU1hbmFnZW1lbnRVVUlEID0gYXdhaXQgdGhpcy5jbGllbnRTZXJ2aWNlLmdldENsaWVudFVVSUQoXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciEucmVhbG0sXG4gICAgICBcInJlYWxtLW1hbmFnZW1lbnRcIixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuYXNzaWduUm9sZXNUb1VzZXIoXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2VmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLnJlYWxtfS9jbGllbnRzLyR7cmVhbG1NYW5hZ2VtZW50VVVJRH0vcm9sZXNgLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyIS5yZWFsbX0vdXNlcnMvJHtyZWFsbVVzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtyZWFsbU1hbmFnZW1lbnRVVUlEfWAsXG4gICAgICBbXCJtYW5hZ2UtY2xpZW50c1wiLCBcIm1hbmFnZS1pZGVudGl0eS1wcm92aWRlcnNcIl0sXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG5cbiAgICBjb25zdCBjbGllbnRVVUlEID0gYXdhaXQgdGhpcy5jbGllbnRTZXJ2aWNlLmNyZWF0ZUNsaWVudChcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGVmZmVjdGl2ZUNvbmZpZy5jbGllbnQuY2xpZW50VVVJRCA9IGNsaWVudFVVSUQ7XG5cbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNsaWVudFNjb3Blc1JvbGVzTWFwcGVycyhcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG5cbiAgICByZXR1cm4gZWZmZWN0aXZlQ29uZmlnO1xuICB9XG5cbiAgYXN5bmMgc2V0dXBPcmdhbml6YXRpb25TU08oXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBPcmdhbml6YXRpb25TU09cIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnNldHVwT3JnYW5pemF0aW9uU1NPKTtcblxuICAgIGF3YWl0IHRoaXMuY2xpZW50U2VydmljZS5jcmVhdGVDbGllbnRSb2xlcyhcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAoa2V5Y2xvYWtTZXR1cENvbmZpZy5pZGVudGl0eVByb3ZpZGVyKSB7XG4gICAgICBhd2FpdCB0aGlzLmlkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXIoXG4gICAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UuY3JlYXRlSWRlbnRpdHlQcm92aWRlck1hcHBlcnMoXG4gICAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzZXR1cEJyb2tlcklkZW50aXR5UHJvdmlkZXIoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtCcm9rZXJTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBCcm9rZXJJZGVudGl0eVByb3ZpZGVyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zZXR1cEJyb2tlcklkZW50aXR5UHJvdmlkZXIpO1xuICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UuY3JlYXRlQnJva2VySWRlbnRpdHlQcm92aWRlcihcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU9yZ2FuaXphdGlvbihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZGVsZXRlT3JnYW5pemF0aW9uXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5kZWxldGVPcmdhbml6YXRpb24pO1xuICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLnJlbW92ZVJlYWxtKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IHRoaXMuaXNQcm9kdWN0aW9uKCksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FpdEZvclJlYWxtKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwid2FpdEZvclJlYWxtXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLndhaXRGb3JSZWFsbVxuICAgICk7XG5cbiAgICBjb25zdCBkZWFkbGluZSA9IERhdGUubm93KCkgKyAxNTAwMDtcbiAgICB3aGlsZSAoRGF0ZS5ub3coKSA8IGRlYWRsaW5lKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5nZXRSZWFsbShyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBUaW1lZCBvdXQgd2FpdGluZyBmb3IgcmVhbG0gJHtyZWFsbU5hbWV9YCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUNsaWVudFNjb3Blc1JvbGVzTWFwcGVycyhcbiAgICBrZXljbG9ha1VzZXI6IEtleWNsb2FrVXNlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQ2xpZW50U2NvcGVzUm9sZXNNYXBwZXJzKTtcblxuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgY29uc3QgcmVhbG1BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oXG4gICAgICBrZXljbG9ha1VzZXIsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCByb2xlc1Jlc3BvbnNlID0gYXdhaXQgY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9L2FkbWluL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vY2xpZW50LXNjb3Blc2AsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtyZWFsbUFjY2Vzc1Rva2VufWAsXG4gICAgICB9LFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgfSk7XG4gICAgY29uc3QgY2xpZW50U2NvcGVzID1cbiAgICAgIHRoaXMucGFyc2VKc29uUmVzcG9uc2U8XG4gICAgICAgIEFycmF5PHtcbiAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICBwcm90b2NvbE1hcHBlcnM/OiBBcnJheTx7XG4gICAgICAgICAgICBpZDogc3RyaW5nO1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgICAgICAgIH0+O1xuICAgICAgICB9PlxuICAgICAgPihyb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIGNvbnN0IHJvbGVzU2NvcGUgPSBjbGllbnRTY29wZXMuZmluZCgoc2NvcGUpID0+IHNjb3BlLm5hbWUgPT09IFwicm9sZXNcIik7XG4gICAgY29uc3QgY2xpZW50Um9sZXNNYXBwZXIgPSByb2xlc1Njb3BlPy5wcm90b2NvbE1hcHBlcnM/LmZpbmQoXG4gICAgICAobWFwcGVyKSA9PiBtYXBwZXIubmFtZSA9PT0gXCJjbGllbnQgcm9sZXNcIlxuICAgICk7XG4gICAgaWYgKCFyb2xlc1Njb3BlIHx8ICFjbGllbnRSb2xlc01hcHBlcikge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IoXCJVbmFibGUgdG8gZmluZCBjbGllbnQgcm9sZXMgbWFwcGVyXCIpO1xuICAgIH1cbiAgICBjbGllbnRSb2xlc01hcHBlci5jb25maWdbXCJpZC50b2tlbi5jbGFpbVwiXSA9IFwidHJ1ZVwiO1xuICAgIGF3YWl0IGNsaWVudC5yZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogXCJQVVRcIixcbiAgICAgIHVybDogYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fS9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L2NsaWVudC1zY29wZXMvJHtyb2xlc1Njb3BlLmlkfS9wcm90b2NvbC1tYXBwZXJzL21vZGVscy8ke2NsaWVudFJvbGVzTWFwcGVyLmlkfWAsXG4gICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShjbGllbnRSb2xlc01hcHBlciksXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtyZWFsbUFjY2Vzc1Rva2VufWAsXG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgfSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUpzb25SZXNwb25zZTxUPihkYXRhOiB1bmtub3duKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKSBhcyBUO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkYXRhIGFzIFQ7XG4gIH1cbn1cbiJdfQ==
|
|
268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiS2V5Y2xvYWtTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxD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QUFDLEVBQUUsRUFBRTtZQUN0SyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztZQUN2QyxPQUFPLEVBQUU7Z0JBQ0wsYUFBYSxFQUFFLFVBQVUsZ0JBQWdCLEVBQUU7Z0JBQzNDLGNBQWMsRUFBRSxrQkFBa0I7YUFDckM7WUFDRCxjQUFjLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtTQUM3QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsSUFBSTtRQUNsQixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQztZQUNELE1BQU0sQ0FBQztnQkFDSCxPQUFPLFNBQVMsQ0FBQztZQUNyQixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSixDQUFDO0FBS08sMENBQWU7QUFKeEIsMEJBQUEsZUFBZSxHQUFHLFVBQVUsQ0FBQztJQUN6QixJQUFBLHdCQUFXLEVBQUMseUZBQXlGLENBQUM7SUFDdEcsVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztDQUN0QyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRXBCLDBrbENBQTBrbEMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgZGVzY3JpcHRpb24gfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IENsaWVudEJhc2VkU2VydmljZSwgc2VydmljZSwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyBLZXljbG9ha1JlYWxtU2VydmljZSB9IGZyb20gXCIuL0tleWNsb2FrUmVhbG1TZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLZXljbG9ha1VzZXJTZXJ2aWNlIH0gZnJvbSBcIi4vS2V5Y2xvYWtVc2VyU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2V5Y2xvYWtSb2xlU2VydmljZSB9IGZyb20gXCIuL0tleWNsb2FrUm9sZVNlcnZpY2UuanNcIjtcbmltcG9ydCB7IEtleWNsb2FrQ2xpZW50U2VydmljZSB9IGZyb20gXCIuL0tleWNsb2FrQ2xpZW50U2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZSB9IGZyb20gXCIuL0tleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuanNcIjtcbmltcG9ydCB7IEtleWNsb2FrQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha0F1dGhTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBzZXRLZXljbG9ha1Byb2R1Y3Rpb25SZXNvbHZlciB9IGZyb20gXCIuL3J1bnRpbWUuanNcIjtcbmxldCBLZXljbG9ha1NlcnZpY2UgPSBjbGFzcyBLZXljbG9ha1NlcnZpY2UgZXh0ZW5kcyBDbGllbnRCYXNlZFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBpc1Byb2R1Y3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAhW1wiZGV2ZWxvcG1lbnRcIiwgXCJsb2NhbFwiXS5pbmNsdWRlcyhwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdID8/IFwiXCIpO1xuICAgIH1cbiAgICBhc3luYyBpbml0aWFsaXplKC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImluaXRpYWxpemVcIiwgdHJ1ZSkpLmZvcih0aGlzLmluaXRpYWxpemUpO1xuICAgICAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdO1xuICAgICAgICBjb25zdCBydW50aW1lQ29uZmlnID0ge1xuICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgICAgaXNQcm9kdWN0aW9uOiB0aGlzLmlzUHJvZHVjdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9jb25maWcgPSBydW50aW1lQ29uZmlnO1xuICAgICAgICBzZXRLZXljbG9ha1Byb2R1Y3Rpb25SZXNvbHZlcih0aGlzLmlzUHJvZHVjdGlvbi5iaW5kKHRoaXMpKTtcbiAgICAgICAgbG9nLmRlYnVnKGBCaW5kaW5nIGlubmVyIHNlcnZpY2VzLi4uYCk7XG4gICAgICAgIHNlcnZpY2UoKShLZXljbG9ha1JlYWxtU2VydmljZSk7XG4gICAgICAgIHNlcnZpY2UoKShLZXljbG9ha1VzZXJTZXJ2aWNlKTtcbiAgICAgICAgc2VydmljZSgpKEtleWNsb2FrUm9sZVNlcnZpY2UpO1xuICAgICAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtDbGllbnRTZXJ2aWNlKTtcbiAgICAgICAgc2VydmljZSgpKEtleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UpO1xuICAgICAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtBdXRoU2VydmljZSk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgSW5pdGlhbGl6aW5nIGlubmVyIHNlcnZpY2VzLi4uYCk7XG4gICAgICAgIHRoaXMucmVhbG1TZXJ2aWNlID0gbmV3IEtleWNsb2FrUmVhbG1TZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMudXNlclNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtVc2VyU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMucm9sZVNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtSb2xlU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMuY2xpZW50U2VydmljZSA9IG5ldyBLZXljbG9ha0NsaWVudFNlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jbGllbnRTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmlkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtBdXRoU2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChydW50aW1lQ29uZmlnKTtcbiAgICAgICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgICAgICBsb2cuZGVidWcoYEtleWNsb2FrIFNlcnZpY2UgaW5pdGlhbGl6ZWQgd2l0aCBjb25maWc6ICR7SlNPTi5zdHJpbmdpZnkoY29uZmlnKX1gKTtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgc2V0dXBLZXljbG9hayhrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBLZXljbG9ha1wiLCB0cnVlKSkuZm9yKHRoaXMuc2V0dXBLZXljbG9hayk7XG4gICAgICAgIGNvbnN0IGFkbWluQXBpVXNlclVVSUQgPSBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmFkZFVzZXJUb1JlYWxtKGtleWNsb2FrU2V0dXBDb25maWcuYWRtaW5BcGlVc2VyLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGtleWNsb2FrU2V0dXBDb25maWcuYWRtaW5BcGlVc2VyLnVzZXJuYW1lVVVJRCA9IGFkbWluQXBpVXNlclVVSUQ7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuZ3JhbnRSZWFsbVJvbGVzVG9Vc2VyKGtleWNsb2FrU2V0dXBDb25maWcuYWRtaW5BcGlVc2VyLnJlYWxtLCBhZG1pbkFwaVVzZXJVVUlELCBbXCJhZG1pblwiXSwgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiBrZXljbG9ha1NldHVwQ29uZmlnO1xuICAgIH1cbiAgICBhc3luYyBhZGRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJhZGRSZWFsbVwiLCB0cnVlKSkuZm9yKHRoaXMuYWRkUmVhbG0pO1xuICAgICAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5hZGRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBlZGl0UmVhbG0ocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZWRpdFJlYWxtXCIsIHRydWUpKS5mb3IodGhpcy5lZGl0UmVhbG0pO1xuICAgICAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5lZGl0UmVhbG0ocmVhbG1OYW1lLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVtb3ZlUmVhbG0ocmVhbG1OYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVtb3ZlUmVhbG1cIiwgdHJ1ZSkpLmZvcih0aGlzLnJlbW92ZVJlYWxtKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UucmVtb3ZlUmVhbG0ocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgYWRkVXNlclRvUmVhbG0oa2V5Y2xvYWtVc2VyLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkVXNlclRvUmVhbG1cIiwgdHJ1ZSkpLmZvcih0aGlzLmFkZFVzZXJUb1JlYWxtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuYWRkVXNlclRvUmVhbG0oa2V5Y2xvYWtVc2VyLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZWRpdFVzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImVkaXRVc2VyXCIsIHRydWUpKS5mb3IodGhpcy5lZGl0VXNlcik7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuZWRpdFVzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJlbW92ZVVzZXJGcm9tUmVhbG0ocmVhbG1OYW1lLCB1c2VyVVVJRCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJlbW92ZVVzZXJGcm9tUmVhbG1cIiwgdHJ1ZSkpLmZvcih0aGlzLnJlbW92ZVVzZXJGcm9tUmVhbG0pO1xuICAgICAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLnJlbW92ZVVzZXJGcm9tUmVhbG0ocmVhbG1OYW1lLCB1c2VyVVVJRCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGFkZFJlYWxtUm9sZXNUb1VzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkUmVhbG1Sb2xlc1RvVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMuYWRkUmVhbG1Sb2xlc1RvVXNlcik7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuZ3JhbnRSZWFsbVJvbGVzVG9Vc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSByZWFsbS1sZXZlbCByb2xlLCBvcHRpb25hbGx5IGFzIGEgY29tcG9zaXRlIG9mIGV4aXN0aW5nIHJvbGVzLlxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZVJlYWxtUm9sZShyZWFsbU5hbWUsIHJvbGVOYW1lLCBjb21wb3NpdGVSb2xlcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZVJlYWxtUm9sZVwiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlUmVhbG1Sb2xlKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5jcmVhdGVSZWFsbVJvbGUocmVhbG1OYW1lLCByb2xlTmFtZSwgY29tcG9zaXRlUm9sZXMsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgY2xpZW50IGluIHRoZSBjb25maWd1cmVkIHJlYWxtIGFuZCByZXR1cm5zIGl0cyBVVUlELlxuICAgICAqL1xuICAgIGFzeW5jIGNyZWF0ZUNsaWVudChjb25maWcsIG92ZXJyaWRlcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImNyZWF0ZUNsaWVudFwiLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQ2xpZW50KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2xpZW50U2VydmljZS5jcmVhdGVDbGllbnQoY29uZmlnLCBvdmVycmlkZXMsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBhZGRDbGllbnRSb2xlc1RvVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJhZGRDbGllbnRSb2xlc1RvVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMuYWRkQ2xpZW50Um9sZXNUb1VzZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmdyYW50Q2xpZW50Um9sZXNUb1VzZXIocmVhbG1OYW1lLCBjbGllbnRVVUlELCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZGVsZXRlQWRtaW5BcGlVc2VyKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVBZG1pbkFwaVVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZUFkbWluQXBpVXNlcik7XG4gICAgICAgIGNvbnN0IHJvb3RBY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oa2V5Y2xvYWtTZXR1cENvbmZpZy5yb290QXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuZGVsZXRlVXNlcihyb290QWNjZXNzVG9rZW4sIGtleWNsb2FrU2V0dXBDb25maWcuYWRtaW5BcGlVc2VyLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc2V0dXBPcmdhbml6YXRpb24oY29uZmlnLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBPcmdhbml6YXRpb25cIiwgdHJ1ZSkpLmZvcih0aGlzLnNldHVwT3JnYW5pemF0aW9uKTtcbiAgICAgICAgY29uc3QgZWZmZWN0aXZlQ29uZmlnID0gY29uZmlnID8/IHRoaXMuY29uZmlnO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbihlZmZlY3RpdmVDb25maWcuYWRtaW5BcGlVc2VyIHx8IHRoaXMuY29uZmlnLmFkbWluQXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLmNyZWF0ZVJlYWxtKGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIucmVhbG0sIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUNvbmZpZyA/PyB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMud2FpdEZvclJlYWxtKGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIucmVhbG0sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByZWFsbVVzZXJVVUlEID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVSZWFsbVVzZXIoZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLnVzZXJuYW1lVVVJRCA9IHJlYWxtVXNlclVVSUQ7XG4gICAgICAgIGNvbnN0IHJlYWxtTWFuYWdlbWVudFVVSUQgPSBhd2FpdCB0aGlzLmNsaWVudFNlcnZpY2UuZ2V0Q2xpZW50VVVJRChhZG1pbkFjY2Vzc1Rva2VuLCBlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLnJlYWxtLCBcInJlYWxtLW1hbmFnZW1lbnRcIiwgLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuYXNzaWduUm9sZXNUb1VzZXIoYC9hZG1pbi9yZWFsbXMvJHtlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLnJlYWxtfS9jbGllbnRzLyR7cmVhbG1NYW5hZ2VtZW50VVVJRH0vcm9sZXNgLCBgL2FkbWluL3JlYWxtcy8ke2VmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIucmVhbG19L3VzZXJzLyR7cmVhbG1Vc2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7cmVhbG1NYW5hZ2VtZW50VVVJRH1gLCBbXCJtYW5hZ2UtY2xpZW50c1wiLCBcIm1hbmFnZS1pZGVudGl0eS1wcm92aWRlcnNcIl0sIGFkbWluQWNjZXNzVG9rZW4sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjbGllbnRVVUlEID0gYXdhaXQgdGhpcy5jbGllbnRTZXJ2aWNlLmNyZWF0ZUNsaWVudChlZmZlY3RpdmVDb25maWcsIHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGVmZmVjdGl2ZUNvbmZpZy5jbGllbnQuY2xpZW50VVVJRCA9IGNsaWVudFVVSUQ7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlQ2xpZW50U2NvcGVzUm9sZXNNYXBwZXJzKGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gZWZmZWN0aXZlQ29uZmlnO1xuICAgIH1cbiAgICBhc3luYyBzZXR1cE9yZ2FuaXphdGlvblNTTyhrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBPcmdhbml6YXRpb25TU09cIiwgdHJ1ZSkpLmZvcih0aGlzLnNldHVwT3JnYW5pemF0aW9uU1NPKTtcbiAgICAgICAgYXdhaXQgdGhpcy5jbGllbnRTZXJ2aWNlLmNyZWF0ZUNsaWVudFJvbGVzKGtleWNsb2FrU2V0dXBDb25maWcsIHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gICAgICAgIGlmIChrZXljbG9ha1NldHVwQ29uZmlnLmlkZW50aXR5UHJvdmlkZXIpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UuY3JlYXRlSWRlbnRpdHlQcm92aWRlcihrZXljbG9ha1NldHVwQ29uZmlnLCB1bmRlZmluZWQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pZGVudGl0eVByb3ZpZGVyU2VydmljZS5jcmVhdGVJZGVudGl0eVByb3ZpZGVyTWFwcGVycyhrZXljbG9ha1NldHVwQ29uZmlnLCB1bmRlZmluZWQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHNldHVwQnJva2VySWRlbnRpdHlQcm92aWRlcihrZXljbG9ha1NldHVwQ29uZmlnLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBCcm9rZXJJZGVudGl0eVByb3ZpZGVyXCIsIHRydWUpKS5mb3IodGhpcy5zZXR1cEJyb2tlcklkZW50aXR5UHJvdmlkZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLmlkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLmNyZWF0ZUJyb2tlcklkZW50aXR5UHJvdmlkZXIoa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZU9yZ2FuaXphdGlvbihyZWFsbU5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVPcmdhbml6YXRpb25cIiwgdHJ1ZSkpLmZvcih0aGlzLmRlbGV0ZU9yZ2FuaXphdGlvbik7XG4gICAgICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLnJlbW92ZVJlYWxtKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IHRoaXMuaXNQcm9kdWN0aW9uKCksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIHdhaXRGb3JSZWFsbShyZWFsbU5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ3YWl0Rm9yUmVhbG1cIiwgdHJ1ZSkpLmZvcih0aGlzLndhaXRGb3JSZWFsbSk7XG4gICAgICAgIGNvbnN0IGRlYWRsaW5lID0gRGF0ZS5ub3coKSArIDE1MDAwO1xuICAgICAgICB3aGlsZSAoRGF0ZS5ub3coKSA8IGRlYWRsaW5lKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLmdldFJlYWxtKHJlYWxtTmFtZSwgLi4uY3R4QXJncyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2gge1xuICAgICAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwMCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBUaW1lZCBvdXQgd2FpdGluZyBmb3IgcmVhbG0gJHtyZWFsbU5hbWV9YCk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZUNsaWVudFNjb3Blc1JvbGVzTWFwcGVycyhrZXljbG9ha1VzZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgdGhpcy5sb2dDdHgoYXJncywgdGhpcy51cGRhdGVDbGllbnRTY29wZXNSb2xlc01hcHBlcnMpO1xuICAgICAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQodGhpcy5jb25maWcpO1xuICAgICAgICBjb25zdCByZWFsbUFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1VzZXIsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlc1Jlc3BvbnNlID0gYXdhaXQgY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9L2FkbWluL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vY2xpZW50LXNjb3Blc2AsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3JlYWxtQWNjZXNzVG9rZW59YCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNsaWVudFNjb3BlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2Uocm9sZXNSZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICAgICAgY29uc3Qgcm9sZXNTY29wZSA9IGNsaWVudFNjb3Blcy5maW5kKChzY29wZSkgPT4gc2NvcGUubmFtZSA9PT0gXCJyb2xlc1wiKTtcbiAgICAgICAgY29uc3QgY2xpZW50Um9sZXNNYXBwZXIgPSByb2xlc1Njb3BlPy5wcm90b2NvbE1hcHBlcnM/LmZpbmQoKG1hcHBlcikgPT4gbWFwcGVyLm5hbWUgPT09IFwiY2xpZW50IHJvbGVzXCIpO1xuICAgICAgICBpZiAoIXJvbGVzU2NvcGUgfHwgIWNsaWVudFJvbGVzTWFwcGVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihcIlVuYWJsZSB0byBmaW5kIGNsaWVudCByb2xlcyBtYXBwZXJcIik7XG4gICAgICAgIH1cbiAgICAgICAgY2xpZW50Um9sZXNNYXBwZXIuY29uZmlnW1wiaWQudG9rZW4uY2xhaW1cIl0gPSBcInRydWVcIjtcbiAgICAgICAgYXdhaXQgY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBVVFwiLFxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9L2FkbWluL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vY2xpZW50LXNjb3Blcy8ke3JvbGVzU2NvcGUuaWR9L3Byb3RvY29sLW1hcHBlcnMvbW9kZWxzLyR7Y2xpZW50Um9sZXNNYXBwZXIuaWR9YCxcbiAgICAgICAgICAgIGRhdGE6IEpTT04uc3RyaW5naWZ5KGNsaWVudFJvbGVzTWFwcGVyKSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cmVhbG1BY2Nlc3NUb2tlbn1gLFxuICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcGFyc2VKc29uUmVzcG9uc2UoZGF0YSkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59O1xuS2V5Y2xvYWtTZXJ2aWNlID0gX19kZWNvcmF0ZShbXG4gICAgZGVzY3JpcHRpb24oXCJPcmNoZXN0cmF0ZXMgS2V5Y2xvYWsgcmVhbG0vdXNlci9jbGllbnQgcHJvdmlzaW9uaW5nIGFjcm9zcyB0aGUgaW5uZXIgS2V5Y2xvYWsgc2VydmljZXNcIiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtdKVxuXSwgS2V5Y2xvYWtTZXJ2aWNlKTtcbmV4cG9ydCB7IEtleWNsb2FrU2VydmljZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUzJWNVkyeHZZV3RUWlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJ0bGVXTnNiMkZyTDNObGNuWnBZMlZ6TDB0bGVXTnNiMkZyVTJWeWRtbGpaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPenM3UVVGQlFTeFBRVUZQTEVWQlFVVXNWMEZCVnl4RlFVRkZMRTFCUVUwc2MwSkJRWE5DTEVOQlFVTTdRVUZEYmtRc1QwRkJUeXhGUVVOTUxHdENRVUZyUWl4RlFVZHNRaXhQUVVGUExFZEJRMUlzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVONFFpeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1JVRkJSU3hOUVVGTkxIbENRVUY1UWl4RFFVRkRPMEZCVFhaRkxFOUJRVThzUzBGQmQwSXNUVUZCVFN4UFFVRlBMRU5CUVVNN1FVRkROME1zVDBGQlR5eExRVUZMTEV0QlFVc3NUVUZCVFN4WlFVRlpMRU5CUVVNN1FVRkZjRU1zVDBGQlR5eEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxHdERRVUVyUWp0QlFVTTVSQ3hQUVVGUExFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc2FVTkJRVGhDTzBGQlF6VkVMRTlCUVU4c1JVRkJSU3h0UWtGQmJVSXNSVUZCUlN4cFEwRkJPRUk3UVVGRE5VUXNUMEZCVHl4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEcxRFFVRm5RenRCUVVOb1JTeFBRVUZQTEVWQlFVVXNLMEpCUVN0Q0xFVkJRVVVzTmtOQlFUQkRPMEZCUTNCR0xFOUJRVThzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hwUTBGQk9FSTdRVUZETlVRc1QwRkJUeXhGUVVGRkxEWkNRVUUyUWl4RlFVRkZMSEZDUVVGclFqdEJRVk51UkN4SlFVRk5MR1ZCUVdVc1IwRkJja0lzVFVGQlRTeGxRVUZuUWl4VFFVRlJMR3RDUVVkd1F6dEpRV0ZETzFGQlEwVXNTMEZCU3l4RlFVRkZMRU5CUVVNN1NVRkRWaXhEUVVGRE8wbEJSVk1zV1VGQldUdFJRVU53UWl4UFFVRlBMRU5CUVVNc1EwRkJReXhoUVVGaExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTXNVVUZCVVN4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1NVRkRNMFVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRM2hGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUTJoQ0xFTkJRVU03VVVGRFJpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGM1FpeERRVUZETzFGQlEycEVMRTFCUVUwc1lVRkJZU3hIUVVFclFqdFpRVU5vUkN4SFFVRkhMRTFCUVUwN1dVRkRWQ3haUVVGWkxFVkJRVVVzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8xTkJRek5ETEVOQlFVTTdVVUZEUml4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExHRkJRV0VzUTBGQlF6dFJRVU0zUWl3MlFrRkJOa0lzUTBGQlF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJUVkVMRWRCUVVjc1EwRkJReXhMUVVGTExFTkJRVU1zTWtKQlFUSkNMRU5CUVVNc1EwRkJRenRSUVVOMlF5eFBRVUZQTEVWQlFVVXNRMEZCUXl4dlFrRkJiMElzUTBGQlF5eERRVUZETzFGQlEyaERMRTlCUVU4c1JVRkJSU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1VVRkRMMElzVDBGQlR5eEZRVUZGTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFJRVU12UWl4UFFVRlBMRVZCUVVVc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4RFFVRkRPMUZCUTJwRExFOUJRVThzUlVGQlJTeERRVUZETEN0Q1FVRXJRaXhEUVVGRExFTkJRVU03VVVGRE0wTXNUMEZCVHl4RlFVRkZMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0UlFVVXZRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEdkRFFVRm5ReXhEUVVGRExFTkJRVU03VVVGRE5VTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1IwRkJSeXhKUVVGSkxHOUNRVUZ2UWl4RlFVRkZMRU5CUVVNN1VVRkRMME1zVFVGQlRTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRlZCUVZVc1EwRkJReXhoUVVGaExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTTVSQ3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVVzUTBGQlF6dFJRVU0zUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEdGQlFXRXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRemRFTEVsQlFVa3NRMEZCUXl4WFFVRlhMRWRCUVVjc1NVRkJTU3h0UWtGQmJVSXNSVUZCUlN4RFFVRkRPMUZCUXpkRExFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1lVRkJZU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETjBRc1NVRkJTU3hEUVVGRExHRkJRV0VzUjBGQlJ5eEpRVUZKTEhGQ1FVRnhRaXhGUVVGRkxFTkJRVU03VVVGRGFrUXNUVUZCVFN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExGVkJRVlVzUTBGQlF5eGhRVUZoTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNdlJDeEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFZEJRVWNzU1VGQlNTd3JRa0ZCSzBJc1JVRkJSU3hEUVVGRE8xRkJRM0pGTEUxQlFVMHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETEZWQlFWVXNRMEZCUXl4aFFVRmhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU42UlN4SlFVRkpMRU5CUVVNc1YwRkJWeXhIUVVGSExFbEJRVWtzYlVKQlFXMUNMRVZCUVVVc1EwRkJRenRSUVVNM1F5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUlRkRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTndSQ3hKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEUxQlFVMHNRMEZCUXp0UlFVTjBRaXhIUVVGSExFTkJRVU1zUzBGQlN5eERRVU5RTERaRFFVRTJReXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVRkZMRU5CUTNSRkxFTkJRVU03VVVGRFJpeFBRVUZQTEVWQlFVVXNUVUZCVFN4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRE8wbEJRelZDTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVOcVFpeHRRa0ZCZDBNc1JVRkRlRU1zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdWQlFXVXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGRGRFVXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkRia0lzUTBGQlF6dFJRVVZHTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMR05CUVdNc1EwRkROVVFzYlVKQlFXMUNMRU5CUVVNc1dVRkJZU3hGUVVOcVF5eEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOR0xHMUNRVUZ0UWl4RFFVRkRMRmxCUVdFc1EwRkJReXhaUVVGWkxFZEJRVWNzWjBKQlFXZENMRU5CUVVNN1VVRkRiRVVzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMSEZDUVVGeFFpeERRVU14UXl4dFFrRkJiVUlzUTBGQlF5eFpRVUZoTEVOQlFVTXNTMEZCU3l4RlFVTjJReXhuUWtGQlowSXNSVUZEYUVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGRFZDeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1QwRkJUeXh0UWtGQmJVSXNRMEZCUXp0SlFVTTNRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZEV2l4VFFVRnBRaXhGUVVOcVFpeFBRVUZaTEVWQlExb3NSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRlZCUVZVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZEYWtVc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGRFpDeERRVUZETzFGQlEwWXNUVUZCVFN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eFRRVUZUTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGJrVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRMklzVTBGQmFVSXNSVUZEYWtJc1QwRkJXU3hGUVVOYUxFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFhRVUZYTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRMnhGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTJZc1EwRkJRenRSUVVOR0xFMUJRVTBzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1UwRkJVeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTNCRkxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVTm1MRk5CUVdsQ0xFVkJRMnBDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4aFFVRmhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEzQkZMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRMnBDTEVOQlFVTTdVVUZEUml4TlFVRk5MRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zVjBGQlZ5eERRVUZETEZOQlFWTXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRemRFTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVOc1FpeFpRVUV3UWl4RlFVTXhRaXhQUVVGWkxFVkJRMW9zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEdkQ1FVRm5RaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVTjJSU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVU53UWl4RFFVRkRPMUZCUTBZc1QwRkJUeXhKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEdOQlFXTXNRMEZCUXl4WlFVRlpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETlVVc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlExb3NVMEZCYVVJc1JVRkRha0lzVVVGQlowSXNSVUZEYUVJc1QwRkJXU3hGUVVOYUxFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeFZRVUZWTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRMnBGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUTJRc1EwRkJRenRSUVVOR0xFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4UlFVRlJMRU5CUVVNc1UwRkJVeXhGUVVGRkxGRkJRVkVzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNMVJTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRzFDUVVGdFFpeERRVU4yUWl4VFFVRnBRaXhGUVVOcVFpeFJRVUZuUWl4RlFVTm9RaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEhGQ1FVRnhRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU55UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRSUVVOb1F5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRkZCUVZFc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6bEZMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUTNaQ0xGTkJRV2xDTEVWQlEycENMRkZCUVdkQ0xFVkJRMmhDTEZOQlFXMUNMRVZCUTI1Q0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNjVUpCUVhGQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlEzSkVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8xRkJRMmhETEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXh4UWtGQmNVSXNRMEZETVVNc1UwRkJVeXhGUVVOVUxGRkJRVkVzUlVGRFVpeFRRVUZUTEVWQlExUXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJEczdUMEZGUnp0SlFVTklMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRMjVDTEZOQlFXbENMRVZCUTJwQ0xGRkJRV2RDTEVWQlEyaENMR05CUVc5RExFVkJRM0JETEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkRlRVVzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZEY2tJc1EwRkJRenRSUVVOR0xFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4bFFVRmxMRU5CUTNCRExGTkJRVk1zUlVGRFZDeFJRVUZSTEVWQlExSXNZMEZCWXl4RlFVTmtMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUTdPMDlCUlVjN1NVRkRTQ3hMUVVGTExFTkJRVU1zV1VGQldTeERRVU5vUWl4TlFVRXlRaXhGUVVNelFpeFRRVUYxUlN4RlFVTjJSU3hIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzWTBGQll5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVOeVJTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVTnNRaXhEUVVGRE8xRkJRMFlzVDBGQlR5eEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRmxCUVZrc1EwRkJReXhOUVVGTkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkRlRVVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4dlFrRkJiMElzUTBGRGVFSXNVMEZCYVVJc1JVRkRha0lzVlVGQmEwSXNSVUZEYkVJc1VVRkJaMElzUlVGRGFFSXNVMEZCYlVJc1JVRkRia0lzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4elFrRkJjMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEZEVRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRVU03VVVGRGFrTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExITkNRVUZ6UWl4RFFVTXpReXhUUVVGVExFVkJRMVFzVlVGQlZTeEZRVU5XTEZGQlFWRXNSVUZEVWl4VFFVRlRMRVZCUTFRc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlEzUkNMRzFDUVVGM1F5eEZRVU40UXl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHOUNRVUZ2UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOd1JDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlFVTXNRMEZCUXp0UlFVTXZRaXhOUVVGTkxHVkJRV1VzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1kwRkJZeXhEUVVNelJDeHRRa0ZCYlVJc1EwRkJReXhYUVVGWkxFVkJRMmhETEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVTXZRaXhsUVVGbExFVkJRMllzYlVKQlFXMUNMRU5CUVVNc1dVRkJZU3hGUVVOcVF5eEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHBRa0ZCYVVJc1EwRkRja0lzVFVGQk5FSXNSVUZETlVJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGJrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRkRMRU5CUVVNN1VVRkRPVUlzVFVGQlRTeGxRVUZsTEVkQlFVY3NUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRk9VTXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1kwRkJZeXhEUVVNMVJDeGxRVUZsTEVOQlFVTXNXVUZCV1N4SlFVRkpMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zV1VGQllTeEZRVU42UkN4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8xRkJSVVlzVFVGQlRTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRMRmRCUVZjc1EwRkRha01zWlVGQlpTeERRVUZETEZsQlFXRXNRMEZCUXl4TFFVRkxMRVZCUTI1RExHVkJRV1VzUTBGQlF5eFhRVUZYTEVsQlFVa3NSVUZCUlN4RlFVTnFReXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExHVkJRV1VzUTBGQlF5eFpRVUZoTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRmVrVXNUVUZCVFN4aFFVRmhMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEdWQlFXVXNRMEZETVVRc1pVRkJaU3hEUVVGRExGbEJRV0VzUlVGRE4wSXNSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeGxRVUZsTEVOQlFVTXNXVUZCWVN4RFFVRkRMRmxCUVZrc1IwRkJSeXhoUVVGaExFTkJRVU03VVVGRk0wUXNUVUZCVFN4dFFrRkJiVUlzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4aFFVRmhMRU5CUVVNc1lVRkJZU3hEUVVOb1JTeG5Ra0ZCWjBJc1JVRkRhRUlzWlVGQlpTeERRVUZETEZsQlFXRXNRMEZCUXl4TFFVRkxMRVZCUTI1RExHdENRVUZyUWl4RlFVTnNRaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlEwWXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExHbENRVUZwUWl4RFFVTjBReXhwUWtGQmFVSXNaVUZCWlN4RFFVRkRMRmxCUVdFc1EwRkJReXhMUVVGTExGbEJRVmtzYlVKQlFXMUNMRkZCUVZFc1JVRkRNMFlzYVVKQlFXbENMR1ZCUVdVc1EwRkJReXhaUVVGaExFTkJRVU1zUzBGQlN5eFZRVUZWTEdGQlFXRXNNRUpCUVRCQ0xHMUNRVUZ0UWl4RlFVRkZMRVZCUXpGSUxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc01rSkJRVEpDTEVOQlFVTXNSVUZETDBNc1owSkJRV2RDTEVWQlEyaENMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRlJpeE5RVUZOTEZWQlFWVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zV1VGQldTeERRVU4wUkN4bFFVRmxMRVZCUTJZc1UwRkJVeXhGUVVOVUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4bFFVRmxMRU5CUVVNc1RVRkJUU3hEUVVGRExGVkJRVlVzUjBGQlJ5eFZRVUZWTEVOQlFVTTdVVUZGTDBNc1RVRkJUU3hKUVVGSkxFTkJRVU1zT0VKQlFUaENMRU5CUTNaRExHVkJRV1VzUTBGQlF5eFpRVUZoTEVWQlF6ZENMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRlJpeFBRVUZQTEdWQlFXVXNRMEZCUXp0SlFVTjZRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEc5Q1FVRnZRaXhEUVVONFFpeHRRa0ZCZDBNc1JVRkRlRU1zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4elFrRkJjMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEZEVRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEc5Q1FVRnZRaXhEUVVGRExFTkJRVU03VVVGRmFrTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExHbENRVUZwUWl4RFFVTjRReXh0UWtGQmJVSXNSVUZEYmtJc1UwRkJVeXhGUVVOVUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4SlFVRkpMRzFDUVVGdFFpeERRVUZETEdkQ1FVRm5RaXhGUVVGRkxFTkJRVU03V1VGRGVrTXNUVUZCVFN4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVOQlFVTXNjMEpCUVhOQ0xFTkJRM1pFTEcxQ1FVRnRRaXhGUVVOdVFpeFRRVUZUTEVWQlExUXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRaUVVOR0xFMUJRVTBzU1VGQlNTeERRVUZETEhWQ1FVRjFRaXhEUVVGRExEWkNRVUUyUWl4RFFVTTVSQ3h0UWtGQmJVSXNSVUZEYmtJc1UwRkJVeXhGUVVOVUxFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEU2l4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5d3lRa0ZCTWtJc1EwRkRMMElzYlVKQlFUaERMRVZCUXpsRExFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNOa0pCUVRaQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6ZEVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhEUVVGRE8xRkJRM2hETEUxQlFVMHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETERSQ1FVRTBRaXhEUVVNM1JDeHRRa0ZCYlVJc1JVRkRia0lzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUTNSQ0xGTkJRV2xDTEVWQlEycENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzYjBKQlFXOUNMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRM0JFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMUZCUXk5Q0xFMUJRVTBzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZETjBRc1EwRkJRenRKUVVWUExHZENRVUZuUWl4RFFVRkRMRTFCUVRKQ08xRkJRMnhFTEU5QlFVOHNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJRenRaUVVOc1FpeFBRVUZQTEVWQlFVVXNSMEZCUnl4TlFVRk5MRU5CUVVNc1VVRkJVU3hOUVVGTkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVTdXVUZET1VNc1QwRkJUeXhGUVVGRkxFVkJRVVVzWTBGQll5eEZRVUZGTEd0Q1FVRnJRaXhGUVVGRk8xbEJReTlETEdOQlFXTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xbEJRekZDTEZWQlFWVXNSVUZCUlN4SlFVRkpMRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRVU03WjBKQlF6RkNMR3RDUVVGclFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVN1lVRkRlRU1zUTBGQlF6dFRRVU5JTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZUeXhMUVVGTExFTkJRVU1zV1VGQldTeERRVU40UWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZMEZCWXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVU55UlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVOc1FpeERRVUZETzFGQlJVWXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXp0UlFVTndReXhQUVVGUExFbEJRVWtzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVNM1FpeEpRVUZKTEVOQlFVTTdaMEpCUTBnc1RVRkJUU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dG5Ra0ZEZUVRc1QwRkJUenRaUVVOVUxFTkJRVU03V1VGQlF5eE5RVUZOTEVOQlFVTTdaMEpCUTFBc1RVRkJUU3hKUVVGSkxFOUJRVThzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExFOUJRVThzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMWxCUXpORUxFTkJRVU03VVVGRFNDeERRVUZETzFGQlEwUXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXdyUWtGQkswSXNVMEZCVXl4RlFVRkZMRU5CUVVNc1EwRkJRenRKUVVOMFJTeERRVUZETzBsQlJVOHNTMEZCU3l4RFFVRkRMRGhDUVVFNFFpeERRVU14UXl4WlFVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFYbENPMUZCUlRWQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXc0UWtGQk9FSXNRMEZCUXl4RFFVRkRPMUZCUlhaRUxFMUJRVTBzVFVGQlRTeEhRVUZITEVsQlFVa3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkRiRVFzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNZMEZCWXl4RFFVTTFSQ3haUVVGWkxFVkJRMW9zUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0UlFVTkdMRTFCUVUwc1lVRkJZU3hIUVVGSExFMUJRVTBzVFVGQlRTeERRVUZETEU5QlFVOHNRMEZCUXp0WlFVTjZReXhOUVVGTkxFVkJRVVVzUzBGQlN6dFpRVU5pTEVkQlFVY3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVVVGQlVTeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hwUWtGQmFVSXNXVUZCV1N4RFFVRkRMRXRCUVVzc1owSkJRV2RDTzFsQlEzSkhMRTlCUVU4c1JVRkJSVHRuUWtGRFVDeGhRVUZoTEVWQlFVVXNWVUZCVlN4blFrRkJaMElzUlVGQlJUdGhRVU0xUXp0WlFVTkVMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFOQlF6TkNMRU5CUVVNc1EwRkJRenRSUVVOSUxFMUJRVTBzV1VGQldTeEhRVU5vUWl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlZYQkNMR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZET1VJc1RVRkJUU3hWUVVGVkxFZEJRVWNzV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEVsQlFVa3NTMEZCU3l4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVONFJTeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExGVkJRVlVzUlVGQlJTeGxRVUZsTEVWQlFVVXNTVUZCU1N4RFFVTjZSQ3hEUVVGRExFMUJRVTBzUlVGQlJTeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1MwRkJTeXhqUVVGakxFTkJRek5ETEVOQlFVTTdVVUZEUml4SlFVRkpMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRVZCUVVVc1EwRkJRenRaUVVOMFF5eE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRzlEUVVGdlF5eERRVUZETEVOQlFVTTdVVUZEYUVVc1EwRkJRenRSUVVORUxHbENRVUZwUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOd1JDeE5RVUZOTEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNN1dVRkRia0lzVFVGQlRTeEZRVUZGTEV0QlFVczdXVUZEWWl4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzYVVKQlFXbENMRmxCUVZrc1EwRkJReXhMUVVGTExHdENRVUZyUWl4VlFVRlZMRU5CUVVNc1JVRkJSU3cwUWtGQk5FSXNhVUpCUVdsQ0xFTkJRVU1zUlVGQlJTeEZRVUZGTzFsQlEzUkxMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEdsQ1FVRnBRaXhEUVVGRE8xbEJRM1pETEU5QlFVOHNSVUZCUlR0blFrRkRVQ3hoUVVGaExFVkJRVVVzVlVGQlZTeG5Ra0ZCWjBJc1JVRkJSVHRuUWtGRE0wTXNZMEZCWXl4RlFVRkZMR3RDUVVGclFqdGhRVU51UXp0WlFVTkVMR05CUVdNc1JVRkJSU3hIUVVGSExFVkJRVVVzUTBGQlF5eEpRVUZKTzFOQlF6TkNMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03U1VGRlR5eHBRa0ZCYVVJc1EwRkJTU3hKUVVGaE8xRkJRM2hETEVsQlFVa3NUMEZCVHl4SlFVRkpMRXRCUVVzc1VVRkJVU3hGUVVGRkxFTkJRVU03V1VGRE4wSXNTVUZCU1N4RFFVRkRPMmRDUVVOSUxFOUJRVThzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVUwc1EwRkJRenRaUVVNdlFpeERRVUZETzFsQlFVTXNUVUZCVFN4RFFVRkRPMmRDUVVOUUxFOUJRVThzVTBGQlV5eERRVUZETzFsQlEyNUNMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJRMFFzVDBGQlR5eEpRVUZUTEVOQlFVTTdTVUZEYmtJc1EwRkJRenREUVVOR0xFTkJRVUU3UVVFMVlsa3NaVUZCWlR0SlFVZ3pRaXhYUVVGWExFTkJRMVlzZVVaQlFYbEdMRU5CUXpGR096dEhRVU5aTEdWQlFXVXNRMEUwWWpOQ0lpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lhVzF3YjNKMElIc2daR1Z6WTNKcGNIUnBiMjRnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVOc2FXVnVkRUpoYzJWa1UyVnlkbWxqWlN4Y2JpQWdRMjl1ZEdWNGRIVmhiRUZ5WjNNc1hHNGdJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaeXhjYmlBZ2MyVnlkbWxqWlN4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QkpiblJsY201aGJFVnljbTl5TENCT2IzUkdiM1Z1WkVWeWNtOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN1hHNGdJRXRsZVdOc2IyRnJRbkp2YTJWeVUyVjBkWEJEYjI1bWFXY3NYRzRnSUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjc1hHNGdJRXRsZVdOc2IyRnJWWE5sY2l4Y2JuMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdRWGhwYjNNc0lIc2dRWGhwYjNOSmJuTjBZVzVqWlNCOUlHWnliMjBnWENKaGVHbHZjMXdpTzF4dWFXMXdiM0owSUNvZ1lYTWdhSFIwY0hNZ1puSnZiU0JjSW01dlpHVTZhSFIwY0hOY0lqdGNibHh1YVcxd2IzSjBJSHNnUzJWNVkyeHZZV3RTWldGc2JWTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpOUxaWGxqYkc5aGExSmxZV3h0VTJWeWRtbGpaVndpTzF4dWFXMXdiM0owSUhzZ1MyVjVZMnh2WVd0VmMyVnlVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSXVMMHRsZVdOc2IyRnJWWE5sY2xObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lFdGxlV05zYjJGclVtOXNaVk5sY25acFkyVWdmU0JtY205dElGd2lMaTlMWlhsamJHOWhhMUp2YkdWVFpYSjJhV05sWENJN1hHNXBiWEJ2Y25RZ2V5QkxaWGxqYkc5aGEwTnNhV1Z1ZEZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5TFpYbGpiRzloYTBOc2FXVnVkRk5sY25acFkyVmNJanRjYm1sdGNHOXlkQ0I3SUV0bGVXTnNiMkZyU1dSbGJuUnBkSGxRY205MmFXUmxjbE5sY25acFkyVWdmU0JtY205dElGd2lMaTlMWlhsamJHOWhhMGxrWlc1MGFYUjVVSEp2ZG1sa1pYSlRaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJMWlhsamJHOWhhMEYxZEdoVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dlMyVjVZMnh2WVd0QmRYUm9VMlZ5ZG1salpWd2lPMXh1YVcxd2IzSjBJSHNnYzJWMFMyVjVZMnh2WVd0UWNtOWtkV04wYVc5dVVtVnpiMngyWlhJZ2ZTQm1jbTl0SUZ3aUxpOXlkVzUwYVcxbFhDSTdYRzVjYm5SNWNHVWdTMlY1WTJ4dllXdFNkVzUwYVcxbFUyVjBkWEJEYjI1bWFXY2dQU0JMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuSUNZZ2UxeHVJQ0JwYzFCeWIyUjFZM1JwYjI0b0tUb2dZbTl2YkdWaGJqdGNibjA3WEc1Y2JrQmtaWE5qY21sd2RHbHZiaWhjYmlBZ1hDSlBjbU5vWlhOMGNtRjBaWE1nUzJWNVkyeHZZV3NnY21WaGJHMHZkWE5sY2k5amJHbGxiblFnY0hKdmRtbHphVzl1YVc1bklHRmpjbTl6Y3lCMGFHVWdhVzV1WlhJZ1MyVjVZMnh2WVdzZ2MyVnlkbWxqWlhOY0lseHVLVnh1Wlhod2IzSjBJR05zWVhOeklFdGxlV05zYjJGclUyVnlkbWxqWlNCbGVIUmxibVJ6SUVOc2FXVnVkRUpoYzJWa1UyVnlkbWxqWlR4Y2JpQWdRWGhwYjNOSmJuTjBZVzVqWlN4Y2JpQWdTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaMXh1UGlCN1hHNGdJSEJ5YjNSbFkzUmxaQ0J5WldGc2JWTmxjblpwWTJVaE9pQkxaWGxqYkc5aGExSmxZV3h0VTJWeWRtbGpaVHRjYmx4dUlDQndjbTkwWldOMFpXUWdkWE5sY2xObGNuWnBZMlVoT2lCTFpYbGpiRzloYTFWelpYSlRaWEoyYVdObE8xeHVYRzRnSUhCeWIzUmxZM1JsWkNCeWIyeGxVMlZ5ZG1salpTRTZJRXRsZVdOc2IyRnJVbTlzWlZObGNuWnBZMlU3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR05zYVdWdWRGTmxjblpwWTJVaE9pQkxaWGxqYkc5aGEwTnNhV1Z1ZEZObGNuWnBZMlU3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR2xrWlc1MGFYUjVVSEp2ZG1sa1pYSlRaWEoyYVdObElUb2dTMlY1WTJ4dllXdEpaR1Z1ZEdsMGVWQnliM1pwWkdWeVUyVnlkbWxqWlR0Y2JseHVJQ0J3Y205MFpXTjBaV1FnWVhWMGFGTmxjblpwWTJVaE9pQkxaWGxqYkc5aGEwRjFkR2hUWlhKMmFXTmxPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLQ2tnZTF4dUlDQWdJSE4xY0dWeUtDazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnYVhOUWNtOWtkV04wYVc5dUtDazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lISmxkSFZ5YmlBaFcxd2laR1YyWld4dmNHMWxiblJjSWl3Z1hDSnNiMk5oYkZ3aVhTNXBibU5zZFdSbGN5aHdjbTlqWlhOekxtVnVkbHRjSWs1UFJFVmZSVTVXWENKZElEOC9JRndpWENJcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2FXNXBkR2xoYkdsNlpTaGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIc2dZMjl1Wm1sbk9pQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PeUJqYkdsbGJuUTZJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNBb1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKcGJtbDBhV0ZzYVhwbFhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtbHVhWFJwWVd4cGVtVmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJR052Ym1acFp5QTlJR04wZUVGeVozTmJNRjBnWVhNZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCamIyNXpkQ0J5ZFc1MGFXMWxRMjl1Wm1sbk9pQkxaWGxqYkc5aGExSjFiblJwYldWVFpYUjFjRU52Ym1acFp5QTlJSHRjYmlBZ0lDQWdJQzR1TG1OdmJtWnBaeXhjYmlBZ0lDQWdJR2x6VUhKdlpIVmpkR2x2YmpvZ2RHaHBjeTVwYzFCeWIyUjFZM1JwYjI0dVltbHVaQ2gwYUdsektTeGNiaUFnSUNCOU8xeHVJQ0FnSUhSb2FYTXVYMk52Ym1acFp5QTlJSEoxYm5ScGJXVkRiMjVtYVdjN1hHNGdJQ0FnYzJWMFMyVjVZMnh2WVd0UWNtOWtkV04wYVc5dVVtVnpiMngyWlhJb2RHaHBjeTVwYzFCeWIyUjFZM1JwYjI0dVltbHVaQ2gwYUdsektTazdYRzVjYmlBZ0lDQnNiMmN1WkdWaWRXY29ZRUpwYm1ScGJtY2dhVzV1WlhJZ2MyVnlkbWxqWlhNdUxpNWdLVHRjYmlBZ0lDQnpaWEoyYVdObEtDa29TMlY1WTJ4dllXdFNaV0ZzYlZObGNuWnBZMlVwTzF4dUlDQWdJSE5sY25acFkyVW9LU2hMWlhsamJHOWhhMVZ6WlhKVFpYSjJhV05sS1R0Y2JpQWdJQ0J6WlhKMmFXTmxLQ2tvUzJWNVkyeHZZV3RTYjJ4bFUyVnlkbWxqWlNrN1hHNGdJQ0FnYzJWeWRtbGpaU2dwS0V0bGVXTnNiMkZyUTJ4cFpXNTBVMlZ5ZG1salpTazdYRzRnSUNBZ2MyVnlkbWxqWlNncEtFdGxlV05zYjJGclNXUmxiblJwZEhsUWNtOTJhV1JsY2xObGNuWnBZMlVwTzF4dUlDQWdJSE5sY25acFkyVW9LU2hMWlhsamJHOWhhMEYxZEdoVFpYSjJhV05sS1R0Y2JseHVJQ0FnSUd4dlp5NWtaV0oxWnloZ1NXNXBkR2xoYkdsNmFXNW5JR2x1Ym1WeUlITmxjblpwWTJWekxpNHVZQ2s3WEc0Z0lDQWdkR2hwY3k1eVpXRnNiVk5sY25acFkyVWdQU0J1WlhjZ1MyVjVZMnh2WVd0U1pXRnNiVk5sY25acFkyVW9LVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsWVd4dFUyVnlkbWxqWlM1cGJtbDBhV0ZzYVhwbEtISjFiblJwYldWRGIyNW1hV2NzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUhSb2FYTXVkWE5sY2xObGNuWnBZMlVnUFNCdVpYY2dTMlY1WTJ4dllXdFZjMlZ5VTJWeWRtbGpaU2dwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11ZFhObGNsTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCMGFHbHpMbkp2YkdWVFpYSjJhV05sSUQwZ2JtVjNJRXRsZVdOc2IyRnJVbTlzWlZObGNuWnBZMlVvS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KdmJHVlRaWEoyYVdObExtbHVhWFJwWVd4cGVtVW9jblZ1ZEdsdFpVTnZibVpwWnl3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ2RHaHBjeTVqYkdsbGJuUlRaWEoyYVdObElEMGdibVYzSUV0bGVXTnNiMkZyUTJ4cFpXNTBVMlZ5ZG1salpTZ3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MFUyVnlkbWxqWlM1cGJtbDBhV0ZzYVhwbEtISjFiblJwYldWRGIyNW1hV2NzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUhSb2FYTXVhV1JsYm5ScGRIbFFjbTkyYVdSbGNsTmxjblpwWTJVZ1BTQnVaWGNnUzJWNVkyeHZZV3RKWkdWdWRHbDBlVkJ5YjNacFpHVnlVMlZ5ZG1salpTZ3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVhV1JsYm5ScGRIbFFjbTkyYVdSbGNsTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCMGFHbHpMbUYxZEdoVFpYSjJhV05sSUQwZ2JtVjNJRXRsZVdOc2IyRnJRWFYwYUZObGNuWnBZMlVvS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1GMWRHaFRaWEoyYVdObExtbHVhWFJwWVd4cGVtVW9jblZ1ZEdsdFpVTnZibVpwWnl3Z0xpNHVZM1I0UVhKbmN5azdYRzVjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblFnUFNCMGFHbHpMbU55WldGMFpVaDBkSEJEYkdsbGJuUW9jblZ1ZEdsdFpVTnZibVpwWnlrN1hHNGdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdZMnhwWlc1ME8xeHVJQ0FnSUd4dlp5NWtaV0oxWnloY2JpQWdJQ0FnSUdCTFpYbGpiRzloYXlCVFpYSjJhV05sSUdsdWFYUnBZV3hwZW1Wa0lIZHBkR2dnWTI5dVptbG5PaUFrZTBwVFQwNHVjM1J5YVc1bmFXWjVLR052Ym1acFp5bDlZRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhzZ1kyOXVabWxuTENCamJHbGxiblFnZlR0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhObGRIVndTMlY1WTJ4dllXc29YRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2MrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5ObGRIVndTMlY1WTJ4dllXdGNJaXdnZEhKMVpTa3BMbVp2Y2loY2JpQWdJQ0FnSUhSb2FYTXVjMlYwZFhCTFpYbGpiRzloYTF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmhaRzFwYmtGd2FWVnpaWEpWVlVsRUlEMGdZWGRoYVhRZ2RHaHBjeTUxYzJWeVUyVnlkbWxqWlM1aFpHUlZjMlZ5Vkc5U1pXRnNiU2hjYmlBZ0lDQWdJR3RsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2N1WVdSdGFXNUJjR2xWYzJWeUlTeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5NWhaRzFwYmtGd2FWVnpaWEloTG5WelpYSnVZVzFsVlZWSlJDQTlJR0ZrYldsdVFYQnBWWE5sY2xWVlNVUTdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXliMnhsVTJWeWRtbGpaUzVuY21GdWRGSmxZV3h0VW05c1pYTlViMVZ6WlhJb1hHNGdJQ0FnSUNCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjaUV1Y21WaGJHMHNYRzRnSUNBZ0lDQmhaRzFwYmtGd2FWVnpaWEpWVlVsRUxGeHVJQ0FnSUNBZ1cxd2lZV1J0YVc1Y0lsMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnp0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdGa1pGSmxZV3h0S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltRmtaRkpsWVd4dFhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtRmtaRkpsWVd4dFhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbFlXeHRVMlZ5ZG1salpTNWhaR1JTWldGc2JTaHlaV0ZzYlU1aGJXVXNJSEJoZVd4dllXUXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWldScGRGSmxZV3h0S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltVmthWFJTWldGc2JWd2lMQ0IwY25WbEtTa3VabTl5S0Z4dUlDQWdJQ0FnZEdocGN5NWxaR2wwVW1WaGJHMWNiaUFnSUNBcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVmhiRzFUWlhKMmFXTmxMbVZrYVhSU1pXRnNiU2h5WldGc2JVNWhiV1VzSUhCaGVXeHZZV1FzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVnRiM1psVW1WaGJHMG9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0p5WlcxdmRtVlNaV0ZzYlZ3aUxDQjBjblZsS1NrdVptOXlLRnh1SUNBZ0lDQWdkR2hwY3k1eVpXMXZkbVZTWldGc2JWeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1eVpXRnNiVk5sY25acFkyVXVjbVZ0YjNabFVtVmhiRzBvY21WaGJHMU9ZVzFsTENBdUxpNWpkSGhCY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHRmtaRlZ6WlhKVWIxSmxZV3h0S0Z4dUlDQWdJR3RsZVdOc2IyRnJWWE5sY2pvZ1MyVjVZMnh2WVd0VmMyVnlMRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZV1JrVlhObGNsUnZVbVZoYkcxY0lpd2dkSEoxWlNrcExtWnZjaWhjYmlBZ0lDQWdJSFJvYVhNdVlXUmtWWE5sY2xSdlVtVmhiRzFjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ6WlhKVFpYSjJhV05sTG1Ga1pGVnpaWEpVYjFKbFlXeHRLR3RsZVdOc2IyRnJWWE5sY2l3Z2NHRjViRzloWkN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmxaR2wwVlhObGNpaGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0IxYzJWeVZWVkpSRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltVmthWFJWYzJWeVhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtVmthWFJWYzJWeVhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5WelpYSlRaWEoyYVdObExtVmthWFJWYzJWeUtISmxZV3h0VG1GdFpTd2dkWE5sY2xWVlNVUXNJSEJoZVd4dllXUXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WdGIzWmxWWE5sY2taeWIyMVNaV0ZzYlNoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQjFjMlZ5VlZWSlJEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0p5WlcxdmRtVlZjMlZ5Um5KdmJWSmxZV3h0WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV5WlcxdmRtVlZjMlZ5Um5KdmJWSmxZV3h0S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5WelpYSlRaWEoyYVdObExuSmxiVzkyWlZWelpYSkdjbTl0VW1WaGJHMG9jbVZoYkcxT1lXMWxMQ0IxYzJWeVZWVkpSQ3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCaFpHUlNaV0ZzYlZKdmJHVnpWRzlWYzJWeUtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSFZ6WlhKVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtOXNaVTVoYldWek9pQnpkSEpwYm1kYlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWVdSa1VtVmhiRzFTYjJ4bGMxUnZWWE5sY2x3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WVdSa1VtVmhiRzFTYjJ4bGMxUnZWWE5sY2lrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1eWIyeGxVMlZ5ZG1salpTNW5jbUZ1ZEZKbFlXeHRVbTlzWlhOVWIxVnpaWElvWEc0Z0lDQWdJQ0J5WldGc2JVNWhiV1VzWEc0Z0lDQWdJQ0IxYzJWeVZWVkpSQ3hjYmlBZ0lDQWdJSEp2YkdWT1lXMWxjeXhjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaWE1nWVNCeVpXRnNiUzFzWlhabGJDQnliMnhsTENCdmNIUnBiMjVoYkd4NUlHRnpJR0VnWTI5dGNHOXphWFJsSUc5bUlHVjRhWE4wYVc1bklISnZiR1Z6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWTNKbFlYUmxVbVZoYkcxU2IyeGxLRnh1SUNBZ0lISmxZV3h0VG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUhKdmJHVk9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdZMjl0Y0c5emFYUmxVbTlzWlhNNklITjBjbWx1WjF0ZElId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVkzSmxZWFJsVW1WaGJHMVNiMnhsWENJc0lIUnlkV1VwS1M1bWIzSW9YRzRnSUNBZ0lDQjBhR2x6TG1OeVpXRjBaVkpsWVd4dFVtOXNaVnh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXliMnhsVTJWeWRtbGpaUzVqY21WaGRHVlNaV0ZzYlZKdmJHVW9YRzRnSUNBZ0lDQnlaV0ZzYlU1aGJXVXNYRzRnSUNBZ0lDQnliMnhsVG1GdFpTeGNiaUFnSUNBZ0lHTnZiWEJ2YzJsMFpWSnZiR1Z6TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsY3lCaElHTnNhV1Z1ZENCcGJpQjBhR1VnWTI5dVptbG5kWEpsWkNCeVpXRnNiU0JoYm1RZ2NtVjBkWEp1Y3lCcGRITWdWVlZKUkM1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdOeVpXRjBaVU5zYVdWdWRDaGNiaUFnSUNCamIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjc1hHNGdJQ0FnYjNabGNuSnBaR1Z6T2lCUVlYSjBhV0ZzUEdsdGNHOXlkQ2hjSWk0dUwzUjVjR1Z6WENJcExrdGxlV05zYjJGclEyeHBaVzUwUTI5dVptbG5QaUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhOMGNtbHVaejRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWTNKbFlYUmxRMnhwWlc1MFhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtTnlaV0YwWlVOc2FXVnVkRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMnhwWlc1MFUyVnlkbWxqWlM1amNtVmhkR1ZEYkdsbGJuUW9ZMjl1Wm1sbkxDQnZkbVZ5Y21sa1pYTXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWVdSa1EyeHBaVzUwVW05c1pYTlViMVZ6WlhJb1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdZMnhwWlc1MFZWVkpSRG9nYzNSeWFXNW5MRnh1SUNBZ0lIVnpaWEpWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnY205c1pVNWhiV1Z6T2lCemRISnBibWRiWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZV1JrUTJ4cFpXNTBVbTlzWlhOVWIxVnpaWEpjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbUZrWkVOc2FXVnVkRkp2YkdWelZHOVZjMlZ5S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KdmJHVlRaWEoyYVdObExtZHlZVzUwUTJ4cFpXNTBVbTlzWlhOVWIxVnpaWElvWEc0Z0lDQWdJQ0J5WldGc2JVNWhiV1VzWEc0Z0lDQWdJQ0JqYkdsbGJuUlZWVWxFTEZ4dUlDQWdJQ0FnZFhObGNsVlZTVVFzWEc0Z0lDQWdJQ0J5YjJ4bFRtRnRaWE1zWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR1JsYkdWMFpVRmtiV2x1UVhCcFZYTmxjaWhjYmlBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSmtaV3hsZEdWQlpHMXBia0Z3YVZWelpYSmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtUmxiR1YwWlVGa2JXbHVRWEJwVlhObGNpazdYRzRnSUNBZ1kyOXVjM1FnY205dmRFRmpZMlZ6YzFSdmEyVnVJRDBnWVhkaGFYUWdkR2hwY3k1aGRYUm9VMlZ5ZG1salpTNW5aWFJCWTJObGMzTlViMnRsYmloY2JpQWdJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtOXZkRUZ3YVZWelpYSWhMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NTFjMlZ5VTJWeWRtbGpaUzVrWld4bGRHVlZjMlZ5S0Z4dUlDQWdJQ0FnY205dmRFRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTVoWkcxcGJrRndhVlZ6WlhJaExGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCelpYUjFjRTl5WjJGdWFYcGhkR2x2YmloY2JpQWdJQ0JqYjI1bWFXYy9PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4UzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKelpYUjFjRTl5WjJGdWFYcGhkR2x2Ymx3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11YzJWMGRYQlBjbWRoYm1sNllYUnBiMjRwTzF4dUlDQWdJR052Ym5OMElHVm1abVZqZEdsMlpVTnZibVpwWnlBOUlHTnZibVpwWnlBL1B5QjBhR2x6TG1OdmJtWnBaenRjYmx4dUlDQWdJR052Ym5OMElHRmtiV2x1UVdOalpYTnpWRzlyWlc0Z1BTQmhkMkZwZENCMGFHbHpMbUYxZEdoVFpYSjJhV05sTG1kbGRFRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lDQWdaV1ptWldOMGFYWmxRMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjaUI4ZkNCMGFHbHpMbU52Ym1acFp5NWhaRzFwYmtGd2FWVnpaWEloTEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbFlXeHRVMlZ5ZG1salpTNWpjbVZoZEdWU1pXRnNiU2hjYmlBZ0lDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEloTG5KbFlXeHRMRnh1SUNBZ0lDQWdaV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0UTI5dVptbG5JRDgvSUh0OUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1M1lXbDBSbTl5VW1WaGJHMG9aV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjaUV1Y21WaGJHMHNJQzR1TG1OMGVFRnlaM01wTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZoYkcxVmMyVnlWVlZKUkNBOUlHRjNZV2wwSUhSb2FYTXVkWE5sY2xObGNuWnBZMlV1WTNKbFlYUmxVbVZoYkcxVmMyVnlLRnh1SUNBZ0lDQWdaV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjaUVzWEc0Z0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEloTG5WelpYSnVZVzFsVlZWSlJDQTlJSEpsWVd4dFZYTmxjbFZWU1VRN1hHNWNiaUFnSUNCamIyNXpkQ0J5WldGc2JVMWhibUZuWlcxbGJuUlZWVWxFSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5SVFpYSjJhV05sTG1kbGRFTnNhV1Z1ZEZWVlNVUW9YRzRnSUNBZ0lDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ1pXWm1aV04wYVhabFEyOXVabWxuTG5KbFlXeHRRWEJwVlhObGNpRXVjbVZoYkcwc1hHNGdJQ0FnSUNCY0luSmxZV3h0TFcxaGJtRm5aVzFsYm5SY0lpeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtOXNaVk5sY25acFkyVXVZWE56YVdkdVVtOXNaWE5VYjFWelpYSW9YRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UyVm1abVZqZEdsMlpVTnZibVpwWnk1eVpXRnNiVUZ3YVZWelpYSWhMbkpsWVd4dGZTOWpiR2xsYm5Sekx5UjdjbVZoYkcxTllXNWhaMlZ0Wlc1MFZWVkpSSDB2Y205c1pYTmdMRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdGxabVpsWTNScGRtVkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlJUzV5WldGc2JYMHZkWE5sY25NdkpIdHlaV0ZzYlZWelpYSlZWVWxFZlM5eWIyeGxMVzFoY0hCcGJtZHpMMk5zYVdWdWRITXZKSHR5WldGc2JVMWhibUZuWlcxbGJuUlZWVWxFZldBc1hHNGdJQ0FnSUNCYlhDSnRZVzVoWjJVdFkyeHBaVzUwYzF3aUxDQmNJbTFoYm1GblpTMXBaR1Z1ZEdsMGVTMXdjbTkyYVdSbGNuTmNJbDBzWEc0Z0lDQWdJQ0JoWkcxcGJrRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblJWVlVsRUlEMGdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUlRaWEoyYVdObExtTnlaV0YwWlVOc2FXVnVkQ2hjYmlBZ0lDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5eGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdWbVptVmpkR2wyWlVOdmJtWnBaeTVqYkdsbGJuUXVZMnhwWlc1MFZWVkpSQ0E5SUdOc2FXVnVkRlZWU1VRN1hHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuVndaR0YwWlVOc2FXVnVkRk5qYjNCbGMxSnZiR1Z6VFdGd2NHVnljeWhjYmlBZ0lDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEloTEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaV1ptWldOMGFYWmxRMjl1Wm1sbk8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2MyVjBkWEJQY21kaGJtbDZZWFJwYjI1VFUwOG9YRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWMyVjBkWEJQY21kaGJtbDZZWFJwYjI1VFUwOWNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxuTmxkSFZ3VDNKbllXNXBlbUYwYVc5dVUxTlBLVHRjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11WTJ4cFpXNTBVMlZ5ZG1salpTNWpjbVZoZEdWRGJHbGxiblJTYjJ4bGN5aGNiaUFnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9hMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTVwWkdWdWRHbDBlVkJ5YjNacFpHVnlLU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG1sa1pXNTBhWFI1VUhKdmRtbGtaWEpUWlhKMmFXTmxMbU55WldGMFpVbGtaVzUwYVhSNVVISnZkbWxrWlhJb1hHNGdJQ0FnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWFXUmxiblJwZEhsUWNtOTJhV1JsY2xObGNuWnBZMlV1WTNKbFlYUmxTV1JsYm5ScGRIbFFjbTkyYVdSbGNrMWhjSEJsY25Nb1hHNGdJQ0FnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ6WlhSMWNFSnliMnRsY2tsa1pXNTBhWFI1VUhKdmRtbGtaWElvWEc0Z0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaem9nUzJWNVkyeHZZV3RDY205clpYSlRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWMyVjBkWEJDY205clpYSkpaR1Z1ZEdsMGVWQnliM1pwWkdWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1elpYUjFjRUp5YjJ0bGNrbGtaVzUwYVhSNVVISnZkbWxrWlhJcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWFXUmxiblJwZEhsUWNtOTJhV1JsY2xObGNuWnBZMlV1WTNKbFlYUmxRbkp2YTJWeVNXUmxiblJwZEhsUWNtOTJhV1JsY2loY2JpQWdJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdSbGJHVjBaVTl5WjJGdWFYcGhkR2x2YmloY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVpHVnNaWFJsVDNKbllXNXBlbUYwYVc5dVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1a1pXeGxkR1ZQY21kaGJtbDZZWFJwYjI0cE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVmhiRzFUWlhKMmFXTmxMbkpsYlc5MlpWSmxZV3h0S0hKbFlXeHRUbUZ0WlN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR055WldGMFpVaDBkSEJEYkdsbGJuUW9ZMjl1Wm1sbk9pQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5LVG9nUVhocGIzTkpibk4wWVc1alpTQjdYRzRnSUNBZ2NtVjBkWEp1SUVGNGFXOXpMbU55WldGMFpTaDdYRzRnSUNBZ0lDQmlZWE5sVlZKTU9pQmdKSHRqYjI1bWFXY3VjSEp2ZEc5amIyeDlPaTh2Skh0amIyNW1hV2N1YUc5emRIMWdMRnh1SUNBZ0lDQWdhR1ZoWkdWeWN6b2dleUJjSWtOdmJuUmxiblF0Vkhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwycHpiMjVjSWlCOUxGeHVJQ0FnSUNBZ2RtRnNhV1JoZEdWVGRHRjBkWE02SUNncElEMCtJSFJ5ZFdVc1hHNGdJQ0FnSUNCb2RIUndjMEZuWlc1ME9pQnVaWGNnYUhSMGNITXVRV2RsYm5Rb2UxeHVJQ0FnSUNBZ0lDQnlaV3BsWTNSVmJtRjFkR2h2Y21sNlpXUTZJSFJvYVhNdWFYTlFjbTlrZFdOMGFXOXVLQ2tzWEc0Z0lDQWdJQ0I5S1N4Y2JpQWdJQ0I5S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYTjVibU1nZDJGcGRFWnZjbEpsWVd4dEtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lkMkZwZEVadmNsSmxZV3h0WENJc0lIUnlkV1VwS1M1bWIzSW9YRzRnSUNBZ0lDQjBhR2x6TG5kaGFYUkdiM0pTWldGc2JWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0JrWldGa2JHbHVaU0E5SUVSaGRHVXVibTkzS0NrZ0t5QXhOVEF3TUR0Y2JpQWdJQ0IzYUdsc1pTQW9SR0YwWlM1dWIzY29LU0E4SUdSbFlXUnNhVzVsS1NCN1hHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbFlXeHRVMlZ5ZG1salpTNW5aWFJTWldGc2JTaHlaV0ZzYlU1aGJXVXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JSHRjYmlBZ0lDQWdJQ0FnWVhkaGFYUWdibVYzSUZCeWIyMXBjMlVvS0hKbGMyOXNkbVVwSUQwK0lITmxkRlJwYldWdmRYUW9jbVZ6YjJ4MlpTd2dOVEF3S1NrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dUlDQWdJSFJvY205M0lHNWxkeUJKYm5SbGNtNWhiRVZ5Y205eUtHQlVhVzFsWkNCdmRYUWdkMkZwZEdsdVp5Qm1iM0lnY21WaGJHMGdKSHR5WldGc2JVNWhiV1Y5WUNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHRnplVzVqSUhWd1pHRjBaVU5zYVdWdWRGTmpiM0JsYzFKdmJHVnpUV0Z3Y0dWeWN5aGNiaUFnSUNCclpYbGpiRzloYTFWelpYSTZJRXRsZVdOc2IyRnJWWE5sY2l4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJEYjI1MFpYaDBkV0ZzUVhKbmN6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVkWEJrWVhSbFEyeHBaVzUwVTJOdmNHVnpVbTlzWlhOTllYQndaWEp6S1R0Y2JseHVJQ0FnSUdOdmJuTjBJR05zYVdWdWRDQTlJSFJvYVhNdVkzSmxZWFJsU0hSMGNFTnNhV1Z1ZENoMGFHbHpMbU52Ym1acFp5azdYRzRnSUNBZ1kyOXVjM1FnY21WaGJHMUJZMk5sYzNOVWIydGxiaUE5SUdGM1lXbDBJSFJvYVhNdVlYVjBhRk5sY25acFkyVXVaMlYwUVdOalpYTnpWRzlyWlc0b1hHNGdJQ0FnSUNCclpYbGpiRzloYTFWelpYSXNYRzRnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQnliMnhsYzFKbGMzQnZibk5sSUQwZ1lYZGhhWFFnWTJ4cFpXNTBMbkpsY1hWbGMzUW9lMXh1SUNBZ0lDQWdiV1YwYUc5a09pQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ2RYSnNPaUJnSkh0MGFHbHpMbU52Ym1acFp5NXdjbTkwYjJOdmJIMDZMeThrZTNSb2FYTXVZMjl1Wm1sbkxtaHZjM1I5TDJGa2JXbHVMM0psWVd4dGN5OGtlMnRsZVdOc2IyRnJWWE5sY2k1eVpXRnNiWDB2WTJ4cFpXNTBMWE5qYjNCbGMyQXNYRzRnSUNBZ0lDQm9aV0ZrWlhKek9pQjdYRzRnSUNBZ0lDQWdJRUYxZEdodmNtbDZZWFJwYjI0NklHQkNaV0Z5WlhJZ0pIdHlaV0ZzYlVGalkyVnpjMVJ2YTJWdWZXQXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdkbUZzYVdSaGRHVlRkR0YwZFhNNklDZ3BJRDArSUhSeWRXVXNYRzRnSUNBZ2ZTazdYRzRnSUNBZ1kyOXVjM1FnWTJ4cFpXNTBVMk52Y0dWeklEMWNiaUFnSUNBZ0lIUm9hWE11Y0dGeWMyVktjMjl1VW1WemNHOXVjMlU4WEc0Z0lDQWdJQ0FnSUVGeWNtRjVQSHRjYmlBZ0lDQWdJQ0FnSUNCcFpEb2djM1J5YVc1bk8xeHVJQ0FnSUNBZ0lDQWdJRzVoYldVNklITjBjbWx1Wnp0Y2JpQWdJQ0FnSUNBZ0lDQndjbTkwYjJOdmJFMWhjSEJsY25NL09pQkJjbkpoZVR4N1hHNGdJQ0FnSUNBZ0lDQWdJQ0JwWkRvZ2MzUnlhVzVuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdibUZ0WlRvZ2MzUnlhVzVuTzF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl1Wm1sbk9pQlNaV052Y21ROGMzUnlhVzVuTENCemRISnBibWMrTzF4dUlDQWdJQ0FnSUNBZ0lIMCtPMXh1SUNBZ0lDQWdJQ0I5UGx4dUlDQWdJQ0FnUGloeWIyeGxjMUpsYzNCdmJuTmxMbVJoZEdFcElEOC9JRnRkTzF4dUlDQWdJR052Ym5OMElISnZiR1Z6VTJOdmNHVWdQU0JqYkdsbGJuUlRZMjl3WlhNdVptbHVaQ2dvYzJOdmNHVXBJRDArSUhOamIzQmxMbTVoYldVZ1BUMDlJRndpY205c1pYTmNJaWs3WEc0Z0lDQWdZMjl1YzNRZ1kyeHBaVzUwVW05c1pYTk5ZWEJ3WlhJZ1BTQnliMnhsYzFOamIzQmxQeTV3Y205MGIyTnZiRTFoY0hCbGNuTS9MbVpwYm1Rb1hHNGdJQ0FnSUNBb2JXRndjR1Z5S1NBOVBpQnRZWEJ3WlhJdWJtRnRaU0E5UFQwZ1hDSmpiR2xsYm5RZ2NtOXNaWE5jSWx4dUlDQWdJQ2s3WEc0Z0lDQWdhV1lnS0NGeWIyeGxjMU5qYjNCbElIeDhJQ0ZqYkdsbGJuUlNiMnhsYzAxaGNIQmxjaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUU1dmRFWnZkVzVrUlhKeWIzSW9YQ0pWYm1GaWJHVWdkRzhnWm1sdVpDQmpiR2xsYm5RZ2NtOXNaWE1nYldGd2NHVnlYQ0lwTzF4dUlDQWdJSDFjYmlBZ0lDQmpiR2xsYm5SU2IyeGxjMDFoY0hCbGNpNWpiMjVtYVdkYlhDSnBaQzUwYjJ0bGJpNWpiR0ZwYlZ3aVhTQTlJRndpZEhKMVpWd2lPMXh1SUNBZ0lHRjNZV2wwSUdOc2FXVnVkQzV5WlhGMVpYTjBLSHRjYmlBZ0lDQWdJRzFsZEdodlpEb2dYQ0pRVlZSY0lpeGNiaUFnSUNBZ0lIVnliRG9nWUNSN2RHaHBjeTVqYjI1bWFXY3VjSEp2ZEc5amIyeDlPaTh2Skh0MGFHbHpMbU52Ym1acFp5NW9iM04wZlM5aFpHMXBiaTl5WldGc2JYTXZKSHRyWlhsamJHOWhhMVZ6WlhJdWNtVmhiRzE5TDJOc2FXVnVkQzF6WTI5d1pYTXZKSHR5YjJ4bGMxTmpiM0JsTG1sa2ZTOXdjbTkwYjJOdmJDMXRZWEJ3WlhKekwyMXZaR1ZzY3k4a2UyTnNhV1Z1ZEZKdmJHVnpUV0Z3Y0dWeUxtbGtmV0FzWEc0Z0lDQWdJQ0JrWVhSaE9pQktVMDlPTG5OMGNtbHVaMmxtZVNoamJHbGxiblJTYjJ4bGMwMWhjSEJsY2lrc1hHNGdJQ0FnSUNCb1pXRmtaWEp6T2lCN1hHNGdJQ0FnSUNBZ0lFRjFkR2h2Y21sNllYUnBiMjQ2SUdCQ1pXRnlaWElnSkh0eVpXRnNiVUZqWTJWemMxUnZhMlZ1ZldBc1hHNGdJQ0FnSUNBZ0lGd2lRMjl1ZEdWdWRDMVVlWEJsWENJNklGd2lZWEJ3YkdsallYUnBiMjR2YW5OdmJsd2lMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJSFpoYkdsa1lYUmxVM1JoZEhWek9pQW9LU0E5UGlCMGNuVmxMRnh1SUNBZ0lIMHBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0J3WVhKelpVcHpiMjVTWlhOd2IyNXpaVHhVUGloa1lYUmhPaUIxYm10dWIzZHVLVG9nVkNCOElIVnVaR1ZtYVc1bFpDQjdYRzRnSUNBZ2FXWWdLSFI1Y0dWdlppQmtZWFJoSUQwOVBTQmNJbk4wY21sdVoxd2lLU0I3WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1NsTlBUaTV3WVhKelpTaGtZWFJoS1NCaGN5QlVPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJrWVhSaElHRnpJRlE3WEc0Z0lIMWNibjFjYmlKZGZRPT0iXX0=
|
|
267
|
+
//# sourceMappingURL=KeycloakService.js.map
|
|
268
|
+
//# sourceMappingURL=KeycloakService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keycloak/services/KeycloakService.cjs","sourceRoot":"","sources":["keycloak/services/KeycloakService.js"],"names":[],"mappings":"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"}
|