p6-cdk-s3-protector 0.0.50 → 0.0.52
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/.jsii +68 -10
- package/README.md +1 -1
- package/lib/p6cdks3protector.js +3 -3
- package/node_modules/@aws/lambda-invoke-store/dist-cjs/invoke-store.js +2 -7
- package/node_modules/@aws/lambda-invoke-store/dist-es/invoke-store.js +2 -7
- package/node_modules/@aws/lambda-invoke-store/dist-types/invoke-store.d.ts +3 -4
- package/node_modules/@aws/lambda-invoke-store/package.json +2 -1
- package/node_modules/@aws-sdk/client-s3/README.md +13 -107
- package/node_modules/@aws-sdk/client-s3/dist-cjs/auth/httpAuthSchemeProvider.js +8 -9
- package/node_modules/@aws-sdk/client-s3/dist-cjs/endpoint/ruleset.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-cjs/index.js +2507 -8983
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.js +7 -12
- package/node_modules/@aws-sdk/client-s3/dist-cjs/runtimeConfig.shared.js +7 -5
- package/node_modules/@aws-sdk/client-s3/dist-es/S3.js +4 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/S3Client.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/auth/httpAuthSchemeProvider.js +8 -9
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketMetadataConfigurationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketMetadataTableConfigurationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/CreateSessionCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketAnalyticsConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCorsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketEncryptionCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketIntelligentTieringConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketInventoryConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketLifecycleCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetadataConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetadataTableConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetricsConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketOwnershipControlsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketPolicyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketReplicationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketTaggingCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketWebsiteCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/DeletePublicAccessBlockCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAbacCommand.js +23 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAccelerateConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAclCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAnalyticsConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketCorsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketEncryptionCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketIntelligentTieringConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketInventoryConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLifecycleConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLocationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLoggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetadataConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetadataTableConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetricsConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketNotificationConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketOwnershipControlsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyStatusCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketReplicationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketRequestPaymentCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketVersioningCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketWebsiteCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAclCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAttributesCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLegalHoldCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLockConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectRetentionCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTorrentCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/GetPublicAccessBlockCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadBucketCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketAnalyticsConfigurationsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketIntelligentTieringConfigurationsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketInventoryConfigurationsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketMetricsConfigurationsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListDirectoryBucketsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListMultipartUploadsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectVersionsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAbacCommand.js +26 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAnalyticsConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketIntelligentTieringConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketMetricsConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketNotificationConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketOwnershipControlsCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/RenameObjectCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/SelectObjectContentCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/UpdateBucketMetadataJournalTableConfigurationCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCopyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/WriteGetObjectResponseCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-es/commands/index.js +2 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js +2 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/index.js +3 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/models/enums.js +7 -0
- package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.js +8 -13
- package/node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js +7 -5
- package/node_modules/@aws-sdk/client-s3/dist-es/schemas/schemas_0.js +1680 -8790
- package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/S3.d.ts +15 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/S3Client.d.ts +16 -23
- package/node_modules/@aws-sdk/client-s3/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/auth/httpAuthSchemeProvider.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/AbortMultipartUploadCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CompleteMultipartUploadCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CopyObjectCommand.d.ts +9 -9
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketCommand.d.ts +4 -9
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateBucketMetadataTableConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateMultipartUploadCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/CreateSessionCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketAnalyticsConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketCorsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketEncryptionCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketInventoryConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketLifecycleCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetadataTableConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketMetricsConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketOwnershipControlsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketPolicyCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketReplicationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketTaggingCommand.d.ts +5 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteBucketWebsiteCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectTaggingCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeleteObjectsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +9 -7
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAbacCommand.d.ts +77 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAccelerateConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAclCommand.d.ts +4 -11
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketAnalyticsConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketCorsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketEncryptionCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketInventoryConfigurationCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLocationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketLoggingCommand.d.ts +4 -11
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetadataTableConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketMetricsConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketNotificationConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketOwnershipControlsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketPolicyStatusCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketReplicationCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketRequestPaymentCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketTaggingCommand.d.ts +4 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketVersioningCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetBucketWebsiteCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAclCommand.d.ts +4 -11
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectAttributesCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLegalHoldCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectLockConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectRetentionCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTaggingCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetObjectTorrentCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/GetPublicAccessBlockCommand.d.ts +17 -12
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadBucketCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/HeadObjectCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketAnalyticsConfigurationsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketIntelligentTieringConfigurationsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketInventoryConfigurationsCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketMetricsConfigurationsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListBucketsCommand.d.ts +4 -11
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListDirectoryBucketsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListMultipartUploadsCommand.d.ts +5 -12
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectVersionsCommand.d.ts +4 -11
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsCommand.d.ts +5 -12
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListObjectsV2Command.d.ts +5 -12
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/ListPartsCommand.d.ts +5 -12
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAbacCommand.d.ts +78 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAccelerateConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAclCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketAnalyticsConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketCorsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketEncryptionCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketIntelligentTieringConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketInventoryConfigurationCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketLoggingCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketMetricsConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketNotificationConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketOwnershipControlsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketPolicyCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketReplicationCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketRequestPaymentCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketTaggingCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketVersioningCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutBucketWebsiteCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectAclCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectCommand.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLegalHoldCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectLockConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectRetentionCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutObjectTaggingCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/PutPublicAccessBlockCommand.d.ts +10 -8
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/RenameObjectCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/RestoreObjectCommand.d.ts +5 -5
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/SelectObjectContentCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataInventoryTableConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/UpdateBucketMetadataJournalTableConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCommand.d.ts +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/UploadPartCopyCommand.d.ts +6 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/WriteGetObjectResponseCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/commands/index.d.ts +2 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/endpoint/EndpointParameters.d.ts +16 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/endpoint/endpointResolver.d.ts +5 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/extensionConfiguration.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3/dist-types/index.d.ts +3 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/models/S3ServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/models/enums.d.ts +15 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/models/errors.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/models/models_0.d.ts +96 -198
- package/node_modules/@aws-sdk/client-s3/dist-types/models/models_1.d.ts +101 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/pagination/Interfaces.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListBucketsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListDirectoryBucketsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListObjectsV2Paginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/pagination/ListPartsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.browser.d.ts +10 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.d.ts +10 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.native.d.ts +10 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeConfig.shared.d.ts +6 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/runtimeExtensions.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/schemas/schemas_0.d.ts +451 -496
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3.d.ts +34 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/S3Client.d.ts +18 -10
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/auth/httpAuthSchemeProvider.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetBucketAbacCommand.d.ts +47 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetObjectCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/GetObjectTorrentCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/PutBucketAbacCommand.d.ts +45 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/commands/index.d.ts +2 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +6 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/index.d.ts +1 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/S3ServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/enums.d.ts +9 -0
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_0.d.ts +18 -22
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/models/models_1.d.ts +25 -2
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.browser.d.ts +15 -7
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.d.ts +15 -7
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.native.d.ts +15 -7
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/runtimeConfig.shared.d.ts +7 -5
- package/node_modules/@aws-sdk/client-s3/dist-types/ts3.4/schemas/schemas_0.d.ts +451 -497
- package/node_modules/@aws-sdk/client-s3/package.json +53 -52
- package/node_modules/@aws-sdk/client-s3-control/README.md +1 -102
- package/node_modules/@aws-sdk/client-s3-control/dist-cjs/auth/httpAuthSchemeProvider.js +3 -4
- package/node_modules/@aws-sdk/client-s3-control/dist-cjs/index.js +2298 -4469
- package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.js +5 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-cjs/runtimeConfig.shared.js +7 -5
- package/node_modules/@aws-sdk/client-s3-control/dist-es/S3ControlClient.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/auth/httpAuthSchemeProvider.js +3 -4
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/AssociateAccessGrantsIdentityCenterCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantsInstanceCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessGrantsLocationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessPointCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateAccessPointForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateBucketCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateJobCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateMultiRegionAccessPointCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/CreateStorageLensGroupCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsInstanceCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsInstanceResourcePolicyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessGrantsLocationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointPolicyCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointPolicyForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteAccessPointScopeCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketLifecycleConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketPolicyCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketReplicationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteBucketTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteJobTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteMultiRegionAccessPointCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeletePublicAccessBlockCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensConfigurationTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DeleteStorageLensGroupCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DescribeJobCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DescribeMultiRegionAccessPointOperationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/DissociateAccessGrantsIdentityCenterCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceForPrefixCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsInstanceResourcePolicyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessGrantsLocationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointConfigurationForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyStatusCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointPolicyStatusForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetAccessPointScopeCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketLifecycleConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketPolicyCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketReplicationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetBucketVersioningCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetDataAccessCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetJobTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointPolicyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointPolicyStatusCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetMultiRegionAccessPointRoutesCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetPublicAccessBlockCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensConfigurationTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/GetStorageLensGroupCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsInstancesCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessGrantsLocationsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsForDirectoryBucketsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListAccessPointsForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListCallerAccessGrantsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListJobsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListMultiRegionAccessPointsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListRegionalBucketsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListStorageLensConfigurationsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListStorageLensGroupsCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/ListTagsForResourceCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessGrantsInstanceResourcePolicyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointConfigurationForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointPolicyCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointPolicyForObjectLambdaCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutAccessPointScopeCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketLifecycleConfigurationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketPolicyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketReplicationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketTaggingCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutBucketVersioningCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutJobTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutMultiRegionAccessPointPolicyCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutPublicAccessBlockCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutStorageLensConfigurationCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/PutStorageLensConfigurationTaggingCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/SubmitMultiRegionAccessPointRoutesCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/TagResourceCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UntagResourceCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateAccessGrantsLocationCommand.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateJobPriorityCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateJobStatusCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/commands/UpdateStorageLensGroupCommand.js +6 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-es/index.js +3 -0
- package/node_modules/@aws-sdk/client-s3-control/dist-es/pagination/index.js +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.js +6 -9
- package/node_modules/@aws-sdk/client-s3-control/dist-es/runtimeConfig.shared.js +7 -5
- package/node_modules/@aws-sdk/client-s3-control/dist-es/schemas/schemas_0.js +1552 -4315
- package/node_modules/@aws-sdk/client-s3-control/dist-types/S3Control.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/S3ControlClient.d.ts +11 -20
- package/node_modules/@aws-sdk/client-s3-control/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/AssociateAccessGrantsIdentityCenterCommand.d.ts +6 -16
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantCommand.d.ts +6 -15
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantsInstanceCommand.d.ts +6 -14
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessGrantsLocationCommand.d.ts +7 -17
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessPointCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateAccessPointForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateBucketCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateJobCommand.d.ts +5 -9
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateMultiRegionAccessPointCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/CreateStorageLensGroupCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantCommand.d.ts +5 -10
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsInstanceCommand.d.ts +5 -13
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsInstanceResourcePolicyCommand.d.ts +5 -11
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessGrantsLocationCommand.d.ts +5 -13
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointPolicyCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteAccessPointScopeCommand.d.ts +7 -11
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketLifecycleConfigurationCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketPolicyCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketReplicationCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteBucketTaggingCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteJobTaggingCommand.d.ts +8 -10
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteMultiRegionAccessPointCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeletePublicAccessBlockCommand.d.ts +8 -7
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensConfigurationCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensConfigurationTaggingCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DeleteStorageLensGroupCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DescribeJobCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DescribeMultiRegionAccessPointOperationCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/DissociateAccessGrantsIdentityCenterCommand.d.ts +5 -10
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceForPrefixCommand.d.ts +6 -11
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsInstanceResourcePolicyCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessGrantsLocationCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointConfigurationForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyStatusCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointPolicyStatusForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetAccessPointScopeCommand.d.ts +6 -9
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketLifecycleConfigurationCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketPolicyCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketReplicationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketTaggingCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetBucketVersioningCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetDataAccessCommand.d.ts +6 -15
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetJobTaggingCommand.d.ts +8 -9
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointPolicyCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointPolicyStatusCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetMultiRegionAccessPointRoutesCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetPublicAccessBlockCommand.d.ts +6 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensConfigurationCommand.d.ts +43 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensConfigurationTaggingCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/GetStorageLensGroupCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsInstancesCommand.d.ts +5 -11
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessGrantsLocationsCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsForDirectoryBucketsCommand.d.ts +5 -10
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListAccessPointsForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListCallerAccessGrantsCommand.d.ts +5 -18
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListJobsCommand.d.ts +6 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListMultiRegionAccessPointsCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListRegionalBucketsCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListStorageLensConfigurationsCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListStorageLensGroupsCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/ListTagsForResourceCommand.d.ts +13 -17
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessGrantsInstanceResourcePolicyCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointConfigurationForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointPolicyCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointPolicyForObjectLambdaCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutAccessPointScopeCommand.d.ts +6 -13
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketLifecycleConfigurationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketPolicyCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketReplicationCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketTaggingCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutBucketVersioningCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutJobTaggingCommand.d.ts +7 -9
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutMultiRegionAccessPointPolicyCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutPublicAccessBlockCommand.d.ts +8 -7
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutStorageLensConfigurationCommand.d.ts +43 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/PutStorageLensConfigurationTaggingCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/SubmitMultiRegionAccessPointRoutesCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/TagResourceCommand.d.ts +10 -33
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UntagResourceCommand.d.ts +12 -16
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateAccessGrantsLocationCommand.d.ts +4 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateJobPriorityCommand.d.ts +6 -8
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateJobStatusCommand.d.ts +6 -7
- package/node_modules/@aws-sdk/client-s3-control/dist-types/commands/UpdateStorageLensGroupCommand.d.ts +3 -6
- package/node_modules/@aws-sdk/client-s3-control/dist-types/endpoint/EndpointParameters.d.ts +13 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/endpoint/endpointResolver.d.ts +5 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-types/extensionConfiguration.d.ts +4 -4
- package/node_modules/@aws-sdk/client-s3-control/dist-types/index.d.ts +3 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/models/S3ControlServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/models/errors.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/models/models_0.d.ts +354 -623
- package/node_modules/@aws-sdk/client-s3-control/dist-types/models/models_1.d.ts +48 -0
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/Interfaces.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsInstancesPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsLocationsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessGrantsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsForDirectoryBucketsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsForObjectLambdaPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListAccessPointsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListCallerAccessGrantsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListJobsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListMultiRegionAccessPointsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListRegionalBucketsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListStorageLensConfigurationsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/ListStorageLensGroupsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/pagination/index.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.browser.d.ts +7 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.d.ts +7 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.native.d.ts +7 -3
- package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeConfig.shared.d.ts +6 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-types/runtimeExtensions.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/schemas/schemas_0.d.ts +413 -460
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/S3ControlClient.d.ts +3 -7
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UpdateJobStatusCommand.d.ts +2 -4
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/commands/UpdateStorageLensGroupCommand.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/index.d.ts +2 -0
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/S3ControlServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/models_0.d.ts +18 -10
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/models/models_1.d.ts +12 -0
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/pagination/index.d.ts +2 -2
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -7
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.d.ts +9 -7
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -7
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/runtimeConfig.shared.d.ts +7 -5
- package/node_modules/@aws-sdk/client-s3-control/dist-types/ts3.4/schemas/schemas_0.d.ts +413 -461
- package/node_modules/@aws-sdk/client-s3-control/package.json +43 -42
- package/node_modules/@aws-sdk/client-sso/README.md +1 -9
- package/node_modules/@aws-sdk/client-sso/dist-cjs/auth/httpAuthSchemeProvider.js +27 -20
- package/node_modules/@aws-sdk/client-sso/dist-cjs/index.js +105 -199
- package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.js +5 -8
- package/node_modules/@aws-sdk/client-sso/dist-cjs/runtimeConfig.shared.js +6 -1
- package/node_modules/@aws-sdk/client-sso/dist-es/SSOClient.js +2 -2
- package/node_modules/@aws-sdk/client-sso/dist-es/auth/httpAuthSchemeProvider.js +27 -20
- package/node_modules/@aws-sdk/client-sso/dist-es/commands/GetRoleCredentialsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountRolesCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sso/dist-es/commands/ListAccountsCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sso/dist-es/commands/LogoutCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sso/dist-es/index.js +2 -0
- package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.js +6 -9
- package/node_modules/@aws-sdk/client-sso/dist-es/runtimeConfig.shared.js +6 -1
- package/node_modules/@aws-sdk/client-sso/dist-es/schemas/schemas_0.js +73 -186
- package/node_modules/@aws-sdk/client-sso/dist-types/SSO.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/SSOClient.d.ts +10 -19
- package/node_modules/@aws-sdk/client-sso/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
- package/node_modules/@aws-sdk/client-sso/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
- package/node_modules/@aws-sdk/client-sso/dist-types/commands/GetRoleCredentialsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountRolesCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/commands/ListAccountsCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/commands/LogoutCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/endpoint/EndpointParameters.d.ts +13 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/endpoint/endpointResolver.d.ts +5 -2
- package/node_modules/@aws-sdk/client-sso/dist-types/extensionConfiguration.d.ts +4 -4
- package/node_modules/@aws-sdk/client-sso/dist-types/index.d.ts +2 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/models/SSOServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/models/errors.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/pagination/Interfaces.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/pagination/ListAccountRolesPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/pagination/ListAccountsPaginator.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.browser.d.ts +7 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.d.ts +7 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.native.d.ts +7 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeConfig.shared.d.ts +8 -3
- package/node_modules/@aws-sdk/client-sso/dist-types/runtimeExtensions.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/schemas/schemas_0.d.ts +20 -26
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/SSOClient.d.ts +2 -6
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/index.d.ts +1 -0
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/models/SSOServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -5
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.d.ts +9 -5
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -5
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/runtimeConfig.shared.d.ts +9 -4
- package/node_modules/@aws-sdk/client-sso/dist-types/ts3.4/schemas/schemas_0.d.ts +19 -27
- package/node_modules/@aws-sdk/client-sso/package.json +37 -36
- package/node_modules/@aws-sdk/client-sts/README.md +1 -17
- package/node_modules/@aws-sdk/client-sts/dist-cjs/auth/httpAuthSchemeProvider.js +15 -12
- package/node_modules/@aws-sdk/client-sts/dist-cjs/index.js +301 -353
- package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.js +6 -10
- package/node_modules/@aws-sdk/client-sts/dist-cjs/runtimeConfig.shared.js +7 -6
- package/node_modules/@aws-sdk/client-sts/dist-es/STSClient.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/auth/httpAuthSchemeProvider.js +15 -12
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithSAMLCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRoleWithWebIdentityCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/AssumeRootCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/DecodeAuthorizationMessageCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetAccessKeyInfoCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetCallerIdentityCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetDelegatedAccessTokenCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetFederationTokenCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetSessionTokenCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/commands/GetWebIdentityTokenCommand.js +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/defaultStsRoleAssumers.js +3 -2
- package/node_modules/@aws-sdk/client-sts/dist-es/index.js +2 -0
- package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.browser.js +3 -4
- package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.js +7 -11
- package/node_modules/@aws-sdk/client-sts/dist-es/runtimeConfig.shared.js +7 -6
- package/node_modules/@aws-sdk/client-sts/dist-es/schemas/schemas_0.js +205 -310
- package/node_modules/@aws-sdk/client-sts/dist-types/STS.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/STSClient.d.ts +10 -19
- package/node_modules/@aws-sdk/client-sts/dist-types/auth/httpAuthExtensionConfiguration.d.ts +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-types/auth/httpAuthSchemeProvider.d.ts +2 -2
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithSAMLCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRoleWithWebIdentityCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/AssumeRootCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/DecodeAuthorizationMessageCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetAccessKeyInfoCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetCallerIdentityCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetDelegatedAccessTokenCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetFederationTokenCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetSessionTokenCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/commands/GetWebIdentityTokenCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/endpoint/EndpointParameters.d.ts +13 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/endpoint/endpointResolver.d.ts +5 -2
- package/node_modules/@aws-sdk/client-sts/dist-types/extensionConfiguration.d.ts +4 -4
- package/node_modules/@aws-sdk/client-sts/dist-types/index.d.ts +2 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/models/STSServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/models/errors.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.browser.d.ts +7 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.d.ts +8 -4
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.native.d.ts +7 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeConfig.shared.d.ts +8 -3
- package/node_modules/@aws-sdk/client-sts/dist-types/runtimeExtensions.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/schemas/schemas_0.d.ts +53 -63
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/STSClient.d.ts +3 -7
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/auth/httpAuthExtensionConfiguration.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/auth/httpAuthSchemeProvider.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/index.d.ts +1 -0
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/models/STSServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.browser.d.ts +9 -5
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.d.ts +9 -5
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.native.d.ts +9 -5
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/runtimeConfig.shared.d.ts +9 -4
- package/node_modules/@aws-sdk/client-sts/dist-types/ts3.4/schemas/schemas_0.d.ts +52 -64
- package/node_modules/@aws-sdk/client-sts/package.json +39 -36
- package/node_modules/@aws-sdk/core/LICENSE +201 -0
- package/node_modules/@aws-sdk/core/dist-cjs/index.js +317 -116
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +3 -3
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/httpAuthSchemes/index.js +9 -1
- package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +305 -112
- package/node_modules/@aws-sdk/core/dist-es/submodules/client/emitWarningIfUnsupportedVersion.js +3 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/httpAuthSchemes/aws_sdk/resolveAwsSdkSigV4Config.js +9 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +20 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/UnionSerde.js +23 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +11 -3
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_0Protocol.js +2 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js +2 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +14 -11
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeDeserializer.js +42 -26
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/JsonShapeSerializer.js +83 -53
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/experimental/SinglePassJsonShapeSerializer.js +11 -1
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +3 -8
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/QueryShapeSerializer.js +28 -2
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/structIterator.js +40 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +13 -4
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeDeserializer.js +12 -0
- package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/XmlShapeSerializer.js +18 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +6 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/UnionSerde.d.ts +24 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/JsonShapeSerializer.d.ts +12 -3
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/structIterator.d.ts +27 -0
- package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +4 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/UnionSerde.d.ts +9 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +2 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeDeserializer.d.ts +1 -1
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/JsonShapeSerializer.d.ts +9 -3
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/structIterator.d.ts +12 -0
- package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +1 -0
- package/node_modules/@aws-sdk/core/package.json +14 -14
- package/node_modules/@aws-sdk/crc64-nvme/README.md +61 -0
- package/node_modules/@aws-sdk/crc64-nvme/dist-cjs/index.js +101 -0
- package/node_modules/@aws-sdk/crc64-nvme/dist-es/Crc64Nvme.js +92 -0
- package/node_modules/@aws-sdk/crc64-nvme/dist-es/index.js +2 -0
- package/node_modules/@aws-sdk/crc64-nvme/dist-types/Crc64Nvme.d.ts +24 -0
- package/node_modules/@aws-sdk/crc64-nvme/dist-types/index.d.ts +2 -0
- package/node_modules/@aws-sdk/crc64-nvme/dist-types/ts3.4/Crc64Nvme.d.ts +9 -0
- package/node_modules/@aws-sdk/crc64-nvme/dist-types/ts3.4/index.d.ts +2 -0
- package/node_modules/@aws-sdk/crc64-nvme/package.json +50 -0
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/package.json +8 -8
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/package.json +13 -13
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-cjs/index.js +22 -24
- package/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +9 -0
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveAssumeRoleCredentials.js +4 -3
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveLoginCredentials.js +2 -2
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveProfileData.js +5 -5
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveSsoCredentials.js +4 -2
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveWebIdentityCredentials.js +4 -2
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/fromIni.d.ts +2 -3
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveAssumeRoleCredentials.d.ts +3 -3
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveLoginCredentials.d.ts +2 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveProfileData.d.ts +2 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveSsoCredentials.d.ts +2 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveWebIdentityCredentials.d.ts +2 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/fromIni.d.ts +5 -3
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveAssumeRoleCredentials.d.ts +2 -0
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveLoginCredentials.d.ts +3 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveProfileData.d.ts +2 -0
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveSsoCredentials.d.ts +3 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveWebIdentityCredentials.d.ts +3 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/package.json +17 -17
- package/node_modules/@aws-sdk/credential-provider-login/package.json +11 -11
- package/node_modules/@aws-sdk/credential-provider-node/package.json +15 -15
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/package.json +9 -9
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-cjs/index.js +5 -3
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/fromSSO.js +2 -0
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/resolveSSOCredentials.js +3 -3
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/fromSSO.d.ts +2 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/resolveSSOCredentials.d.ts +1 -1
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/fromSSO.d.ts +2 -0
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/resolveSSOCredentials.d.ts +1 -0
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/package.json +11 -11
- package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/package.json +10 -10
- package/node_modules/@aws-sdk/middleware-bucket-endpoint/package.json +9 -9
- package/node_modules/@aws-sdk/middleware-expect-continue/package.json +7 -7
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/index.js +29 -21
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js +25 -9
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/index.js +0 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js +2 -6
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/index.d.ts +0 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/dist-types/ts3.4/index.d.ts +0 -1
- package/node_modules/@aws-sdk/middleware-flexible-checksums/package.json +13 -12
- package/node_modules/@aws-sdk/middleware-host-header/package.json +7 -7
- package/node_modules/@aws-sdk/middleware-location-constraint/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-logger/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +8 -8
- package/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/index.js +2 -2
- package/node_modules/@aws-sdk/middleware-sdk-s3/package.json +15 -15
- package/node_modules/@aws-sdk/middleware-sdk-s3-control/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/middleware-sdk-s3-control/package.json +12 -12
- package/node_modules/@aws-sdk/middleware-ssec/package.json +6 -6
- package/node_modules/@aws-sdk/middleware-user-agent/package.json +10 -10
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +61 -156
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.browser.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.js +3 -4
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/runtimeConfig.shared.js +6 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +87 -149
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.browser.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.js +3 -4
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/runtimeConfig.shared.js +6 -1
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +89 -97
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.browser.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.js +3 -4
- package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/runtimeConfig.shared.js +7 -6
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/SigninClient.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/commands/CreateOAuth2TokenCommand.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/index.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.browser.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.js +4 -5
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/runtimeConfig.shared.js +6 -1
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/schemas/schemas_0.js +37 -144
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/commands/CreateTokenCommand.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/index.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.browser.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.js +4 -5
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/runtimeConfig.shared.js +6 -1
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/schemas/schemas_0.js +43 -121
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleCommand.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/defaultStsRoleAssumers.js +3 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/index.js +2 -0
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.browser.js +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.js +4 -5
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/runtimeConfig.shared.js +7 -6
- package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/schemas/schemas_0.js +46 -74
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/Signin.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/SigninClient.d.ts +10 -19
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/auth/httpAuthExtensionConfiguration.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/auth/httpAuthSchemeProvider.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/commands/CreateOAuth2TokenCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/EndpointParameters.d.ts +13 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/endpoint/endpointResolver.d.ts +5 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/extensionConfiguration.d.ts +4 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/index.d.ts +2 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/SigninServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/models/errors.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.browser.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.native.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeConfig.shared.d.ts +8 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/runtimeExtensions.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/signin/schemas/schemas_0.d.ts +12 -14
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDC.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/SSOOIDCClient.d.ts +10 -19
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/auth/httpAuthSchemeProvider.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/commands/CreateTokenCommand.d.ts +3 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/EndpointParameters.d.ts +13 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/endpoint/endpointResolver.d.ts +5 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/extensionConfiguration.d.ts +4 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/index.d.ts +2 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/models/errors.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.browser.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.native.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeConfig.shared.d.ts +8 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/runtimeExtensions.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sso-oidc/schemas/schemas_0.d.ts +16 -23
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STS.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/STSClient.d.ts +10 -19
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/auth/httpAuthSchemeProvider.d.ts +2 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleCommand.d.ts +5 -6
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/commands/AssumeRoleWithWebIdentityCommand.d.ts +5 -6
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/EndpointParameters.d.ts +13 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/endpoint/endpointResolver.d.ts +5 -2
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/extensionConfiguration.d.ts +4 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/index.d.ts +2 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/STSServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/models/errors.d.ts +3 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.browser.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.d.ts +8 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.native.d.ts +7 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeConfig.shared.d.ts +8 -3
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/runtimeExtensions.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/sts/schemas/schemas_0.d.ts +20 -26
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/SigninClient.d.ts +3 -7
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/auth/httpAuthExtensionConfiguration.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/models/SigninServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.browser.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.native.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/runtimeConfig.shared.d.ts +9 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/signin/schemas/schemas_0.d.ts +11 -14
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/SSOOIDCClient.d.ts +2 -6
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/auth/httpAuthExtensionConfiguration.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/models/SSOOIDCServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.browser.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.native.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/runtimeConfig.shared.d.ts +9 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sso-oidc/schemas/schemas_0.d.ts +15 -23
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/STSClient.d.ts +3 -7
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthExtensionConfiguration.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/auth/httpAuthSchemeProvider.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/index.d.ts +1 -0
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/models/STSServiceException.d.ts +1 -1
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.browser.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.native.d.ts +9 -5
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/runtimeConfig.shared.d.ts +9 -4
- package/node_modules/@aws-sdk/nested-clients/dist-types/ts3.4/submodules/sts/schemas/schemas_0.d.ts +19 -27
- package/node_modules/@aws-sdk/nested-clients/package.json +35 -35
- package/node_modules/@aws-sdk/region-config-resolver/dist-cjs/index.js +1 -1
- package/node_modules/@aws-sdk/region-config-resolver/package.json +8 -8
- package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +9 -9
- package/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +6 -13
- package/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +2 -9
- package/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +2 -2
- package/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +2 -2
- package/node_modules/@aws-sdk/token-providers/dist-types/fromSso.d.ts +1 -1
- package/node_modules/@aws-sdk/token-providers/dist-types/getNewSsoOidcToken.d.ts +3 -2
- package/node_modules/@aws-sdk/token-providers/dist-types/getSsoOidcClient.d.ts +2 -1
- package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromSso.d.ts +1 -1
- package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getNewSsoOidcToken.d.ts +3 -1
- package/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getSsoOidcClient.d.ts +3 -1
- package/node_modules/@aws-sdk/token-providers/package.json +10 -10
- package/node_modules/@aws-sdk/types/package.json +5 -5
- package/node_modules/@aws-sdk/util-arn-parser/dist-cjs/index.js +24 -61
- package/node_modules/@aws-sdk/util-arn-parser/dist-types/index.d.ts +9 -0
- package/node_modules/@aws-sdk/util-arn-parser/package.json +4 -4
- package/node_modules/@aws-sdk/util-endpoints/package.json +8 -8
- package/node_modules/@aws-sdk/util-user-agent-browser/package.json +6 -6
- package/node_modules/@aws-sdk/util-user-agent-node/package.json +8 -8
- package/node_modules/@aws-sdk/xml-builder/package.json +5 -5
- package/node_modules/@smithy/abort-controller/package.json +2 -2
- package/node_modules/@smithy/config-resolver/package.json +5 -5
- package/node_modules/@smithy/core/dist-cjs/submodules/cbor/index.js +32 -6
- package/node_modules/@smithy/core/dist-cjs/submodules/event-streams/index.js +0 -1
- package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +3 -0
- package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +8 -2
- package/node_modules/@smithy/core/dist-es/submodules/cbor/CborCodec.js +33 -6
- package/node_modules/@smithy/core/dist-es/submodules/event-streams/EventStreamSerde.js +0 -1
- package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +3 -0
- package/node_modules/@smithy/core/dist-es/submodules/schema/schemas/NormalizedSchema.js +8 -2
- package/node_modules/@smithy/core/dist-types/submodules/protocols/SerdeContext.d.ts +10 -2
- package/node_modules/@smithy/core/dist-types/submodules/schema/schemas/NormalizedSchema.d.ts +6 -0
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/protocols/SerdeContext.d.ts +10 -2
- package/node_modules/@smithy/core/dist-types/ts3.4/submodules/schema/schemas/NormalizedSchema.d.ts +6 -0
- package/node_modules/@smithy/core/package.json +11 -9
- package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/package.json +5 -5
- package/node_modules/@smithy/eventstream-codec/package.json +2 -2
- package/node_modules/@smithy/eventstream-serde-browser/package.json +3 -3
- package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +2 -2
- package/node_modules/@smithy/eventstream-serde-node/package.json +3 -3
- package/node_modules/@smithy/eventstream-serde-universal/package.json +3 -3
- package/node_modules/@smithy/fetch-http-handler/package.json +5 -5
- package/node_modules/@smithy/hash-blob-browser/package.json +2 -2
- package/node_modules/@smithy/hash-node/package.json +2 -2
- package/node_modules/@smithy/hash-stream-node/package.json +2 -2
- package/node_modules/@smithy/invalid-dependency/package.json +2 -2
- package/node_modules/@smithy/md5-js/package.json +2 -2
- package/node_modules/@smithy/middleware-apply-body-checksum/package.json +3 -3
- package/node_modules/@smithy/middleware-content-length/package.json +3 -3
- package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +11 -3
- package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js +10 -2
- package/node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js +1 -1
- package/node_modules/@smithy/middleware-endpoint/dist-types/adaptors/createConfigValueProvider.d.ts +2 -1
- package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/adaptors/createConfigValueProvider.d.ts +2 -1
- package/node_modules/@smithy/middleware-endpoint/package.json +9 -9
- package/node_modules/@smithy/middleware-retry/package.json +9 -9
- package/node_modules/@smithy/middleware-serde/package.json +3 -3
- package/node_modules/@smithy/middleware-stack/package.json +2 -2
- package/node_modules/@smithy/node-config-provider/package.json +4 -4
- package/node_modules/@smithy/node-http-handler/package.json +5 -5
- package/node_modules/{@aws-sdk/token-providers/node_modules/@smithy → @smithy}/property-provider/package.json +2 -2
- package/node_modules/@smithy/protocol-http/package.json +2 -2
- package/node_modules/@smithy/querystring-builder/package.json +2 -2
- package/node_modules/@smithy/querystring-parser/package.json +2 -2
- package/node_modules/@smithy/service-error-classification/package.json +2 -2
- package/node_modules/@smithy/shared-ini-file-loader/package.json +2 -2
- package/node_modules/@smithy/signature-v4/package.json +4 -4
- package/node_modules/@smithy/smithy-client/dist-cjs/index.js +6 -0
- package/node_modules/@smithy/smithy-client/dist-es/client.js +6 -0
- package/node_modules/@smithy/smithy-client/dist-types/client.d.ts +33 -7
- package/node_modules/@smithy/smithy-client/dist-types/ts3.4/client.d.ts +33 -7
- package/node_modules/@smithy/smithy-client/package.json +8 -8
- package/node_modules/@smithy/types/dist-types/schema/schema-deprecated.d.ts +7 -0
- package/node_modules/@smithy/types/dist-types/schema/schema.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/schema/static-schemas.d.ts +16 -1
- package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema-deprecated.d.ts +7 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/schema/schema.d.ts +6 -0
- package/node_modules/@smithy/types/dist-types/ts3.4/schema/static-schemas.d.ts +16 -1
- package/node_modules/@smithy/types/package.json +1 -1
- package/node_modules/@smithy/url-parser/package.json +3 -3
- package/node_modules/@smithy/util-defaults-mode-browser/package.json +5 -5
- package/node_modules/@smithy/util-defaults-mode-node/package.json +8 -8
- package/node_modules/@smithy/util-endpoints/package.json +3 -3
- package/node_modules/@smithy/util-middleware/package.json +2 -2
- package/node_modules/@smithy/util-retry/package.json +3 -3
- package/node_modules/@smithy/util-stream/package.json +4 -4
- package/node_modules/@smithy/util-waiter/package.json +3 -3
- package/node_modules/aws-sdk/README.md +16 -195
- package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +756 -346
- package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +3758 -2938
- package/node_modules/aws-sdk/dist/aws-sdk.js +5 -5
- package/node_modules/aws-sdk/dist/aws-sdk.min.js +5 -5
- package/node_modules/aws-sdk/lib/core.js +1 -1
- package/node_modules/aws-sdk/lib/maintenance_mode_message.js +2 -2
- package/node_modules/aws-sdk/package.json +1 -1
- package/node_modules/cdk-iam-floyd/README.md +4 -4
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.d.ts +46 -0
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/cdk-iam-floyd.js +93 -1
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.d.ts +46 -0
- package/node_modules/cdk-iam-floyd/lib/generated/aws-managed-policies/iam-floyd.js +47 -1
- package/node_modules/cdk-iam-floyd/lib/generated/index.d.ts +11 -3
- package/node_modules/cdk-iam-floyd/lib/generated/index.js +33 -17
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.d.ts +6 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/apigatewaymanagement.js +7 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.d.ts +43 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/applicationmigrationservice.js +56 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.d.ts +127 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/backup.js +168 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.d.ts +55 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrock.js +73 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.d.ts +359 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockagentcore.js +478 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockpoweredbyawsmantle.d.ts +125 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/bedrockpoweredbyawsmantle.js +166 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdataexports.d.ts +28 -14
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/billingandcostmanagementdataexports.js +31 -15
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.d.ts +71 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/braket.js +88 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudformation.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudformation.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudfront.d.ts +160 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudfront.js +210 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.d.ts +10 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudtrail.js +14 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchapplicationsignals.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchapplicationsignals.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.d.ts +149 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchlogs.js +201 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.d.ts +143 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/cloudwatchobservabilityadminservice.js +184 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/computeoptimizerautomation.d.ts +274 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/computeoptimizerautomation.js +365 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.d.ts +866 -13
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/connect.js +1034 -9
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costexplorerservice.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costoptimizationhub.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/costoptimizationhub.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/databasemigrationservice.d.ts +32 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/databasemigrationservice.js +39 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.d.ts +12 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/datazone.js +19 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/devopsagentservice.d.ts +469 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/devopsagentservice.js +630 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.d.ts +37 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/dynamodb.js +46 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2autoscaling.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2autoscaling.js +23 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.d.ts +30 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/ec2imagebuilder.js +37 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerregistry.d.ts +64 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerregistry.js +90 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.d.ts +74 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elasticcontainerservice.js +87 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.d.ts +64 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elastickubernetesservice.js +82 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.d.ts +357 -31
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/elementalmediaconnect.js +450 -39
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.d.ts +17 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/glue.js +21 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.d.ts +24 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/guardduty.js +34 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthlake.d.ts +2 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthlake.js +3 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthomics.d.ts +0 -11
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/healthomics.js +1 -14
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.d.ts +180 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identityandaccessmanagementiam.js +224 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identitystore.d.ts +159 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/identitystore.js +173 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/invoicingservice.d.ts +78 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/invoicingservice.js +101 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisvideostreams.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/kinesisvideostreams.js +24 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lakeformation.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lakeformation.js +23 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lambda.d.ts +192 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/lambda.js +251 -4
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/licensemanager.d.ts +141 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/licensemanager.js +183 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedstreamingforapachekafka.d.ts +40 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/managedstreamingforapachekafka.js +50 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplace.d.ts +48 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/marketplace.js +67 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mcpserver.d.ts +41 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/mcpserver.js +62 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearch.d.ts +40 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/opensearch.js +59 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.d.ts +125 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/organizations.js +152 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentral.d.ts +1800 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentral.js +2202 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralaccountmanagement.d.ts +47 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralaccountmanagement.js +57 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/pricingplanmanagerservice.d.ts +91 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/pricingplanmanagerservice.js +127 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/privatelink.d.ts +23 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/privatelink.js +28 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/quicksight.js +28 -17
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourcegrouptaggingapi.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/resourcegrouptaggingapi.js +14 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53.d.ts +8 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53.js +12 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53globalresolver.d.ts +551 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/route53globalresolver.js +727 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.d.ts +76 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3.js +85 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3tables.d.ts +216 -33
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3tables.js +262 -35
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.d.ts +211 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/s3vectors.js +231 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.d.ts +83 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemaker.js +107 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/{sagemakerunifiedstudiomcpisamanagedmcpsolutionforawsdataprocessingserviceslikeemr-glue_athena.d.ts → sagemakerunifiedstudiomcp.d.ts} +5 -5
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcp.js +60 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.d.ts +81 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/secretsmanager.js +88 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityagent.d.ts +624 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityagent.js +840 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.d.ts +16 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityhub.js +23 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.d.ts +17 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/securityincidentresponse.js +24 -1
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.d.ts +6 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/service-oracledatabase-aws.js +11 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicetomanageaiagentsforuiworkflows.d.ts +168 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/servicetomanageaiagentsforuiworkflows.js +232 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/signin.d.ts +18 -2
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/signin.js +27 -3
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.d.ts +76 -12
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transform.js +101 -13
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transformcustom.d.ts +281 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/transformcustom.js +373 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotificationscontacts.d.ts +4 -0
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/usernotificationscontacts.js +5 -1
- package/node_modules/cdk-iam-floyd/package.json +5 -5
- package/node_modules/winston/README.md +10 -8
- package/node_modules/winston/dist/winston/logger.js +1 -0
- package/node_modules/winston/dist/winston/profiler.js +0 -1
- package/node_modules/winston/dist/winston/transports/file.js +87 -50
- package/node_modules/winston/lib/winston/logger.js +1 -0
- package/node_modules/winston/lib/winston/profiler.js +1 -1
- package/node_modules/winston/lib/winston/transports/file.js +32 -0
- package/node_modules/winston/package.json +72 -72
- package/package.json +27 -27
- package/node-v24.9.0-linux-x64.tar.xz +0 -0
- package/node_modules/@aws-sdk/core/node_modules/@smithy/property-provider/package.json +0 -61
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/README.md +0 -10
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
- package/node_modules/@aws-sdk/credential-provider-login/node_modules/@smithy/property-provider/package.json +0 -61
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini/dist-es/fromIni.js +0 -16
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/LICENSE +0 -201
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/README.md +0 -10
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
- package/node_modules/@aws-sdk/credential-provider-node/node_modules/@smithy/property-provider/package.json +0 -61
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/LICENSE +0 -201
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/README.md +0 -10
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
- package/node_modules/@aws-sdk/token-providers/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/LICENSE +0 -201
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/README.md +0 -10
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
- package/node_modules/@smithy/node-config-provider/node_modules/@smithy/property-provider/package.json +0 -61
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/LICENSE +0 -201
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/README.md +0 -10
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
- package/node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/property-provider/package.json +0 -61
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/LICENSE +0 -201
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/README.md +0 -11
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-cjs/index.js +0 -372
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/Endpoint.js +0 -5
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointConfigOptions.js +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointMode.js +0 -5
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js +0 -8
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +0 -10
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromContainerMetadata.js +0 -77
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/fromInstanceMetadata.js +0 -134
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/index.js +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js +0 -13
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js +0 -3
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/httpRequest.js +0 -36
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/index.js +0 -2
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/retry.js +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js +0 -17
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js +0 -19
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-es/utils/staticStabilityProvider.js +0 -25
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/Endpoint.d.ts +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointMode.d.ts +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/error/InstanceMetadataV1FallbackError.d.ts +0 -12
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +0 -21
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +0 -10
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/index.d.ts +0 -28
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +0 -19
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +0 -40
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +0 -6
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/index.d.ts +0 -8
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/retry.d.ts +0 -10
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/Endpoint.d.ts +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointConfigOptions.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointMode.d.ts +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/config/EndpointModeConfigOptions.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/error/InstanceMetadataV1FallbackError.d.ts +0 -12
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromContainerMetadata.d.ts +0 -21
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/fromInstanceMetadata.d.ts +0 -10
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/index.d.ts +0 -28
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/ImdsCredentials.d.ts +0 -19
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/RemoteProviderInit.d.ts +0 -40
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/httpRequest.d.ts +0 -6
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/index.d.ts +0 -8
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/remoteProvider/retry.d.ts +0 -10
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/types.d.ts +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -6
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/getInstanceMetadataEndpoint.d.ts +0 -21
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/ts3.4/utils/staticStabilityProvider.d.ts +0 -16
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/types.d.ts +0 -7
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -6
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +0 -21
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +0 -16
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/credential-provider-imds/package.json +0 -70
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/LICENSE +0 -201
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/README.md +0 -10
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-cjs/index.js +0 -117
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/CredentialsProviderError.js +0 -8
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/ProviderError.js +0 -23
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/TokenProviderError.js +0 -8
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/chain.js +0 -21
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/fromStatic.js +0 -1
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/index.js +0 -6
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-es/memoize.js +0 -45
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ProviderError.d.ts +0 -39
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/TokenProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/chain.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/fromStatic.d.ts +0 -5
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/index.d.ts +0 -24
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/memoize.d.ts +0 -40
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -39
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -31
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/chain.d.ts +0 -13
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -5
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/index.d.ts +0 -24
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/dist-types/ts3.4/memoize.d.ts +0 -40
- package/node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/property-provider/package.json +0 -61
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deepcomposer.d.ts +0 -277
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/deepcomposer.js +0 -357
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.d.ts +0 -686
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/partnercentralselling.js +0 -840
- package/node_modules/cdk-iam-floyd/lib/generated/policy-statements/sagemakerunifiedstudiomcpisamanagedmcpsolutionforawsdataprocessingserviceslikeemr-glue_athena.js +0 -60
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttpTypes.js → client-s3-control/dist-es/models/models_1.js} +0 -0
- /package/node_modules/@aws-sdk/{core/node_modules/@smithy/property-provider → crc64-nvme}/LICENSE +0 -0
- /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-es/crc64-nvme-crt-container.js +0 -0
- /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-types/crc64-nvme-crt-container.d.ts +0 -0
- /package/node_modules/@aws-sdk/{middleware-flexible-checksums → crc64-nvme}/dist-types/ts3.4/crc64-nvme-crt-container.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-login/node_modules/@smithy/property-provider → credential-provider-env}/LICENSE +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/README.md +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-cjs/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-es/fromEnv.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-es/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/fromEnv.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/ts3.4/fromEnv.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-env}/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/README.md +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/checkUrl.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttp.browser.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttp.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/fromHttpTypes.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/requestHelpers.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/fromHttp/retry-wrapper.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/index.browser.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-cjs/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/checkUrl.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/fromHttp.browser.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/fromHttp.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process/dist-es/ProcessCredentials.js → credential-provider-http/dist-es/fromHttp/fromHttpTypes.js} +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/requestHelpers.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/fromHttp/retry-wrapper.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/index.browser.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-es/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/checkUrl.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttp.browser.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttp.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/fromHttpTypes.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/requestHelpers.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/fromHttp/retry-wrapper.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/index.browser.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/checkUrl.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttp.browser.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttp.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/fromHttpTypes.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/requestHelpers.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/fromHttp/retry-wrapper.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/index.browser.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-http → credential-provider-http}/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-env → credential-provider-ini}/LICENSE +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/README.md +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveCredentialSource.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveProcessCredentials.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-es/resolveStaticCredentials.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveCredentialSource.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/resolveStaticCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveCredentialSource.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → credential-provider-ini}/dist-types/ts3.4/resolveStaticCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/LICENSE +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/README.md +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-cjs/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso/dist-es/types.js → credential-provider-process/dist-es/ProcessCredentials.js} +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/fromProcess.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/getValidatedProcessCredentials.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-es/resolveProcessCredentials.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/fromProcess.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/getValidatedProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/resolveProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/ProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/fromProcess.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/getValidatedProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-process → credential-provider-process}/dist-types/ts3.4/resolveProcessCredentials.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/LICENSE +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/README.md +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-cjs/loadSso-CVy8iqsZ.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/isSsoProfile.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/loadSso.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@smithy/credential-provider-imds → credential-provider-sso}/dist-es/types.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-es/validateSsoProfile.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/isSsoProfile.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/loadSso.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/isSsoProfile.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/loadSso.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/types.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/ts3.4/validateSsoProfile.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/types.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-sso → credential-provider-sso}/dist-types/validateSsoProfile.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/LICENSE +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/README.md +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/fromTokenFile.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/fromWebToken.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-cjs/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/fromTokenFile.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/fromWebToken.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-es/index.js +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/fromTokenFile.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/fromWebToken.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/index.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/fromTokenFile.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/fromWebToken.d.ts +0 -0
- /package/node_modules/@aws-sdk/{credential-provider-node/node_modules/@aws-sdk/credential-provider-web-identity → credential-provider-web-identity}/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@aws-sdk/credential-provider-ini → @smithy/credential-provider-imds}/LICENSE +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/README.md +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-cjs/index.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/Endpoint.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointConfigOptions.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointMode.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/config/EndpointModeConfigOptions.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/error/InstanceMetadataV1FallbackError.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/fromContainerMetadata.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/fromInstanceMetadata.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/index.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/ImdsCredentials.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/RemoteProviderInit.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/httpRequest.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/index.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/remoteProvider/retry.js +0 -0
- /package/node_modules/@smithy/{util-defaults-mode-node/node_modules/@smithy/credential-provider-imds → credential-provider-imds}/dist-es/types.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/getExtendedInstanceMetadataCredentials.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/getInstanceMetadataEndpoint.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-es/utils/staticStabilityProvider.js +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/Endpoint.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointConfigOptions.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointMode.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/config/EndpointModeConfigOptions.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/error/InstanceMetadataV1FallbackError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/fromContainerMetadata.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/fromInstanceMetadata.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/index.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/ImdsCredentials.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/RemoteProviderInit.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/httpRequest.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/index.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/remoteProvider/retry.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/Endpoint.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointConfigOptions.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointMode.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/config/EndpointModeConfigOptions.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/error/InstanceMetadataV1FallbackError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/fromContainerMetadata.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/fromInstanceMetadata.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/ImdsCredentials.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/RemoteProviderInit.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/httpRequest.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/index.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/remoteProvider/retry.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/types.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/getInstanceMetadataEndpoint.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/ts3.4/utils/staticStabilityProvider.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/types.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/getExtendedInstanceMetadataCredentials.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/getInstanceMetadataEndpoint.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy → @smithy}/credential-provider-imds/dist-types/utils/staticStabilityProvider.d.ts +0 -0
- /package/node_modules/{@aws-sdk/credential-provider-node/node_modules/@smithy/credential-provider-imds → @smithy/property-provider}/LICENSE +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/README.md +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-cjs/index.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/CredentialsProviderError.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/ProviderError.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/TokenProviderError.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/chain.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/fromStatic.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/index.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-es/memoize.js +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/CredentialsProviderError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ProviderError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/TokenProviderError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/chain.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/fromStatic.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/index.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/memoize.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/CredentialsProviderError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/ProviderError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/TokenProviderError.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/chain.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/fromStatic.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/index.d.ts +0 -0
- /package/node_modules/{@aws-sdk/core/node_modules/@smithy → @smithy}/property-provider/dist-types/ts3.4/memoize.d.ts +0 -0
|
@@ -18,6 +18,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
18
18
|
toAllowVendedLogDeliveryForResource() {
|
|
19
19
|
return this.to('AllowVendedLogDeliveryForResource');
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Grants permission to evaluate Cedar policies for authorization requests
|
|
23
|
+
*
|
|
24
|
+
* Access Level: Permissions management
|
|
25
|
+
*
|
|
26
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/welcome.html
|
|
27
|
+
*/
|
|
28
|
+
toAuthorizeAction() {
|
|
29
|
+
return this.to('AuthorizeAction');
|
|
30
|
+
}
|
|
21
31
|
/**
|
|
22
32
|
* Grants permission to create one or more memory records
|
|
23
33
|
*
|
|
@@ -165,6 +175,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
165
175
|
toCreateCodeInterpreter() {
|
|
166
176
|
return this.to('CreateCodeInterpreter');
|
|
167
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Grants permission to create a new evaluator
|
|
180
|
+
*
|
|
181
|
+
* Access Level: Write
|
|
182
|
+
*
|
|
183
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateEvaluator.html
|
|
184
|
+
*/
|
|
185
|
+
toCreateEvaluator() {
|
|
186
|
+
return this.to('CreateEvaluator');
|
|
187
|
+
}
|
|
168
188
|
/**
|
|
169
189
|
* Grants permission to create an Event
|
|
170
190
|
*
|
|
@@ -237,6 +257,39 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
237
257
|
toCreateOauth2CredentialProvider() {
|
|
238
258
|
return this.to('CreateOauth2CredentialProvider');
|
|
239
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Grants permission to create a new online evaluation configuration
|
|
262
|
+
*
|
|
263
|
+
* Access Level: Write
|
|
264
|
+
*
|
|
265
|
+
* Dependent actions:
|
|
266
|
+
* - iam:PassRole
|
|
267
|
+
*
|
|
268
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreateOnlineEvaluationConfig.html
|
|
269
|
+
*/
|
|
270
|
+
toCreateOnlineEvaluationConfig() {
|
|
271
|
+
return this.to('CreateOnlineEvaluationConfig');
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Grants permission to create a new policy within a policy engine
|
|
275
|
+
*
|
|
276
|
+
* Access Level: Write
|
|
277
|
+
*
|
|
278
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreatePolicy.html
|
|
279
|
+
*/
|
|
280
|
+
toCreatePolicy() {
|
|
281
|
+
return this.to('CreatePolicy');
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Grants permission to create a new policy engine
|
|
285
|
+
*
|
|
286
|
+
* Access Level: Write
|
|
287
|
+
*
|
|
288
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_CreatePolicyEngine.html
|
|
289
|
+
*/
|
|
290
|
+
toCreatePolicyEngine() {
|
|
291
|
+
return this.to('CreatePolicyEngine');
|
|
292
|
+
}
|
|
240
293
|
/**
|
|
241
294
|
* Grants permission to create a new Workload Identity
|
|
242
295
|
*
|
|
@@ -301,6 +354,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
301
354
|
toDeleteCodeInterpreter() {
|
|
302
355
|
return this.to('DeleteCodeInterpreter');
|
|
303
356
|
}
|
|
357
|
+
/**
|
|
358
|
+
* Grants permission to delete an evaluator
|
|
359
|
+
*
|
|
360
|
+
* Access Level: Write
|
|
361
|
+
*
|
|
362
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_DeleteEvaluator.html
|
|
363
|
+
*/
|
|
364
|
+
toDeleteEvaluator() {
|
|
365
|
+
return this.to('DeleteEvaluator');
|
|
366
|
+
}
|
|
304
367
|
/**
|
|
305
368
|
* Grants permission to delete an Event
|
|
306
369
|
*
|
|
@@ -365,6 +428,46 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
365
428
|
toDeleteOauth2CredentialProvider() {
|
|
366
429
|
return this.to('DeleteOauth2CredentialProvider');
|
|
367
430
|
}
|
|
431
|
+
/**
|
|
432
|
+
* Grants permission to delete an online evaluation configuration
|
|
433
|
+
*
|
|
434
|
+
* Access Level: Write
|
|
435
|
+
*
|
|
436
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_DeleteOnlineEvaluationConfig.html
|
|
437
|
+
*/
|
|
438
|
+
toDeleteOnlineEvaluationConfig() {
|
|
439
|
+
return this.to('DeleteOnlineEvaluationConfig');
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Grants permission to delete a policy
|
|
443
|
+
*
|
|
444
|
+
* Access Level: Write
|
|
445
|
+
*
|
|
446
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_DeletePolicy.html
|
|
447
|
+
*/
|
|
448
|
+
toDeletePolicy() {
|
|
449
|
+
return this.to('DeletePolicy');
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Grants permission to delete a policy engine
|
|
453
|
+
*
|
|
454
|
+
* Access Level: Write
|
|
455
|
+
*
|
|
456
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_DeletePolicyEngine.html
|
|
457
|
+
*/
|
|
458
|
+
toDeletePolicyEngine() {
|
|
459
|
+
return this.to('DeletePolicyEngine');
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Grants permission to delete the resource-based policy for a Bedrock resource
|
|
463
|
+
*
|
|
464
|
+
* Access Level: Write
|
|
465
|
+
*
|
|
466
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_DeleteResourcePolicy.html
|
|
467
|
+
*/
|
|
468
|
+
toDeleteResourcePolicy() {
|
|
469
|
+
return this.to('DeleteResourcePolicy');
|
|
470
|
+
}
|
|
368
471
|
/**
|
|
369
472
|
* Grants permission to delete a registered Workload Identity
|
|
370
473
|
*
|
|
@@ -375,6 +478,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
375
478
|
toDeleteWorkloadIdentity() {
|
|
376
479
|
return this.to('DeleteWorkloadIdentity');
|
|
377
480
|
}
|
|
481
|
+
/**
|
|
482
|
+
* Grants permission to run an evaluation using an evaluator
|
|
483
|
+
*
|
|
484
|
+
* Access Level: Write
|
|
485
|
+
*
|
|
486
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_Evaluate.html
|
|
487
|
+
*/
|
|
488
|
+
toEvaluate() {
|
|
489
|
+
return this.to('Evaluate');
|
|
490
|
+
}
|
|
378
491
|
/**
|
|
379
492
|
* Grants permission to retrieve an agent card for A2A
|
|
380
493
|
*
|
|
@@ -455,6 +568,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
455
568
|
toGetCodeInterpreterSession() {
|
|
456
569
|
return this.to('GetCodeInterpreterSession');
|
|
457
570
|
}
|
|
571
|
+
/**
|
|
572
|
+
* Grants permission to get details of an evaluator
|
|
573
|
+
*
|
|
574
|
+
* Access Level: Read
|
|
575
|
+
*
|
|
576
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetEvaluator.html
|
|
577
|
+
*/
|
|
578
|
+
toGetEvaluator() {
|
|
579
|
+
return this.to('GetEvaluator');
|
|
580
|
+
}
|
|
458
581
|
/**
|
|
459
582
|
* Grants permission to fetch an Event
|
|
460
583
|
*
|
|
@@ -519,6 +642,46 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
519
642
|
toGetOauth2CredentialProvider() {
|
|
520
643
|
return this.to('GetOauth2CredentialProvider');
|
|
521
644
|
}
|
|
645
|
+
/**
|
|
646
|
+
* Grants permission to get details of an online evaluation configuration
|
|
647
|
+
*
|
|
648
|
+
* Access Level: Read
|
|
649
|
+
*
|
|
650
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetOnlineEvaluationConfig.html
|
|
651
|
+
*/
|
|
652
|
+
toGetOnlineEvaluationConfig() {
|
|
653
|
+
return this.to('GetOnlineEvaluationConfig');
|
|
654
|
+
}
|
|
655
|
+
/**
|
|
656
|
+
* Grants permission to retrieve a policy
|
|
657
|
+
*
|
|
658
|
+
* Access Level: Read
|
|
659
|
+
*
|
|
660
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetPolicy.html
|
|
661
|
+
*/
|
|
662
|
+
toGetPolicy() {
|
|
663
|
+
return this.to('GetPolicy');
|
|
664
|
+
}
|
|
665
|
+
/**
|
|
666
|
+
* Grants permission to retrieve a policy engine
|
|
667
|
+
*
|
|
668
|
+
* Access Level: Read
|
|
669
|
+
*
|
|
670
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetPolicyEngine.html
|
|
671
|
+
*/
|
|
672
|
+
toGetPolicyEngine() {
|
|
673
|
+
return this.to('GetPolicyEngine');
|
|
674
|
+
}
|
|
675
|
+
/**
|
|
676
|
+
* Grants permission to retrieve status and results of a policy generation request
|
|
677
|
+
*
|
|
678
|
+
* Access Level: Read
|
|
679
|
+
*
|
|
680
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetPolicyGeneration.html
|
|
681
|
+
*/
|
|
682
|
+
toGetPolicyGeneration() {
|
|
683
|
+
return this.to('GetPolicyGeneration');
|
|
684
|
+
}
|
|
522
685
|
/**
|
|
523
686
|
* Grants permission to retrieve an API Key associated with an Api Key Credential Provider
|
|
524
687
|
*
|
|
@@ -539,6 +702,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
539
702
|
toGetResourceOauth2Token() {
|
|
540
703
|
return this.to('GetResourceOauth2Token');
|
|
541
704
|
}
|
|
705
|
+
/**
|
|
706
|
+
* Grants permission to retrieve the resource-based policy for a Bedrock resource
|
|
707
|
+
*
|
|
708
|
+
* Access Level: Read
|
|
709
|
+
*
|
|
710
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_GetResourcePolicy.html
|
|
711
|
+
*/
|
|
712
|
+
toGetResourcePolicy() {
|
|
713
|
+
return this.to('GetResourcePolicy');
|
|
714
|
+
}
|
|
542
715
|
/**
|
|
543
716
|
* Grants permission to fetch the current configuration of the TokenVault, including encryption settings
|
|
544
717
|
*
|
|
@@ -619,6 +792,26 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
619
792
|
toInvokeAgentRuntimeForUser() {
|
|
620
793
|
return this.to('InvokeAgentRuntimeForUser');
|
|
621
794
|
}
|
|
795
|
+
/**
|
|
796
|
+
* Grants permission to invoke an agent runtime endpoint with WebSocket stream
|
|
797
|
+
*
|
|
798
|
+
* Access Level: Write
|
|
799
|
+
*
|
|
800
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_InvokeAgentRuntimeWithWebSocketStream.html
|
|
801
|
+
*/
|
|
802
|
+
toInvokeAgentRuntimeWithWebSocketStream() {
|
|
803
|
+
return this.to('InvokeAgentRuntimeWithWebSocketStream');
|
|
804
|
+
}
|
|
805
|
+
/**
|
|
806
|
+
* Grants permission to invoke an agent runtime endpoint with WebSocket stream and with X-Amzn-Bedrock-AgentCore-Runtime-User-Id header
|
|
807
|
+
*
|
|
808
|
+
* Access Level: Write
|
|
809
|
+
*
|
|
810
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_InvokeAgentRuntimeWithWebSocketStream.html
|
|
811
|
+
*/
|
|
812
|
+
toInvokeAgentRuntimeWithWebSocketStreamForUser() {
|
|
813
|
+
return this.to('InvokeAgentRuntimeWithWebSocketStreamForUser');
|
|
814
|
+
}
|
|
622
815
|
/**
|
|
623
816
|
* Grants permission to invoke a code interpreter session
|
|
624
817
|
*
|
|
@@ -729,6 +922,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
729
922
|
toListCodeInterpreters() {
|
|
730
923
|
return this.to('ListCodeInterpreters');
|
|
731
924
|
}
|
|
925
|
+
/**
|
|
926
|
+
* Grants permission to list evaluators
|
|
927
|
+
*
|
|
928
|
+
* Access Level: List
|
|
929
|
+
*
|
|
930
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListEvaluators.html
|
|
931
|
+
*/
|
|
932
|
+
toListEvaluators() {
|
|
933
|
+
return this.to('ListEvaluators');
|
|
934
|
+
}
|
|
732
935
|
/**
|
|
733
936
|
* Grants permission to list events
|
|
734
937
|
*
|
|
@@ -773,6 +976,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
773
976
|
toListMemories() {
|
|
774
977
|
return this.to('ListMemories');
|
|
775
978
|
}
|
|
979
|
+
/**
|
|
980
|
+
* Grants permission to list extraction jobs for this memory
|
|
981
|
+
*
|
|
982
|
+
* Access Level: List
|
|
983
|
+
*
|
|
984
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_ListMemoryExtractionJobs.html
|
|
985
|
+
*/
|
|
986
|
+
toListMemoryExtractionJobs() {
|
|
987
|
+
return this.to('ListMemoryExtractionJobs');
|
|
988
|
+
}
|
|
776
989
|
/**
|
|
777
990
|
* Grants permission to list memory records
|
|
778
991
|
*
|
|
@@ -797,6 +1010,56 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
797
1010
|
toListOauth2CredentialProviders() {
|
|
798
1011
|
return this.to('ListOauth2CredentialProviders');
|
|
799
1012
|
}
|
|
1013
|
+
/**
|
|
1014
|
+
* Grants permission to list online evaluation configurations
|
|
1015
|
+
*
|
|
1016
|
+
* Access Level: List
|
|
1017
|
+
*
|
|
1018
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListOnlineEvaluationConfigs.html
|
|
1019
|
+
*/
|
|
1020
|
+
toListOnlineEvaluationConfigs() {
|
|
1021
|
+
return this.to('ListOnlineEvaluationConfigs');
|
|
1022
|
+
}
|
|
1023
|
+
/**
|
|
1024
|
+
* Grants permission to list policies within a policy engine
|
|
1025
|
+
*
|
|
1026
|
+
* Access Level: List
|
|
1027
|
+
*
|
|
1028
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicies.html
|
|
1029
|
+
*/
|
|
1030
|
+
toListPolicies() {
|
|
1031
|
+
return this.to('ListPolicies');
|
|
1032
|
+
}
|
|
1033
|
+
/**
|
|
1034
|
+
* Grants permission to list policy engines
|
|
1035
|
+
*
|
|
1036
|
+
* Access Level: List
|
|
1037
|
+
*
|
|
1038
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicyEngines.html
|
|
1039
|
+
*/
|
|
1040
|
+
toListPolicyEngines() {
|
|
1041
|
+
return this.to('ListPolicyEngines');
|
|
1042
|
+
}
|
|
1043
|
+
/**
|
|
1044
|
+
* Grants permission to list generated policy assets from a generation request
|
|
1045
|
+
*
|
|
1046
|
+
* Access Level: List
|
|
1047
|
+
*
|
|
1048
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicyGenerationAssets.html
|
|
1049
|
+
*/
|
|
1050
|
+
toListPolicyGenerationAssets() {
|
|
1051
|
+
return this.to('ListPolicyGenerationAssets');
|
|
1052
|
+
}
|
|
1053
|
+
/**
|
|
1054
|
+
* Grants permission to list policy generation requests
|
|
1055
|
+
*
|
|
1056
|
+
* Access Level: List
|
|
1057
|
+
*
|
|
1058
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_ListPolicyGenerations.html
|
|
1059
|
+
*/
|
|
1060
|
+
toListPolicyGenerations() {
|
|
1061
|
+
return this.to('ListPolicyGenerations');
|
|
1062
|
+
}
|
|
800
1063
|
/**
|
|
801
1064
|
* Grants permission to list sessions
|
|
802
1065
|
*
|
|
@@ -830,6 +1093,46 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
830
1093
|
toListWorkloadIdentities() {
|
|
831
1094
|
return this.to('ListWorkloadIdentities');
|
|
832
1095
|
}
|
|
1096
|
+
/**
|
|
1097
|
+
* Grants permission to create or modify wildcard policies that apply to gateway resources
|
|
1098
|
+
*
|
|
1099
|
+
* Access Level: Permissions management
|
|
1100
|
+
*
|
|
1101
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/welcome.html
|
|
1102
|
+
*/
|
|
1103
|
+
toManageAdminPolicy() {
|
|
1104
|
+
return this.to('ManageAdminPolicy');
|
|
1105
|
+
}
|
|
1106
|
+
/**
|
|
1107
|
+
* Grants permission to create or modify policies that apply to specific gateway resources
|
|
1108
|
+
*
|
|
1109
|
+
* Access Level: Permissions management
|
|
1110
|
+
*
|
|
1111
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/welcome.html
|
|
1112
|
+
*/
|
|
1113
|
+
toManageResourceScopedPolicy() {
|
|
1114
|
+
return this.to('ManageResourceScopedPolicy');
|
|
1115
|
+
}
|
|
1116
|
+
/**
|
|
1117
|
+
* Grants permission to perform partial evaluation of Cedar policies to authorize a caller to list tools they are allowed to call
|
|
1118
|
+
*
|
|
1119
|
+
* Access Level: Permissions management
|
|
1120
|
+
*
|
|
1121
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/welcome.html
|
|
1122
|
+
*/
|
|
1123
|
+
toPartiallyAuthorizeActions() {
|
|
1124
|
+
return this.to('PartiallyAuthorizeActions');
|
|
1125
|
+
}
|
|
1126
|
+
/**
|
|
1127
|
+
* Grants permission to create or update the resource-based policy for a Bedrock resource
|
|
1128
|
+
*
|
|
1129
|
+
* Access Level: Write
|
|
1130
|
+
*
|
|
1131
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_PutResourcePolicy.html
|
|
1132
|
+
*/
|
|
1133
|
+
toPutResourcePolicy() {
|
|
1134
|
+
return this.to('PutResourcePolicy');
|
|
1135
|
+
}
|
|
833
1136
|
/**
|
|
834
1137
|
* Grants permission to retrieve memory records through sematic query
|
|
835
1138
|
*
|
|
@@ -874,6 +1177,31 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
874
1177
|
toStartCodeInterpreterSession() {
|
|
875
1178
|
return this.to('StartCodeInterpreterSession');
|
|
876
1179
|
}
|
|
1180
|
+
/**
|
|
1181
|
+
* Grants permission to start memory extraction job
|
|
1182
|
+
*
|
|
1183
|
+
* Access Level: Write
|
|
1184
|
+
*
|
|
1185
|
+
* Possible conditions:
|
|
1186
|
+
* - .ifStrategyId()
|
|
1187
|
+
* - .ifSessionId()
|
|
1188
|
+
* - .ifActorId()
|
|
1189
|
+
*
|
|
1190
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/API_StartMemoryExtractionJob.html
|
|
1191
|
+
*/
|
|
1192
|
+
toStartMemoryExtractionJob() {
|
|
1193
|
+
return this.to('StartMemoryExtractionJob');
|
|
1194
|
+
}
|
|
1195
|
+
/**
|
|
1196
|
+
* Grants permission to start an AI-powered policy generation request
|
|
1197
|
+
*
|
|
1198
|
+
* Access Level: Write
|
|
1199
|
+
*
|
|
1200
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_StartPolicyGeneration.html
|
|
1201
|
+
*/
|
|
1202
|
+
toStartPolicyGeneration() {
|
|
1203
|
+
return this.to('StartPolicyGeneration');
|
|
1204
|
+
}
|
|
877
1205
|
/**
|
|
878
1206
|
* Grants permission to stop a browser session
|
|
879
1207
|
*
|
|
@@ -984,6 +1312,16 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
984
1312
|
toUpdateBrowserStream() {
|
|
985
1313
|
return this.to('UpdateBrowserStream');
|
|
986
1314
|
}
|
|
1315
|
+
/**
|
|
1316
|
+
* Grants permission to update an evaluator
|
|
1317
|
+
*
|
|
1318
|
+
* Access Level: Write
|
|
1319
|
+
*
|
|
1320
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_UpdateEvaluator.html
|
|
1321
|
+
*/
|
|
1322
|
+
toUpdateEvaluator() {
|
|
1323
|
+
return this.to('UpdateEvaluator');
|
|
1324
|
+
}
|
|
987
1325
|
/**
|
|
988
1326
|
* Grants permission to update an existing gateway
|
|
989
1327
|
*
|
|
@@ -1030,6 +1368,39 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1030
1368
|
toUpdateOauth2CredentialProvider() {
|
|
1031
1369
|
return this.to('UpdateOauth2CredentialProvider');
|
|
1032
1370
|
}
|
|
1371
|
+
/**
|
|
1372
|
+
* Grants permission to update an online evaluation configuration
|
|
1373
|
+
*
|
|
1374
|
+
* Access Level: Write
|
|
1375
|
+
*
|
|
1376
|
+
* Dependent actions:
|
|
1377
|
+
* - iam:PassRole
|
|
1378
|
+
*
|
|
1379
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_UpdateOnlineEvaluationConfig.html
|
|
1380
|
+
*/
|
|
1381
|
+
toUpdateOnlineEvaluationConfig() {
|
|
1382
|
+
return this.to('UpdateOnlineEvaluationConfig');
|
|
1383
|
+
}
|
|
1384
|
+
/**
|
|
1385
|
+
* Grants permission to update an existing policy
|
|
1386
|
+
*
|
|
1387
|
+
* Access Level: Write
|
|
1388
|
+
*
|
|
1389
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_UpdatePolicy.html
|
|
1390
|
+
*/
|
|
1391
|
+
toUpdatePolicy() {
|
|
1392
|
+
return this.to('UpdatePolicy');
|
|
1393
|
+
}
|
|
1394
|
+
/**
|
|
1395
|
+
* Grants permission to update a policy engine
|
|
1396
|
+
*
|
|
1397
|
+
* Access Level: Write
|
|
1398
|
+
*
|
|
1399
|
+
* https://docs.aws.amazon.com/bedrock-agentcore-control/latest/APIReference/API_UpdatePolicyEngine.html
|
|
1400
|
+
*/
|
|
1401
|
+
toUpdatePolicyEngine() {
|
|
1402
|
+
return this.to('UpdatePolicyEngine');
|
|
1403
|
+
}
|
|
1033
1404
|
/**
|
|
1034
1405
|
* Grants permission to update the metadata of an existing Workload Identity
|
|
1035
1406
|
*
|
|
@@ -1040,6 +1411,32 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1040
1411
|
toUpdateWorkloadIdentity() {
|
|
1041
1412
|
return this.to('UpdateWorkloadIdentity');
|
|
1042
1413
|
}
|
|
1414
|
+
/**
|
|
1415
|
+
* Adds a resource of type evaluator to the statement
|
|
1416
|
+
*
|
|
1417
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/evaluator.html
|
|
1418
|
+
*
|
|
1419
|
+
* @param evaluatorId - Identifier for the evaluatorId.
|
|
1420
|
+
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
|
|
1421
|
+
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
|
|
1422
|
+
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
|
|
1423
|
+
*/
|
|
1424
|
+
onEvaluator(evaluatorId, account, region, partition) {
|
|
1425
|
+
return this.on(`arn:${partition ?? this.defaultPartition}:bedrock-agentcore:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:evaluator/${evaluatorId}`);
|
|
1426
|
+
}
|
|
1427
|
+
/**
|
|
1428
|
+
* Adds a resource of type online-evaluation-config to the statement
|
|
1429
|
+
*
|
|
1430
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/onlineEvaluationConfig.html
|
|
1431
|
+
*
|
|
1432
|
+
* @param onlineEvaluationConfigId - Identifier for the onlineEvaluationConfigId.
|
|
1433
|
+
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
|
|
1434
|
+
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
|
|
1435
|
+
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
|
|
1436
|
+
*/
|
|
1437
|
+
onOnlineEvaluationConfig(onlineEvaluationConfigId, account, region, partition) {
|
|
1438
|
+
return this.on(`arn:${partition ?? this.defaultPartition}:bedrock-agentcore:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:online-evaluation-config/${onlineEvaluationConfigId}`);
|
|
1439
|
+
}
|
|
1043
1440
|
/**
|
|
1044
1441
|
* Adds a resource of type memory to the statement
|
|
1045
1442
|
*
|
|
@@ -1244,6 +1641,47 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1244
1641
|
onTokenVault(tokenVaultId, account, region, partition) {
|
|
1245
1642
|
return this.on(`arn:${partition ?? this.defaultPartition}:bedrock-agentcore:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:token-vault/${tokenVaultId}`);
|
|
1246
1643
|
}
|
|
1644
|
+
/**
|
|
1645
|
+
* Adds a resource of type policy-engine to the statement
|
|
1646
|
+
*
|
|
1647
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/policyEngine.html
|
|
1648
|
+
*
|
|
1649
|
+
* @param policyEngineId - Identifier for the policyEngineId.
|
|
1650
|
+
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
|
|
1651
|
+
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
|
|
1652
|
+
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
|
|
1653
|
+
*/
|
|
1654
|
+
onPolicyEngine(policyEngineId, account, region, partition) {
|
|
1655
|
+
return this.on(`arn:${partition ?? this.defaultPartition}:bedrock-agentcore:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:policy-engine/${policyEngineId}`);
|
|
1656
|
+
}
|
|
1657
|
+
/**
|
|
1658
|
+
* Adds a resource of type policy to the statement
|
|
1659
|
+
*
|
|
1660
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/policy.html
|
|
1661
|
+
*
|
|
1662
|
+
* @param policyEngineId - Identifier for the policyEngineId.
|
|
1663
|
+
* @param policyId - Identifier for the policyId.
|
|
1664
|
+
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
|
|
1665
|
+
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
|
|
1666
|
+
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
|
|
1667
|
+
*/
|
|
1668
|
+
onPolicy(policyEngineId, policyId, account, region, partition) {
|
|
1669
|
+
return this.on(`arn:${partition ?? this.defaultPartition}:bedrock-agentcore:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:policy-engine/${policyEngineId}/policy/${policyId}`);
|
|
1670
|
+
}
|
|
1671
|
+
/**
|
|
1672
|
+
* Adds a resource of type policy-generation to the statement
|
|
1673
|
+
*
|
|
1674
|
+
* https://docs.aws.amazon.com/bedrock-agentcore/latest/APIReference/policyGeneration.html
|
|
1675
|
+
*
|
|
1676
|
+
* @param policyEngineId - Identifier for the policyEngineId.
|
|
1677
|
+
* @param policyGenerationId - Identifier for the policyGenerationId.
|
|
1678
|
+
* @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account.
|
|
1679
|
+
* @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region.
|
|
1680
|
+
* @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition.
|
|
1681
|
+
*/
|
|
1682
|
+
onPolicyGeneration(policyEngineId, policyGenerationId, account, region, partition) {
|
|
1683
|
+
return this.on(`arn:${partition ?? this.defaultPartition}:bedrock-agentcore:${region ?? this.defaultRegion}:${account ?? this.defaultAccount}:policy-engine/${policyEngineId}/policy-generation/${policyGenerationId}`);
|
|
1684
|
+
}
|
|
1247
1685
|
/**
|
|
1248
1686
|
* Filters access by creating requests based on the allowed set of values for each of the mandatory tags
|
|
1249
1687
|
*
|
|
@@ -1414,6 +1852,7 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1414
1852
|
* - .toGetEvent()
|
|
1415
1853
|
* - .toListEvents()
|
|
1416
1854
|
* - .toListSessions()
|
|
1855
|
+
* - .toStartMemoryExtractionJob()
|
|
1417
1856
|
*
|
|
1418
1857
|
* @param value The value(s) to check
|
|
1419
1858
|
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
|
|
@@ -1448,6 +1887,7 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1448
1887
|
* - .toDeleteEvent()
|
|
1449
1888
|
* - .toGetEvent()
|
|
1450
1889
|
* - .toListEvents()
|
|
1890
|
+
* - .toStartMemoryExtractionJob()
|
|
1451
1891
|
*
|
|
1452
1892
|
* @param value The value(s) to check
|
|
1453
1893
|
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
|
|
@@ -1463,6 +1903,7 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1463
1903
|
* Applies to actions:
|
|
1464
1904
|
* - .toListMemoryRecords()
|
|
1465
1905
|
* - .toRetrieveMemoryRecords()
|
|
1906
|
+
* - .toStartMemoryExtractionJob()
|
|
1466
1907
|
*
|
|
1467
1908
|
* @param value The value(s) to check
|
|
1468
1909
|
* @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike`
|
|
@@ -1495,7 +1936,11 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1495
1936
|
this.accessLevelList = {
|
|
1496
1937
|
'Permissions management': [
|
|
1497
1938
|
'AllowVendedLogDeliveryForResource',
|
|
1939
|
+
'AuthorizeAction',
|
|
1498
1940
|
'InvokeGateway',
|
|
1941
|
+
'ManageAdminPolicy',
|
|
1942
|
+
'ManageResourceScopedPolicy',
|
|
1943
|
+
'PartiallyAuthorizeActions',
|
|
1499
1944
|
'SynchronizeGatewayTargets'
|
|
1500
1945
|
],
|
|
1501
1946
|
Write: [
|
|
@@ -1507,32 +1952,47 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1507
1952
|
'CreateApiKeyCredentialProvider',
|
|
1508
1953
|
'CreateBrowser',
|
|
1509
1954
|
'CreateCodeInterpreter',
|
|
1955
|
+
'CreateEvaluator',
|
|
1510
1956
|
'CreateEvent',
|
|
1511
1957
|
'CreateGateway',
|
|
1512
1958
|
'CreateGatewayTarget',
|
|
1513
1959
|
'CreateMemory',
|
|
1514
1960
|
'CreateOauth2CredentialProvider',
|
|
1961
|
+
'CreateOnlineEvaluationConfig',
|
|
1962
|
+
'CreatePolicy',
|
|
1963
|
+
'CreatePolicyEngine',
|
|
1515
1964
|
'CreateWorkloadIdentity',
|
|
1516
1965
|
'DeleteAgentRuntime',
|
|
1517
1966
|
'DeleteAgentRuntimeEndpoint',
|
|
1518
1967
|
'DeleteApiKeyCredentialProvider',
|
|
1519
1968
|
'DeleteBrowser',
|
|
1520
1969
|
'DeleteCodeInterpreter',
|
|
1970
|
+
'DeleteEvaluator',
|
|
1521
1971
|
'DeleteEvent',
|
|
1522
1972
|
'DeleteGateway',
|
|
1523
1973
|
'DeleteGatewayTarget',
|
|
1524
1974
|
'DeleteMemory',
|
|
1525
1975
|
'DeleteMemoryRecord',
|
|
1526
1976
|
'DeleteOauth2CredentialProvider',
|
|
1977
|
+
'DeleteOnlineEvaluationConfig',
|
|
1978
|
+
'DeletePolicy',
|
|
1979
|
+
'DeletePolicyEngine',
|
|
1980
|
+
'DeleteResourcePolicy',
|
|
1527
1981
|
'DeleteWorkloadIdentity',
|
|
1982
|
+
'Evaluate',
|
|
1528
1983
|
'GetWorkloadAccessToken',
|
|
1529
1984
|
'GetWorkloadAccessTokenForJWT',
|
|
1530
1985
|
'GetWorkloadAccessTokenForUserId',
|
|
1531
1986
|
'InvokeAgentRuntime',
|
|
1532
1987
|
'InvokeAgentRuntimeForUser',
|
|
1988
|
+
'InvokeAgentRuntimeWithWebSocketStream',
|
|
1989
|
+
'InvokeAgentRuntimeWithWebSocketStreamForUser',
|
|
1533
1990
|
'InvokeCodeInterpreter',
|
|
1991
|
+
'PutResourcePolicy',
|
|
1534
1992
|
'StartBrowserSession',
|
|
1535
1993
|
'StartCodeInterpreterSession',
|
|
1994
|
+
'StartMemoryExtractionJob',
|
|
1995
|
+
'StartPolicyGeneration',
|
|
1536
1996
|
'StopBrowserSession',
|
|
1537
1997
|
'StopCodeInterpreterSession',
|
|
1538
1998
|
'StopRuntimeSession',
|
|
@@ -1540,10 +2000,14 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1540
2000
|
'UpdateAgentRuntimeEndpoint',
|
|
1541
2001
|
'UpdateApiKeyCredentialProvider',
|
|
1542
2002
|
'UpdateBrowserStream',
|
|
2003
|
+
'UpdateEvaluator',
|
|
1543
2004
|
'UpdateGateway',
|
|
1544
2005
|
'UpdateGatewayTarget',
|
|
1545
2006
|
'UpdateMemory',
|
|
1546
2007
|
'UpdateOauth2CredentialProvider',
|
|
2008
|
+
'UpdateOnlineEvaluationConfig',
|
|
2009
|
+
'UpdatePolicy',
|
|
2010
|
+
'UpdatePolicyEngine',
|
|
1547
2011
|
'UpdateWorkloadIdentity'
|
|
1548
2012
|
],
|
|
1549
2013
|
Read: [
|
|
@@ -1558,14 +2022,20 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1558
2022
|
'GetBrowserSession',
|
|
1559
2023
|
'GetCodeInterpreter',
|
|
1560
2024
|
'GetCodeInterpreterSession',
|
|
2025
|
+
'GetEvaluator',
|
|
1561
2026
|
'GetEvent',
|
|
1562
2027
|
'GetGateway',
|
|
1563
2028
|
'GetGatewayTarget',
|
|
1564
2029
|
'GetMemory',
|
|
1565
2030
|
'GetMemoryRecord',
|
|
1566
2031
|
'GetOauth2CredentialProvider',
|
|
2032
|
+
'GetOnlineEvaluationConfig',
|
|
2033
|
+
'GetPolicy',
|
|
2034
|
+
'GetPolicyEngine',
|
|
2035
|
+
'GetPolicyGeneration',
|
|
1567
2036
|
'GetResourceApiKey',
|
|
1568
2037
|
'GetResourceOauth2Token',
|
|
2038
|
+
'GetResourcePolicy',
|
|
1569
2039
|
'GetTokenVault',
|
|
1570
2040
|
'GetWorkloadIdentity',
|
|
1571
2041
|
'ListApiKeyCredentialProviders',
|
|
@@ -1582,11 +2052,18 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1582
2052
|
'ListBrowsers',
|
|
1583
2053
|
'ListCodeInterpreterSessions',
|
|
1584
2054
|
'ListCodeInterpreters',
|
|
2055
|
+
'ListEvaluators',
|
|
1585
2056
|
'ListEvents',
|
|
1586
2057
|
'ListGatewayTargets',
|
|
1587
2058
|
'ListGateways',
|
|
1588
2059
|
'ListMemories',
|
|
2060
|
+
'ListMemoryExtractionJobs',
|
|
1589
2061
|
'ListMemoryRecords',
|
|
2062
|
+
'ListOnlineEvaluationConfigs',
|
|
2063
|
+
'ListPolicies',
|
|
2064
|
+
'ListPolicyEngines',
|
|
2065
|
+
'ListPolicyGenerationAssets',
|
|
2066
|
+
'ListPolicyGenerations',
|
|
1590
2067
|
'ListSessions',
|
|
1591
2068
|
'ListTagsForResource',
|
|
1592
2069
|
'RetrieveMemoryRecords'
|
|
@@ -1599,4 +2076,4 @@ class BedrockAgentcore extends shared_1.PolicyStatement {
|
|
|
1599
2076
|
}
|
|
1600
2077
|
}
|
|
1601
2078
|
exports.BedrockAgentcore = BedrockAgentcore;
|
|
1602
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9ja2FnZW50Y29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJlZHJvY2thZ2VudGNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBR3pEOzs7O0dBSUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHdCQUFlO0lBR25EOzs7Ozs7T0FNRztJQUNJLG1DQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSwyQkFBMkI7UUFDaEMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGdDQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksOEJBQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ksb0JBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVH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Q25CO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLFlBQVk7Z0JBQ1osMkJBQTJCO2dCQUMzQiwwQkFBMEI7Z0JBQzFCLG1CQUFtQjtnQkFDbkIscUJBQXFCO2dCQUNyQixjQUFjO2dCQUNkLDZCQUE2QjtnQkFDN0Isc0JBQXNCO2dCQUN0QixZQUFZO2dCQUNaLG9CQUFvQjtnQkFDcEIsY0FBYztnQkFDZCxjQUFjO2dCQUNkLG1CQUFtQjtnQkFDbkIsY0FBYztnQkFDZCxxQkFBcUI7Z0JBQ3JCLHVCQUF1QjthQUN4QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxhQUFhO2dCQUNiLGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBZ2VGLENBQUM7Q0FDRjtBQS9xREQsNENBK3FEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY2Vzc0xldmVsTGlzdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9hY2Nlc3MtbGV2ZWwnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBPcGVyYXRvciB9IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBhd3NfaWFtIGFzIGlhbSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbYmVkcm9jay1hZ2VudGNvcmVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FtYXpvbmJlZHJvY2thZ2VudGNvcmUuaHRtbCkuXG4gKlxuICogQHBhcmFtIHNpZCBbU0lEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX3NpZC5odG1sKSBvZiB0aGUgc3RhdGVtZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBCZWRyb2NrQWdlbnRjb3JlIGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnYmVkcm9jay1hZ2VudGNvcmUnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjb25maWd1cmUgdmVuZGVkIHRlbGVtZXRyeSBmb3IgYSByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFBlcm1pc3Npb25zIG1hbmFnZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvXG4gICAqL1xuICBwdWJsaWMgdG9BbGxvd1ZlbmRlZExvZ0RlbGl2ZXJ5Rm9yUmVzb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0FsbG93VmVuZGVkTG9nRGVsaXZlcnlGb3JSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBvbmUgb3IgbW9yZSBtZW1vcnkgcmVjb3Jkc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmTmFtZXNwYWNlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0JhdGNoQ3JlYXRlTWVtb3J5UmVjb3Jkcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9CYXRjaENyZWF0ZU1lbW9yeVJlY29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0JhdGNoQ3JlYXRlTWVtb3J5UmVjb3JkcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBvbmUgb3IgbW9yZSBtZW1vcnkgcmVjb3Jkc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9CYXRjaERlbGV0ZU1lbW9yeVJlY29yZHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQmF0Y2hEZWxldGVNZW1vcnlSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdCYXRjaERlbGV0ZU1lbW9yeVJlY29yZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgb25lIG9yIG1vcmUgbWVtb3J5IHJlY29yZHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZk5hbWVzcGFjZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9CYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQmF0Y2hVcGRhdGVNZW1vcnlSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdCYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhY2Nlc3MgdG9rZW4gd2l0aCBPQXV0aDIgZm9yIDNMTyBmbG93IHRvIGFjY2VzcyBleHRlcm5hbCByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1Jc3MoKVxuICAgKiAtIC5pZkluYm91bmRKd3RDbGFpbVN1YigpXG4gICAqIC0gLmlmSW5ib3VuZEp3dENsYWltQXVkKClcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1TY29wZSgpXG4gICAqIC0gLmlmSW5ib3VuZEp3dENsYWltQ2xpZW50SWQoKVxuICAgKiAtIC5pZlVzZXJpZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Db21wbGV0ZVJlc291cmNlVG9rZW5BdXRoLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjb25uZWN0IHRvIGEgYnJvd3NlciBhdXRvbWF0aW9uIHN0cmVhbVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Nvbm5lY3RCcm93c2VyQXV0b21hdGlvblN0cmVhbS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Db25uZWN0QnJvd3NlckF1dG9tYXRpb25TdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Nvbm5lY3RCcm93c2VyQXV0b21hdGlvblN0cmVhbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNvbm5lY3QgdG8gYSBicm93c2VyIGxpdmUgdmlldyBzdHJlYW1cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Db25uZWN0QnJvd3NlckxpdmVWaWV3U3RyZWFtLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Nvbm5lY3RCcm93c2VyTGl2ZVZpZXdTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Nvbm5lY3RCcm93c2VyTGl2ZVZpZXdTdHJlYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgYWdlbnQgcnVudGltZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVBZ2VudFJ1bnRpbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQWdlbnRSdW50aW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudFJ1bnRpbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgYWdlbnQgcnVudGltZSBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUFnZW50UnVudGltZUVuZHBvaW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFnZW50UnVudGltZUVuZHBvaW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudFJ1bnRpbWVFbmRwb2ludCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG5ldyBBUEkgS2V5IENyZWRlbnRpYWwgUHJvdmlkZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgY3VzdG9tIGJyb3dzZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVCcm93c2VyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUJyb3dzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUJyb3dzZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgY3VzdG9tIGNvZGUgaW50ZXJwcmV0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVDb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQ29kZUludGVycHJldGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVDb2RlSW50ZXJwcmV0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYW4gRXZlbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlNlc3Npb25JZCgpXG4gICAqIC0gLmlmQWN0b3JJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVFdmVudC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVFdmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlRXZlbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgZ2F0ZXdheVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVHYXRld2F5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUdhdGV3YXkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUdhdGV3YXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgdGFyZ2V0IGluIGFuIGV4aXN0aW5nIGdhdGV3YXlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVHYXRld2F5VGFyZ2V0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUdhdGV3YXlUYXJnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUdhdGV3YXlUYXJnZXQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBNZW1vcnkgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlTWVtb3J5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZU1lbW9yeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlTWVtb3J5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgbmV3IENyZWRlbnRpYWwgUHJvdmlkZXIgdG8gYWNjZXNzIGV4dGVybmFsIHJlc291cmNlcyB3aXRoIE9BdXRoMiBwcm90b2NvbFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG5ldyBXb3JrbG9hZCBJZGVudGl0eVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVdvcmtsb2FkSWRlbnRpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlV29ya2xvYWRJZGVudGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlV29ya2xvYWRJZGVudGl0eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBhZ2VudCBydW50aW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQWdlbnRSdW50aW1lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUFnZW50UnVudGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQWdlbnRSdW50aW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVBZ2VudFJ1bnRpbWVFbmRwb2ludC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBZ2VudFJ1bnRpbWVFbmRwb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSByZWdpc3RlcmVkIEFQSSBLZXkgQ3JlZGVudGlhbCBQcm92aWRlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIGN1c3RvbSBicm93c2VyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQnJvd3Nlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVCcm93c2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVCcm93c2VyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgY3VzdG9tIGNvZGUgaW50ZXJwcmV0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVDb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlQ29kZUludGVycHJldGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDb2RlSW50ZXJwcmV0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gRXZlbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlNlc3Npb25JZCgpXG4gICAqIC0gLmlmQWN0b3JJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVFdmVudC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVFdmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRXZlbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gZXhpc3RpbmcgZ2F0ZXdheVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUdhdGV3YXkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlR2F0ZXdheSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlR2F0ZXdheScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBleGlzdGluZyBnYXRld2F5IHRhcmdldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUdhdGV3YXlUYXJnZXQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlR2F0ZXdheVRhcmdldCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlR2F0ZXdheVRhcmdldCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIE1lbW9yeSByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZU1lbW9yeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVNZW1vcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU1lbW9yeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIE1lbW9yeSBSZWNvcmRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlTWVtb3J5UmVjb3JkLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZU1lbW9yeVJlY29yZCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlTWVtb3J5UmVjb3JkJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgcmVnaXN0ZXJlZCBPQXV0aDIgQ3JlZGVudGlhbCBQcm92aWRlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHJlZ2lzdGVyZWQgV29ya2xvYWQgSWRlbnRpdHlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVXb3JrbG9hZElkZW50aXR5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZVdvcmtsb2FkSWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVdvcmtsb2FkSWRlbnRpdHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhbiBhZ2VudCBjYXJkIGZvciBBMkFcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBZ2VudENhcmQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QWdlbnRDYXJkKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBZ2VudENhcmQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhbiBhZ2VudCBydW50aW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBZ2VudFJ1bnRpbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QWdlbnRSdW50aW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBZ2VudFJ1bnRpbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhbiBhZ2VudCBydW50aW1lIGVuZHBvaW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBZ2VudFJ1bnRpbWVFbmRwb2ludC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRBZ2VudFJ1bnRpbWVFbmRwb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0QWdlbnRSdW50aW1lRW5kcG9pbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBmZXRjaCBhIHJlZ2lzdGVyZWQgQVBJIEtleSBDcmVkZW50aWFsIFByb3ZpZGVyIGJ5IGl0cyBuYW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhIGJyb3dzZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEJyb3dzZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QnJvd3NlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0QnJvd3NlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGdldCBkZXRhaWxzIG9mIGEgYnJvd3NlciBzZXNzaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0QnJvd3NlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QnJvd3NlclNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEJyb3dzZXJTZXNzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGRldGFpbHMgb2YgYSBjb2RlIGludGVycHJldGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRDb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0Q29kZUludGVycHJldGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRDb2RlSW50ZXJwcmV0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhIGNvZGUgaW50ZXJwcmV0ZXIgc2Vzc2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldENvZGVJbnRlcnByZXRlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0Q29kZUludGVycHJldGVyU2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0Q29kZUludGVycHJldGVyU2Vzc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGZldGNoIGFuIEV2ZW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlNlc3Npb25JZCgpXG4gICAqIC0gLmlmQWN0b3JJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRFdmVudC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRFdmVudCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0RXZlbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhbiBleGlzdGluZyBnYXRld2F5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRHYXRld2F5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldEdhdGV3YXkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEdhdGV3YXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhbiBleGlzdGluZyBnYXRld2F5IHRhcmdldFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0R2F0ZXdheVRhcmdldC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRHYXRld2F5VGFyZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRHYXRld2F5VGFyZ2V0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZmV0Y2ggZGV0YWlscyBmb3IgYSBNZW1vcnkgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldE1lbW9yeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRNZW1vcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldE1lbW9yeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGZldGNoIGEgTWVtb3J5IFJlY29yZFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldE1lbW9yeVJlY29yZC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRNZW1vcnlSZWNvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldE1lbW9yeVJlY29yZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGZldGNoIGEgcmVnaXN0ZXJlZCBPQXV0aDIgQ3JlZGVudGlhbCBQcm92aWRlciBieSBpdHMgbmFtZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0T2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0T2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgYW4gQVBJIEtleSBhc3NvY2lhdGVkIHdpdGggYW4gQXBpIEtleSBDcmVkZW50aWFsIFByb3ZpZGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0UmVzb3VyY2VBcGlLZXkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0UmVzb3VyY2VBcGlLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFJlc291cmNlQXBpS2V5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgYWNjZXNzIHRva2VuIHdpdGggT0F1dGgyIDJMTyBvciAzTE8gZmxvdyB0byBhY2Nlc3MgZXh0ZXJuYWwgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRSZXNvdXJjZU9hdXRoMlRva2VuLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFJlc291cmNlT2F1dGgyVG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFJlc291cmNlT2F1dGgyVG9rZW4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBmZXRjaCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIG9mIHRoZSBUb2tlblZhdWx0LCBpbmNsdWRpbmcgZW5jcnlwdGlvbiBzZXR0aW5nc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0VG9rZW5WYXVsdC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRUb2tlblZhdWx0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRUb2tlblZhdWx0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgYW4gV29ya2xvYWQgYWNjZXNzIHRva2VuIGZvciBhZ2VudGljIHdvcmtsb2FkcyBub3QgYWN0aW5nIG9uIGJlaGFsZiBvZiBhIHVzZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0V29ya2xvYWRBY2Nlc3NUb2tlbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRXb3JrbG9hZEFjY2Vzc1Rva2VuKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgYW4gV29ya2xvYWQgYWNjZXNzIHRva2VuIGZvciBhZ2VudGljIHdvcmtsb2FkcyBhY3Rpbmcgb24gYmVoYWxmIG9mIHVzZXIgd2l0aCBKV1QgdG9rZW5cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkluYm91bmRKd3RDbGFpbUlzcygpXG4gICAqIC0gLmlmSW5ib3VuZEp3dENsYWltU3ViKClcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1BdWQoKVxuICAgKiAtIC5pZkluYm91bmRKd3RDbGFpbVNjb3BlKClcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1DbGllbnRJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldULmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JKV1QoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JKV1QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhbiBXb3JrbG9hZCBhY2Nlc3MgdG9rZW4gZm9yIGFnZW50aWMgd29ya2xvYWRzIGFjdGluZyBvbiBiZWhhbGYgb2YgdXNlciB3aXRoIFVzZXIgSWRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlVzZXJpZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9yVXNlcklkLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JVc2VySWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JVc2VySWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBmZXRjaCBkZXRhaWxzIGZvciBhIHNwZWNpZmljIFdvcmtsb2FkIGlkZW50aXR5LCBpbmNsdWRpbmcgaXRzIG5hbWUgYW5kIGFsbG93ZWQgT0F1dGgyIHJldHVybiBVUkxzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRXb3JrbG9hZElkZW50aXR5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFdvcmtsb2FkSWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFdvcmtsb2FkSWRlbnRpdHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbnZva2UgYW4gYWdlbnQgcnVudGltZSBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9JbnZva2VBZ2VudFJ1bnRpbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvSW52b2tlQWdlbnRSdW50aW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdJbnZva2VBZ2VudFJ1bnRpbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbnZva2UgYW4gYWdlbnQgcnVudGltZSBlbmRwb2ludCB3aXRoIFgtQW16bi1CZWRyb2NrLUFnZW50Q29yZS1SdW50aW1lLVVzZXItSWQgaGVhZGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0ludm9rZUFnZW50UnVudGltZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9JbnZva2VBZ2VudFJ1bnRpbWVGb3JVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdJbnZva2VBZ2VudFJ1bnRpbWVGb3JVc2VyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIGEgY29kZSBpbnRlcnByZXRlciBzZXNzaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0ludm9rZUNvZGVJbnRlcnByZXRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9JbnZva2VDb2RlSW50ZXJwcmV0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0ludm9rZUNvZGVJbnRlcnByZXRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGludm9rZSBhIGdhdGV3YXlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBQZXJtaXNzaW9ucyBtYW5hZ2VtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL3dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvSW52b2tlR2F0ZXdheSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSW52b2tlR2F0ZXdheScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgQWN0b3JzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEFjdG9ycy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QWN0b3JzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QWN0b3JzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBhZ2VudCBydW50aW1lIGVuZHBvaW50c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEFnZW50UnVudGltZUVuZHBvaW50cy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QWdlbnRSdW50aW1lRW5kcG9pbnRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QWdlbnRSdW50aW1lRW5kcG9pbnRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBhZ2VudCBydW50aW1lIHZlcnNpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QWdlbnRSdW50aW1lVmVyc2lvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEFnZW50UnVudGltZVZlcnNpb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QWdlbnRSdW50aW1lVmVyc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFnZW50IHJ1bnRpbWVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QWdlbnRSdW50aW1lcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QWdlbnRSdW50aW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEFnZW50UnVudGltZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBBUEkgS2V5IENyZWRlbnRpYWwgUHJvdmlkZXJzIGluIHRoZSBUb2tlbiBWYXVsdFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEFwaUtleUNyZWRlbnRpYWxQcm92aWRlcnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEFwaUtleUNyZWRlbnRpYWxQcm92aWRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXJzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBicm93c2VyIHNlc3Npb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEJyb3dzZXJTZXNzaW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QnJvd3NlclNlc3Npb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QnJvd3NlclNlc3Npb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBicm93c2Vyc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEJyb3dzZXJzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RCcm93c2VycygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEJyb3dzZXJzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBjb2RlIGludGVycHJldGVyIHNlc3Npb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdENvZGVJbnRlcnByZXRlclNlc3Npb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RDb2RlSW50ZXJwcmV0ZXJTZXNzaW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdENvZGVJbnRlcnByZXRlclNlc3Npb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBjb2RlIGludGVycHJldGVyc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdENvZGVJbnRlcnByZXRlcnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdENvZGVJbnRlcnByZXRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RDb2RlSW50ZXJwcmV0ZXJzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBldmVudHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU2Vzc2lvbklkKClcbiAgICogLSAuaWZBY3RvcklkKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RFdmVudHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEV2ZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEV2ZW50cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgZXhpc3RpbmcgZ2F0ZXdheSB0YXJnZXRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0R2F0ZXdheVRhcmdldHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEdhdGV3YXlUYXJnZXRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0R2F0ZXdheVRhcmdldHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGV4aXN0aW5nIGdhdGV3YXlzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0R2F0ZXdheXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEdhdGV3YXlzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0R2F0ZXdheXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IG1lbW9yeSByZXNvdXJjZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZW1vcmllcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWVtb3JpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RNZW1vcmllcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgbWVtb3J5IHJlY29yZHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmTmFtZXNwYWNlKClcbiAgICogLSAuaWZTdHJhdGVneUlkKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZW1vcnlSZWNvcmRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RNZW1vcnlSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWVtb3J5UmVjb3JkcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIE9BdXRoMiBDcmVkZW50aWFsIFByb3ZpZGVycyBpbiB0aGUgVG9rZW4gVmF1bHRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXJzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0T2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3Qgc2Vzc2lvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQWN0b3JJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0U2Vzc2lvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFNlc3Npb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0U2Vzc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHRhZ3MgZm9yIGEgQmVkcm9jay1BZ2VudENvcmUgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RUYWdzRm9yUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFRhZ3NGb3JSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFRhZ3NGb3JSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIFdvcmtsb2FkIElkZW50aXRpZXMgaW4gdGhlIGNhbGxlcidzIEFXUyBhY2NvdW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0V29ya2xvYWRJZGVudGl0aWVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RXb3JrbG9hZElkZW50aXRpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RXb3JrbG9hZElkZW50aXRpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBtZW1vcnkgcmVjb3JkcyB0aHJvdWdoIHNlbWF0aWMgcXVlcnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmTmFtZXNwYWNlKClcbiAgICogLSAuaWZTdHJhdGVneUlkKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1JldHJpZXZlTWVtb3J5UmVjb3Jkcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9SZXRyaWV2ZU1lbW9yeVJlY29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JldHJpZXZlTWVtb3J5UmVjb3JkcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGFzc29jaWF0ZSBhIEN1c3RvbWVyIE1hbmFnZWQgS2V5IChDTUspIG9yIGEgU2VydmljZSBNYW5hZ2VkIEtleSB3aXRoIGEgc3BlY2lmaWMgVG9rZW5WYXVsdFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU2V0VG9rZW5WYXVsdENNSy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TZXRUb2tlblZhdWx0Q01LKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTZXRUb2tlblZhdWx0Q01LJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RhcnRzIGEgbmV3IGJyb3dzZXIgc2Vzc2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydEJyb3dzZXJTZXNzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0QnJvd3NlclNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0YXJ0QnJvd3NlclNlc3Npb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCBhIG5ldyBjb2RlIGludGVycHJldGVyIHNlc3Npb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RhcnRDb2RlSW50ZXJwcmV0ZXJTZXNzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0YXJ0Q29kZUludGVycHJldGVyU2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRDb2RlSW50ZXJwcmV0ZXJTZXNzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RvcCBhIGJyb3dzZXIgc2Vzc2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdG9wQnJvd3NlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RvcEJyb3dzZXJTZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdG9wQnJvd3NlclNlc3Npb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdG9wIGEgY29kZSBpbnRlcnByZXRlciBzZXNzaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0b3BDb2RlSW50ZXJwcmV0ZXJTZXNzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0b3BDb2RlSW50ZXJwcmV0ZXJTZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdG9wQ29kZUludGVycHJldGVyU2Vzc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0b3AgYSBydW50aW1lIHNlc3Npb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RvcFJ1bnRpbWVTZXNzaW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N0b3BSdW50aW1lU2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RvcFJ1bnRpbWVTZXNzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZW5hYmxlIHNlYXJjaCBvbiBnYXRld2F5c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFBlcm1pc3Npb25zIG1hbmFnZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2Uvd2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TeW5jaHJvbml6ZUdhdGV3YXlUYXJnZXRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTeW5jaHJvbml6ZUdhdGV3YXlUYXJnZXRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gVGFnIGEgQmVkcm9jay1BZ2VudENvcmUgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBUYWdnaW5nXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1RhZ1Jlc291cmNlLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1RhZ1Jlc291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdUYWdSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIFVudGFnIGEgQmVkcm9jay1BZ2VudENvcmUgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBUYWdnaW5nXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VudGFnUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVW50YWdSZXNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVW50YWdSZXNvdXJjZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBhZ2VudCBydW50aW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUFnZW50UnVudGltZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVBZ2VudFJ1bnRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUFnZW50UnVudGltZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBhZ2VudCBydW50aW1lIGVuZHBvaW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQWdlbnRSdW50aW1lRW5kcG9pbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlQWdlbnRSdW50aW1lRW5kcG9pbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUFnZW50UnVudGltZUVuZHBvaW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIEFQSSBLZXkgQ3JlZGVudGlhbCBQcm92aWRlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgc3RhdHVzIG9mIGJyb3dzZXIgc2Vzc2lvbiBzdHJlYW1cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQnJvd3NlclN0cmVhbS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVCcm93c2VyU3RyZWFtKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVCcm93c2VyU3RyZWFtJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIGdhdGV3YXlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlR2F0ZXdheS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVHYXRld2F5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVHYXRld2F5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIGdhdGV3YXkgdGFyZ2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlR2F0ZXdheVRhcmdldC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVHYXRld2F5VGFyZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVHYXRld2F5VGFyZ2V0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgTWVtb3J5IHJlc291cmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU1lbW9yeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVNZW1vcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZU1lbW9yeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyBPQXV0aDIgQ3JlZGVudGlhbCBQcm92aWRlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgbWV0YWRhdGEgb2YgYW4gZXhpc3RpbmcgV29ya2xvYWQgSWRlbnRpdHlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVXb3JrbG9hZElkZW50aXR5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZVdvcmtsb2FkSWRlbnRpdHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZVdvcmtsb2FkSWRlbnRpdHknKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY2Nlc3NMZXZlbExpc3Q6IEFjY2Vzc0xldmVsTGlzdCA9IHtcbiAgICAnUGVybWlzc2lvbnMgbWFuYWdlbWVudCc6IFtcbiAgICAgICdBbGxvd1ZlbmRlZExvZ0RlbGl2ZXJ5Rm9yUmVzb3VyY2UnLFxuICAgICAgJ0ludm9rZUdhdGV3YXknLFxuICAgICAgJ1N5bmNocm9uaXplR2F0ZXdheVRhcmdldHMnXG4gICAgXSxcbiAgICBXcml0ZTogW1xuICAgICAgJ0JhdGNoQ3JlYXRlTWVtb3J5UmVjb3JkcycsXG4gICAgICAnQmF0Y2hEZWxldGVNZW1vcnlSZWNvcmRzJyxcbiAgICAgICdCYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMnLFxuICAgICAgJ0NyZWF0ZUFnZW50UnVudGltZScsXG4gICAgICAnQ3JlYXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnLFxuICAgICAgJ0NyZWF0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnQ3JlYXRlQnJvd3NlcicsXG4gICAgICAnQ3JlYXRlQ29kZUludGVycHJldGVyJyxcbiAgICAgICdDcmVhdGVFdmVudCcsXG4gICAgICAnQ3JlYXRlR2F0ZXdheScsXG4gICAgICAnQ3JlYXRlR2F0ZXdheVRhcmdldCcsXG4gICAgICAnQ3JlYXRlTWVtb3J5JyxcbiAgICAgICdDcmVhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXInLFxuICAgICAgJ0NyZWF0ZVdvcmtsb2FkSWRlbnRpdHknLFxuICAgICAgJ0RlbGV0ZUFnZW50UnVudGltZScsXG4gICAgICAnRGVsZXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnLFxuICAgICAgJ0RlbGV0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnRGVsZXRlQnJvd3NlcicsXG4gICAgICAnRGVsZXRlQ29kZUludGVycHJldGVyJyxcbiAgICAgICdEZWxldGVFdmVudCcsXG4gICAgICAnRGVsZXRlR2F0ZXdheScsXG4gICAgICAnRGVsZXRlR2F0ZXdheVRhcmdldCcsXG4gICAgICAnRGVsZXRlTWVtb3J5JyxcbiAgICAgICdEZWxldGVNZW1vcnlSZWNvcmQnLFxuICAgICAgJ0RlbGV0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnRGVsZXRlV29ya2xvYWRJZGVudGl0eScsXG4gICAgICAnR2V0V29ya2xvYWRBY2Nlc3NUb2tlbicsXG4gICAgICAnR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvckpXVCcsXG4gICAgICAnR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvclVzZXJJZCcsXG4gICAgICAnSW52b2tlQWdlbnRSdW50aW1lJyxcbiAgICAgICdJbnZva2VBZ2VudFJ1bnRpbWVGb3JVc2VyJyxcbiAgICAgICdJbnZva2VDb2RlSW50ZXJwcmV0ZXInLFxuICAgICAgJ1N0YXJ0QnJvd3NlclNlc3Npb24nLFxuICAgICAgJ1N0YXJ0Q29kZUludGVycHJldGVyU2Vzc2lvbicsXG4gICAgICAnU3RvcEJyb3dzZXJTZXNzaW9uJyxcbiAgICAgICdTdG9wQ29kZUludGVycHJldGVyU2Vzc2lvbicsXG4gICAgICAnU3RvcFJ1bnRpbWVTZXNzaW9uJyxcbiAgICAgICdVcGRhdGVBZ2VudFJ1bnRpbWUnLFxuICAgICAgJ1VwZGF0ZUFnZW50UnVudGltZUVuZHBvaW50JyxcbiAgICAgICdVcGRhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXInLFxuICAgICAgJ1VwZGF0ZUJyb3dzZXJTdHJlYW0nLFxuICAgICAgJ1VwZGF0ZUdhdGV3YXknLFxuICAgICAgJ1VwZGF0ZUdhdGV3YXlUYXJnZXQnLFxuICAgICAgJ1VwZGF0ZU1lbW9yeScsXG4gICAgICAnVXBkYXRlT2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyJyxcbiAgICAgICdVcGRhdGVXb3JrbG9hZElkZW50aXR5J1xuICAgIF0sXG4gICAgUmVhZDogW1xuICAgICAgJ0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgnLFxuICAgICAgJ0Nvbm5lY3RCcm93c2VyQXV0b21hdGlvblN0cmVhbScsXG4gICAgICAnQ29ubmVjdEJyb3dzZXJMaXZlVmlld1N0cmVhbScsXG4gICAgICAnR2V0QWdlbnRDYXJkJyxcbiAgICAgICdHZXRBZ2VudFJ1bnRpbWUnLFxuICAgICAgJ0dldEFnZW50UnVudGltZUVuZHBvaW50JyxcbiAgICAgICdHZXRBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXInLFxuICAgICAgJ0dldEJyb3dzZXInLFxuICAgICAgJ0dldEJyb3dzZXJTZXNzaW9uJyxcbiAgICAgICdHZXRDb2RlSW50ZXJwcmV0ZXInLFxuICAgICAgJ0dldENvZGVJbnRlcnByZXRlclNlc3Npb24nLFxuICAgICAgJ0dldEV2ZW50JyxcbiAgICAgICdHZXRHYXRld2F5JyxcbiAgICAgICdHZXRHYXRld2F5VGFyZ2V0JyxcbiAgICAgICdHZXRNZW1vcnknLFxuICAgICAgJ0dldE1lbW9yeVJlY29yZCcsXG4gICAgICAnR2V0T2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyJyxcbiAgICAgICdHZXRSZXNvdXJjZUFwaUtleScsXG4gICAgICAnR2V0UmVzb3VyY2VPYXV0aDJUb2tlbicsXG4gICAgICAnR2V0VG9rZW5WYXVsdCcsXG4gICAgICAnR2V0V29ya2xvYWRJZGVudGl0eScsXG4gICAgICAnTGlzdEFwaUtleUNyZWRlbnRpYWxQcm92aWRlcnMnLFxuICAgICAgJ0xpc3RPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXJzJyxcbiAgICAgICdMaXN0V29ya2xvYWRJZGVudGl0aWVzJyxcbiAgICAgICdTZXRUb2tlblZhdWx0Q01LJ1xuICAgIF0sXG4gICAgTGlzdDogW1xuICAgICAgJ0xpc3RBY3RvcnMnLFxuICAgICAgJ0xpc3RBZ2VudFJ1bnRpbWVFbmRwb2ludHMnLFxuICAgICAgJ0xpc3RBZ2VudFJ1bnRpbWVWZXJzaW9ucycsXG4gICAgICAnTGlzdEFnZW50UnVudGltZXMnLFxuICAgICAgJ0xpc3RCcm93c2VyU2Vzc2lvbnMnLFxuICAgICAgJ0xpc3RCcm93c2VycycsXG4gICAgICAnTGlzdENvZGVJbnRlcnByZXRlclNlc3Npb25zJyxcbiAgICAgICdMaXN0Q29kZUludGVycHJldGVycycsXG4gICAgICAnTGlzdEV2ZW50cycsXG4gICAgICAnTGlzdEdhdGV3YXlUYXJnZXRzJyxcbiAgICAgICdMaXN0R2F0ZXdheXMnLFxuICAgICAgJ0xpc3RNZW1vcmllcycsXG4gICAgICAnTGlzdE1lbW9yeVJlY29yZHMnLFxuICAgICAgJ0xpc3RTZXNzaW9ucycsXG4gICAgICAnTGlzdFRhZ3NGb3JSZXNvdXJjZScsXG4gICAgICAnUmV0cmlldmVNZW1vcnlSZWNvcmRzJ1xuICAgIF0sXG4gICAgVGFnZ2luZzogW1xuICAgICAgJ1RhZ1Jlc291cmNlJyxcbiAgICAgICdVbnRhZ1Jlc291cmNlJ1xuICAgIF1cbiAgfTtcblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgbWVtb3J5IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvbWVtb3J5Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIG1lbW9yeUlkIC0gSWRlbnRpZmllciBmb3IgdGhlIG1lbW9yeUlkLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25NZW1vcnkobWVtb3J5SWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06bWVtb3J5LyR7IG1lbW9yeUlkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBnYXRld2F5IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvZ2F0ZXdheS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBnYXRld2F5SWQgLSBJZGVudGlmaWVyIGZvciB0aGUgZ2F0ZXdheUlkLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25HYXRld2F5KGdhdGV3YXlJZDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmJlZHJvY2stYWdlbnRjb3JlOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpnYXRld2F5LyR7IGdhdGV3YXlJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgd29ya2xvYWQtaWRlbnRpdHkgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS93b3JrbG9hZElkZW50aXR5Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeUlkIC0gSWRlbnRpZmllciBmb3IgdGhlIGRpcmVjdG9yeUlkLlxuICAgKiBAcGFyYW0gd29ya2xvYWRJZGVudGl0eU5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgd29ya2xvYWRJZGVudGl0eU5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbldvcmtsb2FkSWRlbnRpdHkoZGlyZWN0b3J5SWQ6IHN0cmluZywgd29ya2xvYWRJZGVudGl0eU5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06d29ya2xvYWQtaWRlbnRpdHktZGlyZWN0b3J5LyR7IGRpcmVjdG9yeUlkIH0vd29ya2xvYWQtaWRlbnRpdHkvJHsgd29ya2xvYWRJZGVudGl0eU5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIG9hdXRoMmNyZWRlbnRpYWxwcm92aWRlciB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL29hdXRoMmNyZWRlbnRpYWxwcm92aWRlci5odG1sXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlblZhdWx0SWQgLSBJZGVudGlmaWVyIGZvciB0aGUgdG9rZW5WYXVsdElkLlxuICAgKiBAcGFyYW0gbmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBuYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25PYXV0aDJjcmVkZW50aWFscHJvdmlkZXIodG9rZW5WYXVsdElkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06dG9rZW4tdmF1bHQvJHsgdG9rZW5WYXVsdElkIH0vb2F1dGgyY3JlZGVudGlhbHByb3ZpZGVyLyR7IG5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGFwaWtleWNyZWRlbnRpYWxwcm92aWRlciB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2FwaWtleWNyZWRlbnRpYWxwcm92aWRlci5odG1sXG4gICAqXG4gICAqIEBwYXJhbSB0b2tlblZhdWx0SWQgLSBJZGVudGlmaWVyIGZvciB0aGUgdG9rZW5WYXVsdElkLlxuICAgKiBAcGFyYW0gbmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBuYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25BcGlrZXljcmVkZW50aWFscHJvdmlkZXIodG9rZW5WYXVsdElkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06dG9rZW4tdmF1bHQvJHsgdG9rZW5WYXVsdElkIH0vYXBpa2V5Y3JlZGVudGlhbHByb3ZpZGVyLyR7IG5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIHJ1bnRpbWUgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9ydW50aW1lLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJ1bnRpbWVJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBydW50aW1lSWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblJ1bnRpbWUocnVudGltZUlkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnJ1bnRpbWUvJHsgcnVudGltZUlkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBydW50aW1lLWVuZHBvaW50IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvcnVudGltZUVuZHBvaW50Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHJ1bnRpbWVJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBydW50aW1lSWQuXG4gICAqIEBwYXJhbSBuYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIG5hbWUuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblJ1bnRpbWVFbmRwb2ludChydW50aW1lSWQ6IHN0cmluZywgbmFtZTogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmJlZHJvY2stYWdlbnRjb3JlOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpydW50aW1lLyR7IHJ1bnRpbWVJZCB9L3J1bnRpbWUtZW5kcG9pbnQvJHsgbmFtZSB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgY29kZS1pbnRlcnByZXRlci1jdXN0b20gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9jb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gY29kZUludGVycHJldGVySWQgLSBJZGVudGlmaWVyIGZvciB0aGUgY29kZUludGVycHJldGVySWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkNvZGVJbnRlcnByZXRlckN1c3RvbShjb2RlSW50ZXJwcmV0ZXJJZDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmJlZHJvY2stYWdlbnRjb3JlOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpjb2RlLWludGVycHJldGVyLWN1c3RvbS8keyBjb2RlSW50ZXJwcmV0ZXJJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgY29kZS1pbnRlcnByZXRlciB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2NvZGVJbnRlcnByZXRlci5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBjb2RlSW50ZXJwcmV0ZXJJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBjb2RlSW50ZXJwcmV0ZXJJZC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uQ29kZUludGVycHJldGVyKGNvZGVJbnRlcnByZXRlcklkOiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OmF3czpjb2RlLWludGVycHJldGVyLyR7IGNvZGVJbnRlcnByZXRlcklkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBicm93c2VyLWN1c3RvbSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2Jyb3dzZXIuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlcklkIC0gSWRlbnRpZmllciBmb3IgdGhlIGJyb3dzZXJJZC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uQnJvd3NlckN1c3RvbShicm93c2VySWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06YnJvd3Nlci1jdXN0b20vJHsgYnJvd3NlcklkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBicm93c2VyIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvYnJvd3Nlci5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBicm93c2VySWQgLSBJZGVudGlmaWVyIGZvciB0aGUgYnJvd3NlcklkLlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25Ccm93c2VyKGJyb3dzZXJJZDogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmJlZHJvY2stYWdlbnRjb3JlOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTphd3M6YnJvd3Nlci8keyBicm93c2VySWQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIHdvcmtsb2FkLWlkZW50aXR5LWRpcmVjdG9yeSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL3dvcmtsb2FkSWRlbnRpdHlEaXJlY3RvcnkuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5SWQgLSBJZGVudGlmaWVyIGZvciB0aGUgZGlyZWN0b3J5SWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbldvcmtsb2FkSWRlbnRpdHlEaXJlY3RvcnkoZGlyZWN0b3J5SWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06d29ya2xvYWQtaWRlbnRpdHktZGlyZWN0b3J5LyR7IGRpcmVjdG9yeUlkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSB0b2tlbi12YXVsdCB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL3Rva2VuVmF1bHQuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5WYXVsdElkIC0gSWRlbnRpZmllciBmb3IgdGhlIHRva2VuVmF1bHRJZC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uVG9rZW5WYXVsdCh0b2tlblZhdWx0SWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06dG9rZW4tdmF1bHQvJHsgdG9rZW5WYXVsdElkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSBjcmVhdGluZyByZXF1ZXN0cyBiYXNlZCBvbiB0aGUgYWxsb3dlZCBzZXQgb2YgdmFsdWVzIGZvciBlYWNoIG9mIHRoZSBtYW5kYXRvcnkgdGFnc1xuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2NvbmRpdGlvbi1rZXlzLmh0bWwjY29uZGl0aW9uLWtleXMtZ2xvYmFsbHktYXZhaWxhYmxlXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVBZ2VudFJ1bnRpbWUoKVxuICAgKiAtIC50b0NyZWF0ZUFnZW50UnVudGltZUVuZHBvaW50KClcbiAgICogLSAudG9DcmVhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIoKVxuICAgKiAtIC50b0NyZWF0ZUJyb3dzZXIoKVxuICAgKiAtIC50b0NyZWF0ZUNvZGVJbnRlcnByZXRlcigpXG4gICAqIC0gLnRvQ3JlYXRlR2F0ZXdheSgpXG4gICAqIC0gLnRvQ3JlYXRlTWVtb3J5KClcbiAgICogLSAudG9DcmVhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIoKVxuICAgKiAtIC50b0NyZWF0ZVdvcmtsb2FkSWRlbnRpdHkoKVxuICAgKiAtIC50b1RhZ1Jlc291cmNlKClcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF3c1JlcXVlc3RUYWcodGFnS2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhd3M6UmVxdWVzdFRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IGhhdmluZyBhY3Rpb25zIGJhc2VkIG9uIHRoZSB0YWcgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2NvbmRpdGlvbi1rZXlzLmh0bWwjY29uZGl0aW9uLWtleXMtZ2xvYmFsbHktYXZhaWxhYmxlXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gcmVzb3VyY2UgdHlwZXM6XG4gICAqIC0gbWVtb3J5XG4gICAqIC0gZ2F0ZXdheVxuICAgKiAtIHdvcmtsb2FkLWlkZW50aXR5XG4gICAqIC0gb2F1dGgyY3JlZGVudGlhbHByb3ZpZGVyXG4gICAqIC0gYXBpa2V5Y3JlZGVudGlhbHByb3ZpZGVyXG4gICAqIC0gcnVudGltZVxuICAgKiAtIHJ1bnRpbWUtZW5kcG9pbnRcbiAgICogLSBjb2RlLWludGVycHJldGVyLWN1c3RvbVxuICAgKiAtIGJyb3dzZXItY3VzdG9tXG4gICAqIC0gd29ya2xvYWQtaWRlbnRpdHktZGlyZWN0b3J5XG4gICAqIC0gdG9rZW4tdmF1bHRcbiAgICpcbiAgICogQHBhcmFtIHRhZ0tleSBUaGUgdGFnIGtleSB0byBjaGVja1xuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF3c1Jlc291cmNlVGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYXdzOlJlc291cmNlVGFnLyR7IHRhZ0tleSB9YCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgY3JlYXRpbmcgcmVxdWVzdHMgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIG1hbmRhdG9yeSB0YWdzIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfY29uZGl0aW9uLWtleXMuaHRtbCNjb25kaXRpb24ta2V5cy1nbG9iYWxseS1hdmFpbGFibGVcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NyZWF0ZUFnZW50UnVudGltZSgpXG4gICAqIC0gLnRvQ3JlYXRlQWdlbnRSdW50aW1lRW5kcG9pbnQoKVxuICAgKiAtIC50b0NyZWF0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcigpXG4gICAqIC0gLnRvQ3JlYXRlQnJvd3NlcigpXG4gICAqIC0gLnRvQ3JlYXRlQ29kZUludGVycHJldGVyKClcbiAgICogLSAudG9DcmVhdGVHYXRld2F5KClcbiAgICogLSAudG9DcmVhdGVNZW1vcnkoKVxuICAgKiAtIC50b0NyZWF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcigpXG4gICAqIC0gLnRvQ3JlYXRlV29ya2xvYWRJZGVudGl0eSgpXG4gICAqIC0gLnRvVGFnUmVzb3VyY2UoKVxuICAgKiAtIC50b1VudGFnUmVzb3VyY2UoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkF3c1RhZ0tleXModmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpUYWdLZXlzYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGF1dGhvcml6ZXJUeXBlIGF0dHJpYnV0ZSBvbiBhIEdhdGV3YXlcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvI2NvbmRpdGlvbi1rZXlzLWdhdGV3YXlBdXRob3JpemVyVHlwZVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkdhdGV3YXlBdXRob3JpemVyVHlwZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgR2F0ZXdheUF1dGhvcml6ZXJUeXBlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGF1ZGllbmNlIGNsYWltIChhdWQpIGluIHRoZSBKV1QgcGFzc2VkIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1hdWRcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKVxuICAgKiAtIC50b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JKV1QoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkluYm91bmRKd3RDbGFpbUF1ZCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgSW5ib3VuZEp3dENsYWltL2F1ZGAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBjbGllbnRfaWQgY2xhaW0gaW4gdGhlIEpXVCBwYXNzZWQgaW4gdGhlIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvI2NvbmRpdGlvbi1rZXlzLWNsaWVudF9pZFxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ29tcGxldGVSZXNvdXJjZVRva2VuQXV0aCgpXG4gICAqIC0gLnRvR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvckpXVCgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmSW5ib3VuZEp3dENsYWltQ2xpZW50SWQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYEluYm91bmRKd3RDbGFpbS9jbGllbnRfaWRgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgaXNzdWVyIChpc3MpIGNsYWltIHByZXNlbnQgaW4gdGhlIEpXVCBwYXNzZWQgaW4gdGhlIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvI2NvbmRpdGlvbi1rZXlzLWlzc1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ29tcGxldGVSZXNvdXJjZVRva2VuQXV0aCgpXG4gICAqIC0gLnRvR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvckpXVCgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmSW5ib3VuZEp3dENsYWltSXNzKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBJbmJvdW5kSnd0Q2xhaW0vaXNzYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIHNjb3BlIGNsYWltIGluIHRoZSBKV1QgcGFzc2VkIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1zY29wZVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ29tcGxldGVSZXNvdXJjZVRva2VuQXV0aCgpXG4gICAqIC0gLnRvR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvckpXVCgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmSW5ib3VuZEp3dENsYWltU2NvcGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYEluYm91bmRKd3RDbGFpbS9zY29wZWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBzdWJqZWN0IGNsYWltIChzdWIpIGluIHRoZSBKV1QgcGFzc2VkIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1zdWJcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKVxuICAgKiAtIC50b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JKV1QoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkluYm91bmRKd3RDbGFpbVN1Yih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgSW5ib3VuZEp3dENsYWltL3N1YmAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IEFjdG9yIElkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1hY3RvcklkXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVFdmVudCgpXG4gICAqIC0gLnRvRGVsZXRlRXZlbnQoKVxuICAgKiAtIC50b0dldEV2ZW50KClcbiAgICogLSAudG9MaXN0RXZlbnRzKClcbiAgICogLSAudG9MaXN0U2Vzc2lvbnMoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkFjdG9ySWQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGFjdG9ySWRgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSBuYW1lc3BhY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvI2NvbmRpdGlvbi1rZXlzLW5hbWVzcGFjZVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQmF0Y2hDcmVhdGVNZW1vcnlSZWNvcmRzKClcbiAgICogLSAudG9CYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMoKVxuICAgKiAtIC50b0xpc3RNZW1vcnlSZWNvcmRzKClcbiAgICogLSAudG9SZXRyaWV2ZU1lbW9yeVJlY29yZHMoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZk5hbWVzcGFjZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgbmFtZXNwYWNlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgU2Vzc2lvbiBJZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS8jY29uZGl0aW9uLWtleXMtc2Vzc2lvbklkXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVFdmVudCgpXG4gICAqIC0gLnRvRGVsZXRlRXZlbnQoKVxuICAgKiAtIC50b0dldEV2ZW50KClcbiAgICogLSAudG9MaXN0RXZlbnRzKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZTZXNzaW9uSWQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYHNlc3Npb25JZGAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IE1lbW9yeSBTdHJhdGVneSBJZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS8jY29uZGl0aW9uLWtleXMtc3RyYXRlZ3lJZFxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvTGlzdE1lbW9yeVJlY29yZHMoKVxuICAgKiAtIC50b1JldHJpZXZlTWVtb3J5UmVjb3JkcygpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmU3RyYXRlZ3lJZCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgc3RyYXRlZ3lJZGAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBzdGF0aWMgdXNlciBJRCB2YWx1ZSBwYXNzZWQgaW4gdGhlIHJlcXVlc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvI2NvbmRpdGlvbi1rZXlzLXVzZXJpZFxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ29tcGxldGVSZXNvdXJjZVRva2VuQXV0aCgpXG4gICAqIC0gLnRvR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvclVzZXJJZCgpXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUocykgdG8gY2hlY2tcbiAgICogQHBhcmFtIG9wZXJhdG9yIFdvcmtzIHdpdGggW3N0cmluZyBvcGVyYXRvcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfY29uZGl0aW9uX29wZXJhdG9ycy5odG1sI0NvbmRpdGlvbnNfU3RyaW5nKS4gKipEZWZhdWx0OioqIGBTdHJpbmdMaWtlYFxuICAgKi9cbiAgcHVibGljIGlmVXNlcmlkKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGB1c2VyaWRgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2JlZHJvY2stYWdlbnRjb3JlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25iZWRyb2NrYWdlbnRjb3JlLmh0bWwpLlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM/OiBpYW0uUG9saWN5U3RhdGVtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
|
|
2079
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVkcm9ja2FnZW50Y29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJlZHJvY2thZ2VudGNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQXlEO0FBR3pEOzs7O0dBSUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHdCQUFlO0lBR25EOzs7Ozs7T0FNRztJQUNJLG1DQUFtQztRQUN4QyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksaUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSwwQkFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDBCQUEwQjtRQUMvQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksMEJBQTBCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLDJCQUEyQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksZ0NBQWdDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSw4QkFBOEI7UUFDbkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFD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O2dCQUNqQiw2QkFBNkI7Z0JBQzdCLDJCQUEyQjtnQkFDM0IsV0FBVztnQkFDWCxpQkFBaUI7Z0JBQ2pCLHFCQUFxQjtnQkFDckIsbUJBQW1CO2dCQUNuQix3QkFBd0I7Z0JBQ3hCLG1CQUFtQjtnQkFDbkIsZUFBZTtnQkFDZixxQkFBcUI7Z0JBQ3JCLCtCQUErQjtnQkFDL0IsK0JBQStCO2dCQUMvQix3QkFBd0I7Z0JBQ3hCLGtCQUFrQjthQUNuQjtZQUNELElBQUksRUFBRTtnQkFDSixZQUFZO2dCQUNaLDJCQUEyQjtnQkFDM0IsMEJBQTBCO2dCQUMxQixtQkFBbUI7Z0JBQ25CLHFCQUFxQjtnQkFDckIsY0FBYztnQkFDZCw2QkFBNkI7Z0JBQzdCLHNCQUFzQjtnQkFDdEIsZ0JBQWdCO2dCQUNoQixZQUFZO2dCQUNaLG9CQUFvQjtnQkFDcEIsY0FBYztnQkFDZCxjQUFjO2dCQUNkLDBCQUEwQjtnQkFDMUIsbUJBQW1CO2dCQUNuQiw2QkFBNkI7Z0JBQzdCLGNBQWM7Z0JBQ2QsbUJBQW1CO2dCQUNuQiw0QkFBNEI7Z0JBQzVCLHVCQUF1QjtnQkFDdkIsY0FBYztnQkFDZCxxQkFBcUI7Z0JBQ3JCLHVCQUF1QjthQUN4QjtZQUNELE9BQU8sRUFBRTtnQkFDUCxhQUFhO2dCQUNiLGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBMmlCRixDQUFDO0NBQ0Y7QUFyckVELDRDQXFyRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2JlZHJvY2stYWdlbnRjb3JlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hbWF6b25iZWRyb2NrYWdlbnRjb3JlLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgQmVkcm9ja0FnZW50Y29yZSBleHRlbmRzIFBvbGljeVN0YXRlbWVudCB7XG4gIHB1YmxpYyBzZXJ2aWNlUHJlZml4ID0gJ2JlZHJvY2stYWdlbnRjb3JlJztcblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY29uZmlndXJlIHZlbmRlZCB0ZWxlbWV0cnkgZm9yIGEgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBQZXJtaXNzaW9ucyBtYW5hZ2VtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL1xuICAgKi9cbiAgcHVibGljIHRvQWxsb3dWZW5kZWRMb2dEZWxpdmVyeUZvclJlc291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdBbGxvd1ZlbmRlZExvZ0RlbGl2ZXJ5Rm9yUmVzb3VyY2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBldmFsdWF0ZSBDZWRhciBwb2xpY2llcyBmb3IgYXV0aG9yaXphdGlvbiByZXF1ZXN0c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFBlcm1pc3Npb25zIG1hbmFnZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2Uvd2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9BdXRob3JpemVBY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0F1dGhvcml6ZUFjdGlvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBvbmUgb3IgbW9yZSBtZW1vcnkgcmVjb3Jkc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmTmFtZXNwYWNlKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0JhdGNoQ3JlYXRlTWVtb3J5UmVjb3Jkcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9CYXRjaENyZWF0ZU1lbW9yeVJlY29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0JhdGNoQ3JlYXRlTWVtb3J5UmVjb3JkcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBvbmUgb3IgbW9yZSBtZW1vcnkgcmVjb3Jkc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9CYXRjaERlbGV0ZU1lbW9yeVJlY29yZHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQmF0Y2hEZWxldGVNZW1vcnlSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdCYXRjaERlbGV0ZU1lbW9yeVJlY29yZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgb25lIG9yIG1vcmUgbWVtb3J5IHJlY29yZHNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZk5hbWVzcGFjZSgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9CYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQmF0Y2hVcGRhdGVNZW1vcnlSZWNvcmRzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdCYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhY2Nlc3MgdG9rZW4gd2l0aCBPQXV0aDIgZm9yIDNMTyBmbG93IHRvIGFjY2VzcyBleHRlcm5hbCByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1Jc3MoKVxuICAgKiAtIC5pZkluYm91bmRKd3RDbGFpbVN1YigpXG4gICAqIC0gLmlmSW5ib3VuZEp3dENsYWltQXVkKClcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1TY29wZSgpXG4gICAqIC0gLmlmSW5ib3VuZEp3dENsYWltQ2xpZW50SWQoKVxuICAgKiAtIC5pZlVzZXJpZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Db21wbGV0ZVJlc291cmNlVG9rZW5BdXRoLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjb25uZWN0IHRvIGEgYnJvd3NlciBhdXRvbWF0aW9uIHN0cmVhbVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Nvbm5lY3RCcm93c2VyQXV0b21hdGlvblN0cmVhbS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9Db25uZWN0QnJvd3NlckF1dG9tYXRpb25TdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Nvbm5lY3RCcm93c2VyQXV0b21hdGlvblN0cmVhbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNvbm5lY3QgdG8gYSBicm93c2VyIGxpdmUgdmlldyBzdHJlYW1cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9Db25uZWN0QnJvd3NlckxpdmVWaWV3U3RyZWFtLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0Nvbm5lY3RCcm93c2VyTGl2ZVZpZXdTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0Nvbm5lY3RCcm93c2VyTGl2ZVZpZXdTdHJlYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgYWdlbnQgcnVudGltZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVBZ2VudFJ1bnRpbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQWdlbnRSdW50aW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudFJ1bnRpbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgYWdlbnQgcnVudGltZSBlbmRwb2ludFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUFnZW50UnVudGltZUVuZHBvaW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUFnZW50UnVudGltZUVuZHBvaW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBZ2VudFJ1bnRpbWVFbmRwb2ludCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG5ldyBBUEkgS2V5IENyZWRlbnRpYWwgUHJvdmlkZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgY3VzdG9tIGJyb3dzZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVCcm93c2VyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUJyb3dzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUJyb3dzZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgY3VzdG9tIGNvZGUgaW50ZXJwcmV0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVDb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlQ29kZUludGVycHJldGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVDb2RlSW50ZXJwcmV0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgZXZhbHVhdG9yXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRXZhbHVhdG9yLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZUV2YWx1YXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlRXZhbHVhdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGFuIEV2ZW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTZXNzaW9uSWQoKVxuICAgKiAtIC5pZkFjdG9ySWQoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlRXZlbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlRXZlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZUV2ZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgbmV3IGdhdGV3YXlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlR2F0ZXdheS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVHYXRld2F5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVHYXRld2F5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgbmV3IHRhcmdldCBpbiBhbiBleGlzdGluZyBnYXRld2F5XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlR2F0ZXdheVRhcmdldC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVHYXRld2F5VGFyZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVHYXRld2F5VGFyZ2V0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY3JlYXRlIGEgTWVtb3J5IHJlc291cmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZU1lbW9yeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVNZW1vcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU1lbW9yeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG5ldyBDcmVkZW50aWFsIFByb3ZpZGVyIHRvIGFjY2VzcyBleHRlcm5hbCByZXNvdXJjZXMgd2l0aCBPQXV0aDIgcHJvdG9jb2xcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1JlcXVlc3RUYWcoKVxuICAgKiAtIC5pZkF3c1RhZ0tleXMoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlT2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgb25saW5lIGV2YWx1YXRpb24gY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIERlcGVuZGVudCBhY3Rpb25zOlxuICAgKiAtIGlhbTpQYXNzUm9sZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVPbmxpbmVFdmFsdWF0aW9uQ29uZmlnLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0NyZWF0ZU9ubGluZUV2YWx1YXRpb25Db25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZU9ubGluZUV2YWx1YXRpb25Db25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgcG9saWN5IHdpdGhpbiBhIHBvbGljeSBlbmdpbmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVQb2xpY3kuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlUG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdDcmVhdGVQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgYSBuZXcgcG9saWN5IGVuZ2luZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVBvbGljeUVuZ2luZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9DcmVhdGVQb2xpY3lFbmdpbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NyZWF0ZVBvbGljeUVuZ2luZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBhIG5ldyBXb3JrbG9hZCBJZGVudGl0eVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVxdWVzdFRhZygpXG4gICAqIC0gLmlmQXdzVGFnS2V5cygpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVdvcmtsb2FkSWRlbnRpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvQ3JlYXRlV29ya2xvYWRJZGVudGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnQ3JlYXRlV29ya2xvYWRJZGVudGl0eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhbiBhZ2VudCBydW50aW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQWdlbnRSdW50aW1lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUFnZW50UnVudGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQWdlbnRSdW50aW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVBZ2VudFJ1bnRpbWVFbmRwb2ludC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBZ2VudFJ1bnRpbWVFbmRwb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSByZWdpc3RlcmVkIEFQSSBLZXkgQ3JlZGVudGlhbCBQcm92aWRlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIGN1c3RvbSBicm93c2VyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlQnJvd3Nlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVCcm93c2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVCcm93c2VyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgY3VzdG9tIGNvZGUgaW50ZXJwcmV0ZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVDb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlQ29kZUludGVycHJldGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVDb2RlSW50ZXJwcmV0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gZXZhbHVhdG9yXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRXZhbHVhdG9yLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUV2YWx1YXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlRXZhbHVhdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIEV2ZW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTZXNzaW9uSWQoKVxuICAgKiAtIC5pZkFjdG9ySWQoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlRXZlbnQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlRXZlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUV2ZW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGFuIGV4aXN0aW5nIGdhdGV3YXlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVHYXRld2F5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUdhdGV3YXkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUdhdGV3YXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gZXhpc3RpbmcgZ2F0ZXdheSB0YXJnZXRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVHYXRld2F5VGFyZ2V0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0RlbGV0ZUdhdGV3YXlUYXJnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZUdhdGV3YXlUYXJnZXQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSBNZW1vcnkgcmVzb3VyY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVNZW1vcnkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlTWVtb3J5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVNZW1vcnknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYSBNZW1vcnkgUmVjb3JkXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZU1lbW9yeVJlY29yZC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVNZW1vcnlSZWNvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZU1lbW9yeVJlY29yZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHJlZ2lzdGVyZWQgT0F1dGgyIENyZWRlbnRpYWwgUHJvdmlkZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlT2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgYW4gb25saW5lIGV2YWx1YXRpb24gY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZU9ubGluZUV2YWx1YXRpb25Db25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlT25saW5lRXZhbHVhdGlvbkNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlT25saW5lRXZhbHVhdGlvbkNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHBvbGljeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZVBvbGljeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9EZWxldGVQb2xpY3koKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVBvbGljeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGRlbGV0ZSBhIHBvbGljeSBlbmdpbmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZWxldGVQb2xpY3lFbmdpbmUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUG9saWN5RW5naW5lKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEZWxldGVQb2xpY3lFbmdpbmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHJlc291cmNlLWJhc2VkIHBvbGljeSBmb3IgYSBCZWRyb2NrIHJlc291cmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVsZXRlUmVzb3VyY2VQb2xpY3kuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlUmVzb3VyY2VQb2xpY3koKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0RlbGV0ZVJlc291cmNlUG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZGVsZXRlIGEgcmVnaXN0ZXJlZCBXb3JrbG9hZCBJZGVudGl0eVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RlbGV0ZVdvcmtsb2FkSWRlbnRpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvRGVsZXRlV29ya2xvYWRJZGVudGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRGVsZXRlV29ya2xvYWRJZGVudGl0eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJ1biBhbiBldmFsdWF0aW9uIHVzaW5nIGFuIGV2YWx1YXRvclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9FdmFsdWF0ZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9FdmFsdWF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRXZhbHVhdGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhbiBhZ2VudCBjYXJkIGZvciBBMkFcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBZ2VudENhcmQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QWdlbnRDYXJkKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBZ2VudENhcmQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhbiBhZ2VudCBydW50aW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBZ2VudFJ1bnRpbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QWdlbnRSdW50aW1lKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBZ2VudFJ1bnRpbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhbiBhZ2VudCBydW50aW1lIGVuZHBvaW50XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBZ2VudFJ1bnRpbWVFbmRwb2ludC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRBZ2VudFJ1bnRpbWVFbmRwb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0QWdlbnRSdW50aW1lRW5kcG9pbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBmZXRjaCBhIHJlZ2lzdGVyZWQgQVBJIEtleSBDcmVkZW50aWFsIFByb3ZpZGVyIGJ5IGl0cyBuYW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhIGJyb3dzZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEJyb3dzZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QnJvd3NlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0QnJvd3NlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGdldCBkZXRhaWxzIG9mIGEgYnJvd3NlciBzZXNzaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0QnJvd3NlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0QnJvd3NlclNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEJyb3dzZXJTZXNzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZ2V0IGRldGFpbHMgb2YgYSBjb2RlIGludGVycHJldGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRDb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0Q29kZUludGVycHJldGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRDb2RlSW50ZXJwcmV0ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhIGNvZGUgaW50ZXJwcmV0ZXIgc2Vzc2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldENvZGVJbnRlcnByZXRlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0Q29kZUludGVycHJldGVyU2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0Q29kZUludGVycHJldGVyU2Vzc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGdldCBkZXRhaWxzIG9mIGFuIGV2YWx1YXRvclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0RXZhbHVhdG9yLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldEV2YWx1YXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0RXZhbHVhdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZmV0Y2ggYW4gRXZlbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU2Vzc2lvbklkKClcbiAgICogLSAuaWZBY3RvcklkKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEV2ZW50Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldEV2ZW50KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRFdmVudCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGFuIGV4aXN0aW5nIGdhdGV3YXlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEdhdGV3YXkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0R2F0ZXdheSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0R2F0ZXdheScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGFuIGV4aXN0aW5nIGdhdGV3YXkgdGFyZ2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRHYXRld2F5VGFyZ2V0Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldEdhdGV3YXlUYXJnZXQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldEdhdGV3YXlUYXJnZXQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBmZXRjaCBkZXRhaWxzIGZvciBhIE1lbW9yeSByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0TWVtb3J5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE1lbW9yeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0TWVtb3J5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZmV0Y2ggYSBNZW1vcnkgUmVjb3JkXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0TWVtb3J5UmVjb3JkLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE1lbW9yeVJlY29yZCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0TWVtb3J5UmVjb3JkJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZmV0Y2ggYSByZWdpc3RlcmVkIE9BdXRoMiBDcmVkZW50aWFsIFByb3ZpZGVyIGJ5IGl0cyBuYW1lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0T2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBnZXQgZGV0YWlscyBvZiBhbiBvbmxpbmUgZXZhbHVhdGlvbiBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRPbmxpbmVFdmFsdWF0aW9uQ29uZmlnLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldE9ubGluZUV2YWx1YXRpb25Db25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldE9ubGluZUV2YWx1YXRpb25Db25maWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhIHBvbGljeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0UG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFBvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0UG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgYSBwb2xpY3kgZW5naW5lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRQb2xpY3lFbmdpbmUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0UG9saWN5RW5naW5lKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRQb2xpY3lFbmdpbmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBzdGF0dXMgYW5kIHJlc3VsdHMgb2YgYSBwb2xpY3kgZ2VuZXJhdGlvbiByZXF1ZXN0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRQb2xpY3lHZW5lcmF0aW9uLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0dldFBvbGljeUdlbmVyYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFBvbGljeUdlbmVyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhbiBBUEkgS2V5IGFzc29jaWF0ZWQgd2l0aCBhbiBBcGkgS2V5IENyZWRlbnRpYWwgUHJvdmlkZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRSZXNvdXJjZUFwaUtleS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRSZXNvdXJjZUFwaUtleSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0UmVzb3VyY2VBcGlLZXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byByZXRyaWV2ZSBhY2Nlc3MgdG9rZW4gd2l0aCBPQXV0aDIgMkxPIG9yIDNMTyBmbG93IHRvIGFjY2VzcyBleHRlcm5hbCByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFJlc291cmNlT2F1dGgyVG9rZW4uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0UmVzb3VyY2VPYXV0aDJUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0UmVzb3VyY2VPYXV0aDJUb2tlbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIHRoZSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgZm9yIGEgQmVkcm9jayByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0UmVzb3VyY2VQb2xpY3kuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0UmVzb3VyY2VQb2xpY3koKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFJlc291cmNlUG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZmV0Y2ggdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBvZiB0aGUgVG9rZW5WYXVsdCwgaW5jbHVkaW5nIGVuY3J5cHRpb24gc2V0dGluZ3NcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFRva2VuVmF1bHQuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0VG9rZW5WYXVsdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0VG9rZW5WYXVsdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGFuIFdvcmtsb2FkIGFjY2VzcyB0b2tlbiBmb3IgYWdlbnRpYyB3b3JrbG9hZHMgbm90IGFjdGluZyBvbiBiZWhhbGYgb2YgYSB1c2VyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFdvcmtsb2FkQWNjZXNzVG9rZW4uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvR2V0V29ya2xvYWRBY2Nlc3NUb2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0V29ya2xvYWRBY2Nlc3NUb2tlbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIGFuIFdvcmtsb2FkIGFjY2VzcyB0b2tlbiBmb3IgYWdlbnRpYyB3b3JrbG9hZHMgYWN0aW5nIG9uIGJlaGFsZiBvZiB1c2VyIHdpdGggSldUIHRva2VuXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1Jc3MoKVxuICAgKiAtIC5pZkluYm91bmRKd3RDbGFpbVN1YigpXG4gICAqIC0gLmlmSW5ib3VuZEp3dENsYWltQXVkKClcbiAgICogLSAuaWZJbmJvdW5kSnd0Q2xhaW1TY29wZSgpXG4gICAqIC0gLmlmSW5ib3VuZEp3dENsYWltQ2xpZW50SWQoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvckpXVC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldUKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldUJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmV0cmlldmUgYW4gV29ya2xvYWQgYWNjZXNzIHRva2VuIGZvciBhZ2VudGljIHdvcmtsb2FkcyBhY3Rpbmcgb24gYmVoYWxmIG9mIHVzZXIgd2l0aCBVc2VyIElkXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZVc2VyaWQoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0V29ya2xvYWRBY2Nlc3NUb2tlbkZvclVzZXJJZC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9yVXNlcklkKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9yVXNlcklkJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gZmV0Y2ggZGV0YWlscyBmb3IgYSBzcGVjaWZpYyBXb3JrbG9hZCBpZGVudGl0eSwgaW5jbHVkaW5nIGl0cyBuYW1lIGFuZCBhbGxvd2VkIE9BdXRoMiByZXR1cm4gVVJMc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0V29ya2xvYWRJZGVudGl0eS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9HZXRXb3JrbG9hZElkZW50aXR5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdHZXRXb3JrbG9hZElkZW50aXR5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIGFuIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfSW52b2tlQWdlbnRSdW50aW1lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0ludm9rZUFnZW50UnVudGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSW52b2tlQWdlbnRSdW50aW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIGFuIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnQgd2l0aCBYLUFtem4tQmVkcm9jay1BZ2VudENvcmUtUnVudGltZS1Vc2VyLUlkIGhlYWRlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9JbnZva2VBZ2VudFJ1bnRpbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvSW52b2tlQWdlbnRSdW50aW1lRm9yVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSW52b2tlQWdlbnRSdW50aW1lRm9yVXNlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGludm9rZSBhbiBhZ2VudCBydW50aW1lIGVuZHBvaW50IHdpdGggV2ViU29ja2V0IHN0cmVhbVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9JbnZva2VBZ2VudFJ1bnRpbWVXaXRoV2ViU29ja2V0U3RyZWFtLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0ludm9rZUFnZW50UnVudGltZVdpdGhXZWJTb2NrZXRTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0ludm9rZUFnZW50UnVudGltZVdpdGhXZWJTb2NrZXRTdHJlYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbnZva2UgYW4gYWdlbnQgcnVudGltZSBlbmRwb2ludCB3aXRoIFdlYlNvY2tldCBzdHJlYW0gYW5kIHdpdGggWC1BbXpuLUJlZHJvY2stQWdlbnRDb3JlLVJ1bnRpbWUtVXNlci1JZCBoZWFkZXJcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfSW52b2tlQWdlbnRSdW50aW1lV2l0aFdlYlNvY2tldFN0cmVhbS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9JbnZva2VBZ2VudFJ1bnRpbWVXaXRoV2ViU29ja2V0U3RyZWFtRm9yVXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSW52b2tlQWdlbnRSdW50aW1lV2l0aFdlYlNvY2tldFN0cmVhbUZvclVzZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbnZva2UgYSBjb2RlIGludGVycHJldGVyIHNlc3Npb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfSW52b2tlQ29kZUludGVycHJldGVyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0ludm9rZUNvZGVJbnRlcnByZXRlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSW52b2tlQ29kZUludGVycHJldGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIGEgZ2F0ZXdheVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFBlcm1pc3Npb25zIG1hbmFnZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2Uvd2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9JbnZva2VHYXRld2F5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdJbnZva2VHYXRld2F5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBBY3RvcnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QWN0b3JzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RBY3RvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBY3RvcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QWdlbnRSdW50aW1lRW5kcG9pbnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RBZ2VudFJ1bnRpbWVFbmRwb2ludHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBZ2VudFJ1bnRpbWVFbmRwb2ludHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFnZW50IHJ1bnRpbWUgdmVyc2lvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RBZ2VudFJ1bnRpbWVWZXJzaW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QWdlbnRSdW50aW1lVmVyc2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RBZ2VudFJ1bnRpbWVWZXJzaW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWdlbnQgcnVudGltZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RBZ2VudFJ1bnRpbWVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RBZ2VudFJ1bnRpbWVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QWdlbnRSdW50aW1lcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgYWxsIEFQSSBLZXkgQ3JlZGVudGlhbCBQcm92aWRlcnMgaW4gdGhlIFRva2VuIFZhdWx0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0QXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEFwaUtleUNyZWRlbnRpYWxQcm92aWRlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGJyb3dzZXIgc2Vzc2lvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QnJvd3NlclNlc3Npb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RCcm93c2VyU2Vzc2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RCcm93c2VyU2Vzc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGJyb3dzZXJzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0QnJvd3NlcnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdEJyb3dzZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0QnJvd3NlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGNvZGUgaW50ZXJwcmV0ZXIgc2Vzc2lvbnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0Q29kZUludGVycHJldGVyU2Vzc2lvbnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdENvZGVJbnRlcnByZXRlclNlc3Npb25zKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0Q29kZUludGVycHJldGVyU2Vzc2lvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGNvZGUgaW50ZXJwcmV0ZXJzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0Q29kZUludGVycHJldGVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0Q29kZUludGVycHJldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdENvZGVJbnRlcnByZXRlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGV2YWx1YXRvcnNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RFdmFsdWF0b3JzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RFdmFsdWF0b3JzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0RXZhbHVhdG9ycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgZXZlbnRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlNlc3Npb25JZCgpXG4gICAqIC0gLmlmQWN0b3JJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0RXZlbnRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RFdmVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RFdmVudHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGV4aXN0aW5nIGdhdGV3YXkgdGFyZ2V0c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEdhdGV3YXlUYXJnZXRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RHYXRld2F5VGFyZ2V0cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEdhdGV3YXlUYXJnZXRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBleGlzdGluZyBnYXRld2F5c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdEdhdGV3YXlzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RHYXRld2F5cygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdEdhdGV3YXlzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBtZW1vcnkgcmVzb3VyY2VzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWVtb3JpZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1lbW9yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWVtb3JpZXMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGV4dHJhY3Rpb24gam9icyBmb3IgdGhpcyBtZW1vcnlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWVtb3J5RXh0cmFjdGlvbkpvYnMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE1lbW9yeUV4dHJhY3Rpb25Kb2JzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0TWVtb3J5RXh0cmFjdGlvbkpvYnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IG1lbW9yeSByZWNvcmRzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZk5hbWVzcGFjZSgpXG4gICAqIC0gLmlmU3RyYXRlZ3lJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWVtb3J5UmVjb3Jkcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0TWVtb3J5UmVjb3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE1lbW9yeVJlY29yZHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IGFsbCBPQXV0aDIgQ3JlZGVudGlhbCBQcm92aWRlcnMgaW4gdGhlIFRva2VuIFZhdWx0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0T2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVycy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0T2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVycygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdE9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IG9ubGluZSBldmFsdWF0aW9uIGNvbmZpZ3VyYXRpb25zXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogTGlzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0T25saW5lRXZhbHVhdGlvbkNvbmZpZ3MuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdE9ubGluZUV2YWx1YXRpb25Db25maWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0T25saW5lRXZhbHVhdGlvbkNvbmZpZ3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBsaXN0IHBvbGljaWVzIHdpdGhpbiBhIHBvbGljeSBlbmdpbmVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RQb2xpY2llcy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0UG9saWNpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RQb2xpY2llcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgcG9saWN5IGVuZ2luZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBMaXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RQb2xpY3lFbmdpbmVzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RQb2xpY3lFbmdpbmVzKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0UG9saWN5RW5naW5lcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgZ2VuZXJhdGVkIHBvbGljeSBhc3NldHMgZnJvbSBhIGdlbmVyYXRpb24gcmVxdWVzdFxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdFBvbGljeUdlbmVyYXRpb25Bc3NldHMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFBvbGljeUdlbmVyYXRpb25Bc3NldHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RQb2xpY3lHZW5lcmF0aW9uQXNzZXRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBwb2xpY3kgZ2VuZXJhdGlvbiByZXF1ZXN0c1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdFBvbGljeUdlbmVyYXRpb25zLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b0xpc3RQb2xpY3lHZW5lcmF0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFBvbGljeUdlbmVyYXRpb25zJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBzZXNzaW9uc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBY3RvcklkKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RTZXNzaW9ucy5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0U2Vzc2lvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xpc3RTZXNzaW9ucycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGxpc3QgdGFncyBmb3IgYSBCZWRyb2NrLUFnZW50Q29yZSByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdFRhZ3NGb3JSZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9MaXN0VGFnc0ZvclJlc291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMaXN0VGFnc0ZvclJlc291cmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbGlzdCBhbGwgV29ya2xvYWQgSWRlbnRpdGllcyBpbiB0aGUgY2FsbGVyJ3MgQVdTIGFjY291bnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RXb3JrbG9hZElkZW50aXRpZXMuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTGlzdFdvcmtsb2FkSWRlbnRpdGllcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGlzdFdvcmtsb2FkSWRlbnRpdGllcycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNyZWF0ZSBvciBtb2RpZnkgd2lsZGNhcmQgcG9saWNpZXMgdGhhdCBhcHBseSB0byBnYXRld2F5IHJlc291cmNlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFBlcm1pc3Npb25zIG1hbmFnZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2Uvd2VsY29tZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9NYW5hZ2VBZG1pblBvbGljeSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTWFuYWdlQWRtaW5Qb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgb3IgbW9kaWZ5IHBvbGljaWVzIHRoYXQgYXBwbHkgdG8gc3BlY2lmaWMgZ2F0ZXdheSByZXNvdXJjZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBQZXJtaXNzaW9ucyBtYW5hZ2VtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL3dlbGNvbWUuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvTWFuYWdlUmVzb3VyY2VTY29wZWRQb2xpY3koKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01hbmFnZVJlc291cmNlU2NvcGVkUG9saWN5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcGVyZm9ybSBwYXJ0aWFsIGV2YWx1YXRpb24gb2YgQ2VkYXIgcG9saWNpZXMgdG8gYXV0aG9yaXplIGEgY2FsbGVyIHRvIGxpc3QgdG9vbHMgdGhleSBhcmUgYWxsb3dlZCB0byBjYWxsXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUGVybWlzc2lvbnMgbWFuYWdlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS93ZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1BhcnRpYWxseUF1dGhvcml6ZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1BhcnRpYWxseUF1dGhvcml6ZUFjdGlvbnMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjcmVhdGUgb3IgdXBkYXRlIHRoZSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgZm9yIGEgQmVkcm9jayByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1B1dFJlc291cmNlUG9saWN5Lmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1B1dFJlc291cmNlUG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdQdXRSZXNvdXJjZVBvbGljeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJldHJpZXZlIG1lbW9yeSByZWNvcmRzIHRocm91Z2ggc2VtYXRpYyBxdWVyeVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IExpc3RcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZOYW1lc3BhY2UoKVxuICAgKiAtIC5pZlN0cmF0ZWd5SWQoKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUmV0cmlldmVNZW1vcnlSZWNvcmRzLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1JldHJpZXZlTWVtb3J5UmVjb3JkcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnUmV0cmlldmVNZW1vcnlSZWNvcmRzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gYXNzb2NpYXRlIGEgQ3VzdG9tZXIgTWFuYWdlZCBLZXkgKENNSykgb3IgYSBTZXJ2aWNlIE1hbmFnZWQgS2V5IHdpdGggYSBzcGVjaWZpYyBUb2tlblZhdWx0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TZXRUb2tlblZhdWx0Q01LLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1NldFRva2VuVmF1bHRDTUsoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1NldFRva2VuVmF1bHRDTUsnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydHMgYSBuZXcgYnJvd3NlciBzZXNzaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0YXJ0QnJvd3NlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRCcm93c2VyU2Vzc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnU3RhcnRCcm93c2VyU2Vzc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0YXJ0IGEgbmV3IGNvZGUgaW50ZXJwcmV0ZXIgc2Vzc2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydENvZGVJbnRlcnByZXRlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRDb2RlSW50ZXJwcmV0ZXJTZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydENvZGVJbnRlcnByZXRlclNlc3Npb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCBtZW1vcnkgZXh0cmFjdGlvbiBqb2JcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0cmF0ZWd5SWQoKVxuICAgKiAtIC5pZlNlc3Npb25JZCgpXG4gICAqIC0gLmlmQWN0b3JJZCgpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydE1lbW9yeUV4dHJhY3Rpb25Kb2IuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRNZW1vcnlFeHRyYWN0aW9uSm9iKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydE1lbW9yeUV4dHJhY3Rpb25Kb2InKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdGFydCBhbiBBSS1wb3dlcmVkIHBvbGljeSBnZW5lcmF0aW9uIHJlcXVlc3RcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdGFydFBvbGljeUdlbmVyYXRpb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RhcnRQb2xpY3lHZW5lcmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdGFydFBvbGljeUdlbmVyYXRpb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzdG9wIGEgYnJvd3NlciBzZXNzaW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1N0b3BCcm93c2VyU2Vzc2lvbi5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9TdG9wQnJvd3NlclNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0b3BCcm93c2VyU2Vzc2lvbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHN0b3AgYSBjb2RlIGludGVycHJldGVyIHNlc3Npb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfU3RvcENvZGVJbnRlcnByZXRlclNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RvcENvZGVJbnRlcnByZXRlclNlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N0b3BDb2RlSW50ZXJwcmV0ZXJTZXNzaW9uJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc3RvcCBhIHJ1bnRpbWUgc2Vzc2lvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9TdG9wUnVudGltZVNlc3Npb24uaHRtbFxuICAgKi9cbiAgcHVibGljIHRvU3RvcFJ1bnRpbWVTZXNzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTdG9wUnVudGltZVNlc3Npb24nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBlbmFibGUgc2VhcmNoIG9uIGdhdGV3YXlzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUGVybWlzc2lvbnMgbWFuYWdlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS93ZWxjb21lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1N5bmNocm9uaXplR2F0ZXdheVRhcmdldHMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1N5bmNocm9uaXplR2F0ZXdheVRhcmdldHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBUYWcgYSBCZWRyb2NrLUFnZW50Q29yZSByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmdcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICogLSAuaWZBd3NSZXF1ZXN0VGFnKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVGFnUmVzb3VyY2UuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVGFnUmVzb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1RhZ1Jlc291cmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gVW50YWcgYSBCZWRyb2NrLUFnZW50Q29yZSByZXNvdXJjZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFRhZ2dpbmdcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NUYWdLZXlzKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVW50YWdSZXNvdXJjZS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VbnRhZ1Jlc291cmNlKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVbnRhZ1Jlc291cmNlJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIGFnZW50IHJ1bnRpbWVcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQWdlbnRSdW50aW1lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUFnZW50UnVudGltZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQWdlbnRSdW50aW1lJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIGFnZW50IHJ1bnRpbWUgZW5kcG9pbnRcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVBZ2VudFJ1bnRpbWVFbmRwb2ludC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVBZ2VudFJ1bnRpbWVFbmRwb2ludCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYW4gZXhpc3RpbmcgQVBJIEtleSBDcmVkZW50aWFsIFByb3ZpZGVyXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIHRoZSBzdGF0dXMgb2YgYnJvd3NlciBzZXNzaW9uIHN0cmVhbVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVCcm93c2VyU3RyZWFtLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUJyb3dzZXJTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZUJyb3dzZXJTdHJlYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYW4gZXZhbHVhdG9yXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlRXZhbHVhdG9yLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZUV2YWx1YXRvcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlRXZhbHVhdG9yJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIGdhdGV3YXlcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBEZXBlbmRlbnQgYWN0aW9uczpcbiAgICogLSBpYW06UGFzc1JvbGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlR2F0ZXdheS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVHYXRld2F5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVHYXRld2F5Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIGdhdGV3YXkgdGFyZ2V0XG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlR2F0ZXdheVRhcmdldC5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVHYXRld2F5VGFyZ2V0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVHYXRld2F5VGFyZ2V0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIGEgTWVtb3J5IHJlc291cmNlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU1lbW9yeS5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVNZW1vcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZU1lbW9yeScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyBPQXV0aDIgQ3JlZGVudGlhbCBQcm92aWRlclxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlci5odG1sXG4gICAqL1xuICBwdWJsaWMgdG9VcGRhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1VwZGF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBvbmxpbmUgZXZhbHVhdGlvbiBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogRGVwZW5kZW50IGFjdGlvbnM6XG4gICAqIC0gaWFtOlBhc3NSb2xlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZU9ubGluZUV2YWx1YXRpb25Db25maWcuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlT25saW5lRXZhbHVhdGlvbkNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlT25saW5lRXZhbHVhdGlvbkNvbmZpZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyBwb2xpY3lcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUtY29udHJvbC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9VcGRhdGVQb2xpY3kuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlUG9saWN5KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdVcGRhdGVQb2xpY3knKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB1cGRhdGUgYSBwb2xpY3kgZW5naW5lXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlLWNvbnRyb2wvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVXBkYXRlUG9saWN5RW5naW5lLmh0bWxcbiAgICovXG4gIHB1YmxpYyB0b1VwZGF0ZVBvbGljeUVuZ2luZSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlUG9saWN5RW5naW5lJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gdXBkYXRlIHRoZSBtZXRhZGF0YSBvZiBhbiBleGlzdGluZyBXb3JrbG9hZCBJZGVudGl0eVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS1jb250cm9sL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1VwZGF0ZVdvcmtsb2FkSWRlbnRpdHkuaHRtbFxuICAgKi9cbiAgcHVibGljIHRvVXBkYXRlV29ya2xvYWRJZGVudGl0eSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVXBkYXRlV29ya2xvYWRJZGVudGl0eScpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjY2Vzc0xldmVsTGlzdDogQWNjZXNzTGV2ZWxMaXN0ID0ge1xuICAgICdQZXJtaXNzaW9ucyBtYW5hZ2VtZW50JzogW1xuICAgICAgJ0FsbG93VmVuZGVkTG9nRGVsaXZlcnlGb3JSZXNvdXJjZScsXG4gICAgICAnQXV0aG9yaXplQWN0aW9uJyxcbiAgICAgICdJbnZva2VHYXRld2F5JyxcbiAgICAgICdNYW5hZ2VBZG1pblBvbGljeScsXG4gICAgICAnTWFuYWdlUmVzb3VyY2VTY29wZWRQb2xpY3knLFxuICAgICAgJ1BhcnRpYWxseUF1dGhvcml6ZUFjdGlvbnMnLFxuICAgICAgJ1N5bmNocm9uaXplR2F0ZXdheVRhcmdldHMnXG4gICAgXSxcbiAgICBXcml0ZTogW1xuICAgICAgJ0JhdGNoQ3JlYXRlTWVtb3J5UmVjb3JkcycsXG4gICAgICAnQmF0Y2hEZWxldGVNZW1vcnlSZWNvcmRzJyxcbiAgICAgICdCYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMnLFxuICAgICAgJ0NyZWF0ZUFnZW50UnVudGltZScsXG4gICAgICAnQ3JlYXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnLFxuICAgICAgJ0NyZWF0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnQ3JlYXRlQnJvd3NlcicsXG4gICAgICAnQ3JlYXRlQ29kZUludGVycHJldGVyJyxcbiAgICAgICdDcmVhdGVFdmFsdWF0b3InLFxuICAgICAgJ0NyZWF0ZUV2ZW50JyxcbiAgICAgICdDcmVhdGVHYXRld2F5JyxcbiAgICAgICdDcmVhdGVHYXRld2F5VGFyZ2V0JyxcbiAgICAgICdDcmVhdGVNZW1vcnknLFxuICAgICAgJ0NyZWF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnQ3JlYXRlT25saW5lRXZhbHVhdGlvbkNvbmZpZycsXG4gICAgICAnQ3JlYXRlUG9saWN5JyxcbiAgICAgICdDcmVhdGVQb2xpY3lFbmdpbmUnLFxuICAgICAgJ0NyZWF0ZVdvcmtsb2FkSWRlbnRpdHknLFxuICAgICAgJ0RlbGV0ZUFnZW50UnVudGltZScsXG4gICAgICAnRGVsZXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnLFxuICAgICAgJ0RlbGV0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnRGVsZXRlQnJvd3NlcicsXG4gICAgICAnRGVsZXRlQ29kZUludGVycHJldGVyJyxcbiAgICAgICdEZWxldGVFdmFsdWF0b3InLFxuICAgICAgJ0RlbGV0ZUV2ZW50JyxcbiAgICAgICdEZWxldGVHYXRld2F5JyxcbiAgICAgICdEZWxldGVHYXRld2F5VGFyZ2V0JyxcbiAgICAgICdEZWxldGVNZW1vcnknLFxuICAgICAgJ0RlbGV0ZU1lbW9yeVJlY29yZCcsXG4gICAgICAnRGVsZXRlT2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyJyxcbiAgICAgICdEZWxldGVPbmxpbmVFdmFsdWF0aW9uQ29uZmlnJyxcbiAgICAgICdEZWxldGVQb2xpY3knLFxuICAgICAgJ0RlbGV0ZVBvbGljeUVuZ2luZScsXG4gICAgICAnRGVsZXRlUmVzb3VyY2VQb2xpY3knLFxuICAgICAgJ0RlbGV0ZVdvcmtsb2FkSWRlbnRpdHknLFxuICAgICAgJ0V2YWx1YXRlJyxcbiAgICAgICdHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuJyxcbiAgICAgICdHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldUJyxcbiAgICAgICdHZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9yVXNlcklkJyxcbiAgICAgICdJbnZva2VBZ2VudFJ1bnRpbWUnLFxuICAgICAgJ0ludm9rZUFnZW50UnVudGltZUZvclVzZXInLFxuICAgICAgJ0ludm9rZUFnZW50UnVudGltZVdpdGhXZWJTb2NrZXRTdHJlYW0nLFxuICAgICAgJ0ludm9rZUFnZW50UnVudGltZVdpdGhXZWJTb2NrZXRTdHJlYW1Gb3JVc2VyJyxcbiAgICAgICdJbnZva2VDb2RlSW50ZXJwcmV0ZXInLFxuICAgICAgJ1B1dFJlc291cmNlUG9saWN5JyxcbiAgICAgICdTdGFydEJyb3dzZXJTZXNzaW9uJyxcbiAgICAgICdTdGFydENvZGVJbnRlcnByZXRlclNlc3Npb24nLFxuICAgICAgJ1N0YXJ0TWVtb3J5RXh0cmFjdGlvbkpvYicsXG4gICAgICAnU3RhcnRQb2xpY3lHZW5lcmF0aW9uJyxcbiAgICAgICdTdG9wQnJvd3NlclNlc3Npb24nLFxuICAgICAgJ1N0b3BDb2RlSW50ZXJwcmV0ZXJTZXNzaW9uJyxcbiAgICAgICdTdG9wUnVudGltZVNlc3Npb24nLFxuICAgICAgJ1VwZGF0ZUFnZW50UnVudGltZScsXG4gICAgICAnVXBkYXRlQWdlbnRSdW50aW1lRW5kcG9pbnQnLFxuICAgICAgJ1VwZGF0ZUFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnVXBkYXRlQnJvd3NlclN0cmVhbScsXG4gICAgICAnVXBkYXRlRXZhbHVhdG9yJyxcbiAgICAgICdVcGRhdGVHYXRld2F5JyxcbiAgICAgICdVcGRhdGVHYXRld2F5VGFyZ2V0JyxcbiAgICAgICdVcGRhdGVNZW1vcnknLFxuICAgICAgJ1VwZGF0ZU9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnVXBkYXRlT25saW5lRXZhbHVhdGlvbkNvbmZpZycsXG4gICAgICAnVXBkYXRlUG9saWN5JyxcbiAgICAgICdVcGRhdGVQb2xpY3lFbmdpbmUnLFxuICAgICAgJ1VwZGF0ZVdvcmtsb2FkSWRlbnRpdHknXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnQ29tcGxldGVSZXNvdXJjZVRva2VuQXV0aCcsXG4gICAgICAnQ29ubmVjdEJyb3dzZXJBdXRvbWF0aW9uU3RyZWFtJyxcbiAgICAgICdDb25uZWN0QnJvd3NlckxpdmVWaWV3U3RyZWFtJyxcbiAgICAgICdHZXRBZ2VudENhcmQnLFxuICAgICAgJ0dldEFnZW50UnVudGltZScsXG4gICAgICAnR2V0QWdlbnRSdW50aW1lRW5kcG9pbnQnLFxuICAgICAgJ0dldEFwaUtleUNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnR2V0QnJvd3NlcicsXG4gICAgICAnR2V0QnJvd3NlclNlc3Npb24nLFxuICAgICAgJ0dldENvZGVJbnRlcnByZXRlcicsXG4gICAgICAnR2V0Q29kZUludGVycHJldGVyU2Vzc2lvbicsXG4gICAgICAnR2V0RXZhbHVhdG9yJyxcbiAgICAgICdHZXRFdmVudCcsXG4gICAgICAnR2V0R2F0ZXdheScsXG4gICAgICAnR2V0R2F0ZXdheVRhcmdldCcsXG4gICAgICAnR2V0TWVtb3J5JyxcbiAgICAgICdHZXRNZW1vcnlSZWNvcmQnLFxuICAgICAgJ0dldE9hdXRoMkNyZWRlbnRpYWxQcm92aWRlcicsXG4gICAgICAnR2V0T25saW5lRXZhbHVhdGlvbkNvbmZpZycsXG4gICAgICAnR2V0UG9saWN5JyxcbiAgICAgICdHZXRQb2xpY3lFbmdpbmUnLFxuICAgICAgJ0dldFBvbGljeUdlbmVyYXRpb24nLFxuICAgICAgJ0dldFJlc291cmNlQXBpS2V5JyxcbiAgICAgICdHZXRSZXNvdXJjZU9hdXRoMlRva2VuJyxcbiAgICAgICdHZXRSZXNvdXJjZVBvbGljeScsXG4gICAgICAnR2V0VG9rZW5WYXVsdCcsXG4gICAgICAnR2V0V29ya2xvYWRJZGVudGl0eScsXG4gICAgICAnTGlzdEFwaUtleUNyZWRlbnRpYWxQcm92aWRlcnMnLFxuICAgICAgJ0xpc3RPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXJzJyxcbiAgICAgICdMaXN0V29ya2xvYWRJZGVudGl0aWVzJyxcbiAgICAgICdTZXRUb2tlblZhdWx0Q01LJ1xuICAgIF0sXG4gICAgTGlzdDogW1xuICAgICAgJ0xpc3RBY3RvcnMnLFxuICAgICAgJ0xpc3RBZ2VudFJ1bnRpbWVFbmRwb2ludHMnLFxuICAgICAgJ0xpc3RBZ2VudFJ1bnRpbWVWZXJzaW9ucycsXG4gICAgICAnTGlzdEFnZW50UnVudGltZXMnLFxuICAgICAgJ0xpc3RCcm93c2VyU2Vzc2lvbnMnLFxuICAgICAgJ0xpc3RCcm93c2VycycsXG4gICAgICAnTGlzdENvZGVJbnRlcnByZXRlclNlc3Npb25zJyxcbiAgICAgICdMaXN0Q29kZUludGVycHJldGVycycsXG4gICAgICAnTGlzdEV2YWx1YXRvcnMnLFxuICAgICAgJ0xpc3RFdmVudHMnLFxuICAgICAgJ0xpc3RHYXRld2F5VGFyZ2V0cycsXG4gICAgICAnTGlzdEdhdGV3YXlzJyxcbiAgICAgICdMaXN0TWVtb3JpZXMnLFxuICAgICAgJ0xpc3RNZW1vcnlFeHRyYWN0aW9uSm9icycsXG4gICAgICAnTGlzdE1lbW9yeVJlY29yZHMnLFxuICAgICAgJ0xpc3RPbmxpbmVFdmFsdWF0aW9uQ29uZmlncycsXG4gICAgICAnTGlzdFBvbGljaWVzJyxcbiAgICAgICdMaXN0UG9saWN5RW5naW5lcycsXG4gICAgICAnTGlzdFBvbGljeUdlbmVyYXRpb25Bc3NldHMnLFxuICAgICAgJ0xpc3RQb2xpY3lHZW5lcmF0aW9ucycsXG4gICAgICAnTGlzdFNlc3Npb25zJyxcbiAgICAgICdMaXN0VGFnc0ZvclJlc291cmNlJyxcbiAgICAgICdSZXRyaWV2ZU1lbW9yeVJlY29yZHMnXG4gICAgXSxcbiAgICBUYWdnaW5nOiBbXG4gICAgICAnVGFnUmVzb3VyY2UnLFxuICAgICAgJ1VudGFnUmVzb3VyY2UnXG4gICAgXVxuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBldmFsdWF0b3IgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9ldmFsdWF0b3IuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gZXZhbHVhdG9ySWQgLSBJZGVudGlmaWVyIGZvciB0aGUgZXZhbHVhdG9ySWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uRXZhbHVhdG9yKGV2YWx1YXRvcklkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmV2YWx1YXRvci8keyBldmFsdWF0b3JJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgb25saW5lLWV2YWx1YXRpb24tY29uZmlnIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2Uvb25saW5lRXZhbHVhdGlvbkNvbmZpZy5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnSWQgLSBJZGVudGlmaWVyIGZvciB0aGUgb25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvbk9ubGluZUV2YWx1YXRpb25Db25maWcob25saW5lRXZhbHVhdGlvbkNvbmZpZ0lkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9Om9ubGluZS1ldmFsdWF0aW9uLWNvbmZpZy8keyBvbmxpbmVFdmFsdWF0aW9uQ29uZmlnSWQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIG1lbW9yeSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL21lbW9yeS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBtZW1vcnlJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBtZW1vcnlJZC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uTWVtb3J5KG1lbW9yeUlkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9Om1lbW9yeS8keyBtZW1vcnlJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgZ2F0ZXdheSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2dhdGV3YXkuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gZ2F0ZXdheUlkIC0gSWRlbnRpZmllciBmb3IgdGhlIGdhdGV3YXlJZC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uR2F0ZXdheShnYXRld2F5SWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06Z2F0ZXdheS8keyBnYXRld2F5SWQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIHdvcmtsb2FkLWlkZW50aXR5IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2Uvd29ya2xvYWRJZGVudGl0eS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnlJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBkaXJlY3RvcnlJZC5cbiAgICogQHBhcmFtIHdvcmtsb2FkSWRlbnRpdHlOYW1lIC0gSWRlbnRpZmllciBmb3IgdGhlIHdvcmtsb2FkSWRlbnRpdHlOYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25Xb3JrbG9hZElkZW50aXR5KGRpcmVjdG9yeUlkOiBzdHJpbmcsIHdvcmtsb2FkSWRlbnRpdHlOYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9Ondvcmtsb2FkLWlkZW50aXR5LWRpcmVjdG9yeS8keyBkaXJlY3RvcnlJZCB9L3dvcmtsb2FkLWlkZW50aXR5LyR7IHdvcmtsb2FkSWRlbnRpdHlOYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBvYXV0aDJjcmVkZW50aWFscHJvdmlkZXIgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9vYXV0aDJjcmVkZW50aWFscHJvdmlkZXIuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5WYXVsdElkIC0gSWRlbnRpZmllciBmb3IgdGhlIHRva2VuVmF1bHRJZC5cbiAgICogQHBhcmFtIG5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgbmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uT2F1dGgyY3JlZGVudGlhbHByb3ZpZGVyKHRva2VuVmF1bHRJZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnRva2VuLXZhdWx0LyR7IHRva2VuVmF1bHRJZCB9L29hdXRoMmNyZWRlbnRpYWxwcm92aWRlci8keyBuYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBhcGlrZXljcmVkZW50aWFscHJvdmlkZXIgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9hcGlrZXljcmVkZW50aWFscHJvdmlkZXIuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5WYXVsdElkIC0gSWRlbnRpZmllciBmb3IgdGhlIHRva2VuVmF1bHRJZC5cbiAgICogQHBhcmFtIG5hbWUgLSBJZGVudGlmaWVyIGZvciB0aGUgbmFtZS5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmQXdzUmVzb3VyY2VUYWcoKVxuICAgKi9cbiAgcHVibGljIG9uQXBpa2V5Y3JlZGVudGlhbHByb3ZpZGVyKHRva2VuVmF1bHRJZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnRva2VuLXZhdWx0LyR7IHRva2VuVmF1bHRJZCB9L2FwaWtleWNyZWRlbnRpYWxwcm92aWRlci8keyBuYW1lIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSBydW50aW1lIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvcnVudGltZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBydW50aW1lSWQgLSBJZGVudGlmaWVyIGZvciB0aGUgcnVudGltZUlkLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25SdW50aW1lKHJ1bnRpbWVJZDogc3RyaW5nLCBhY2NvdW50Pzogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmJlZHJvY2stYWdlbnRjb3JlOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTokeyBhY2NvdW50ID8/IHRoaXMuZGVmYXVsdEFjY291bnQgfTpydW50aW1lLyR7IHJ1bnRpbWVJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgcnVudGltZS1lbmRwb2ludCB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL3J1bnRpbWVFbmRwb2ludC5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBydW50aW1lSWQgLSBJZGVudGlmaWVyIGZvciB0aGUgcnVudGltZUlkLlxuICAgKiBAcGFyYW0gbmFtZSAtIElkZW50aWZpZXIgZm9yIHRoZSBuYW1lLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25SdW50aW1lRW5kcG9pbnQocnVudGltZUlkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06cnVudGltZS8keyBydW50aW1lSWQgfS9ydW50aW1lLWVuZHBvaW50LyR7IG5hbWUgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGNvZGUtaW50ZXJwcmV0ZXItY3VzdG9tIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvY29kZUludGVycHJldGVyLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGNvZGVJbnRlcnByZXRlcklkIC0gSWRlbnRpZmllciBmb3IgdGhlIGNvZGVJbnRlcnByZXRlcklkLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25Db2RlSW50ZXJwcmV0ZXJDdXN0b20oY29kZUludGVycHJldGVySWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06Y29kZS1pbnRlcnByZXRlci1jdXN0b20vJHsgY29kZUludGVycHJldGVySWQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIGNvZGUtaW50ZXJwcmV0ZXIgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9jb2RlSW50ZXJwcmV0ZXIuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gY29kZUludGVycHJldGVySWQgLSBJZGVudGlmaWVyIGZvciB0aGUgY29kZUludGVycHJldGVySWQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICovXG4gIHB1YmxpYyBvbkNvZGVJbnRlcnByZXRlcihjb2RlSW50ZXJwcmV0ZXJJZDogc3RyaW5nLCByZWdpb24/OiBzdHJpbmcsIHBhcnRpdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm9uKGBhcm46JHsgcGFydGl0aW9uID8/IHRoaXMuZGVmYXVsdFBhcnRpdGlvbiB9OmJlZHJvY2stYWdlbnRjb3JlOiR7IHJlZ2lvbiA/PyB0aGlzLmRlZmF1bHRSZWdpb24gfTphd3M6Y29kZS1pbnRlcnByZXRlci8keyBjb2RlSW50ZXJwcmV0ZXJJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgYnJvd3Nlci1jdXN0b20gdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS9icm93c2VyLmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGJyb3dzZXJJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBicm93c2VySWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvbkJyb3dzZXJDdXN0b20oYnJvd3NlcklkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OmJyb3dzZXItY3VzdG9tLyR7IGJyb3dzZXJJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgYnJvd3NlciB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL2Jyb3dzZXIuaHRtbFxuICAgKlxuICAgKiBAcGFyYW0gYnJvd3NlcklkIC0gSWRlbnRpZmllciBmb3IgdGhlIGJyb3dzZXJJZC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uQnJvd3Nlcihicm93c2VySWQ6IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06YXdzOmJyb3dzZXIvJHsgYnJvd3NlcklkIH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgcmVzb3VyY2Ugb2YgdHlwZSB3b3JrbG9hZC1pZGVudGl0eS1kaXJlY3RvcnkgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS93b3JrbG9hZElkZW50aXR5RGlyZWN0b3J5Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIGRpcmVjdG9yeUlkIC0gSWRlbnRpZmllciBmb3IgdGhlIGRpcmVjdG9yeUlkLlxuICAgKiBAcGFyYW0gYWNjb3VudCAtIEFjY291bnQgb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIGFjY291bnQuXG4gICAqIEBwYXJhbSByZWdpb24gLSBSZWdpb24gb2YgdGhlIHJlc291cmNlOyBkZWZhdWx0cyB0byBgKmAsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHJlZ2lvbi5cbiAgICogQHBhcmFtIHBhcnRpdGlvbiAtIFBhcnRpdGlvbiBvZiB0aGUgQVdTIGFjY291bnQgW2F3cywgYXdzLWNuLCBhd3MtdXMtZ292XTsgZGVmYXVsdHMgdG8gYGF3c2AsIHVubGVzcyB1c2luZyB0aGUgQ0RLLCB3aGVyZSB0aGUgZGVmYXVsdCBpcyB0aGUgY3VycmVudCBTdGFjaydzIHBhcnRpdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZBd3NSZXNvdXJjZVRhZygpXG4gICAqL1xuICBwdWJsaWMgb25Xb3JrbG9hZElkZW50aXR5RGlyZWN0b3J5KGRpcmVjdG9yeUlkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9Ondvcmtsb2FkLWlkZW50aXR5LWRpcmVjdG9yeS8keyBkaXJlY3RvcnlJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgdG9rZW4tdmF1bHQgdG8gdGhlIHN0YXRlbWVudFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS90b2tlblZhdWx0Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHRva2VuVmF1bHRJZCAtIElkZW50aWZpZXIgZm9yIHRoZSB0b2tlblZhdWx0SWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZkF3c1Jlc291cmNlVGFnKClcbiAgICovXG4gIHB1YmxpYyBvblRva2VuVmF1bHQodG9rZW5WYXVsdElkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnRva2VuLXZhdWx0LyR7IHRva2VuVmF1bHRJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgcG9saWN5LWVuZ2luZSB0byB0aGUgc3RhdGVtZW50XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlL3BvbGljeUVuZ2luZS5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBwb2xpY3lFbmdpbmVJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBwb2xpY3lFbmdpbmVJZC5cbiAgICogQHBhcmFtIGFjY291bnQgLSBBY2NvdW50IG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBhY2NvdW50LlxuICAgKiBAcGFyYW0gcmVnaW9uIC0gUmVnaW9uIG9mIHRoZSByZXNvdXJjZTsgZGVmYXVsdHMgdG8gYCpgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyByZWdpb24uXG4gICAqIEBwYXJhbSBwYXJ0aXRpb24gLSBQYXJ0aXRpb24gb2YgdGhlIEFXUyBhY2NvdW50IFthd3MsIGF3cy1jbiwgYXdzLXVzLWdvdl07IGRlZmF1bHRzIHRvIGBhd3NgLCB1bmxlc3MgdXNpbmcgdGhlIENESywgd2hlcmUgdGhlIGRlZmF1bHQgaXMgdGhlIGN1cnJlbnQgU3RhY2sncyBwYXJ0aXRpb24uXG4gICAqL1xuICBwdWJsaWMgb25Qb2xpY3lFbmdpbmUocG9saWN5RW5naW5lSWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06cG9saWN5LWVuZ2luZS8keyBwb2xpY3lFbmdpbmVJZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIHJlc291cmNlIG9mIHR5cGUgcG9saWN5IHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvcG9saWN5Lmh0bWxcbiAgICpcbiAgICogQHBhcmFtIHBvbGljeUVuZ2luZUlkIC0gSWRlbnRpZmllciBmb3IgdGhlIHBvbGljeUVuZ2luZUlkLlxuICAgKiBAcGFyYW0gcG9saWN5SWQgLSBJZGVudGlmaWVyIGZvciB0aGUgcG9saWN5SWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uUG9saWN5KHBvbGljeUVuZ2luZUlkOiBzdHJpbmcsIHBvbGljeUlkOiBzdHJpbmcsIGFjY291bnQ/OiBzdHJpbmcsIHJlZ2lvbj86IHN0cmluZywgcGFydGl0aW9uPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMub24oYGFybjokeyBwYXJ0aXRpb24gPz8gdGhpcy5kZWZhdWx0UGFydGl0aW9uIH06YmVkcm9jay1hZ2VudGNvcmU6JHsgcmVnaW9uID8/IHRoaXMuZGVmYXVsdFJlZ2lvbiB9OiR7IGFjY291bnQgPz8gdGhpcy5kZWZhdWx0QWNjb3VudCB9OnBvbGljeS1lbmdpbmUvJHsgcG9saWN5RW5naW5lSWQgfS9wb2xpY3kvJHsgcG9saWN5SWQgfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSByZXNvdXJjZSBvZiB0eXBlIHBvbGljeS1nZW5lcmF0aW9uIHRvIHRoZSBzdGF0ZW1lbnRcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvcG9saWN5R2VuZXJhdGlvbi5odG1sXG4gICAqXG4gICAqIEBwYXJhbSBwb2xpY3lFbmdpbmVJZCAtIElkZW50aWZpZXIgZm9yIHRoZSBwb2xpY3lFbmdpbmVJZC5cbiAgICogQHBhcmFtIHBvbGljeUdlbmVyYXRpb25JZCAtIElkZW50aWZpZXIgZm9yIHRoZSBwb2xpY3lHZW5lcmF0aW9uSWQuXG4gICAqIEBwYXJhbSBhY2NvdW50IC0gQWNjb3VudCBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgYWNjb3VudC5cbiAgICogQHBhcmFtIHJlZ2lvbiAtIFJlZ2lvbiBvZiB0aGUgcmVzb3VyY2U7IGRlZmF1bHRzIHRvIGAqYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcmVnaW9uLlxuICAgKiBAcGFyYW0gcGFydGl0aW9uIC0gUGFydGl0aW9uIG9mIHRoZSBBV1MgYWNjb3VudCBbYXdzLCBhd3MtY24sIGF3cy11cy1nb3ZdOyBkZWZhdWx0cyB0byBgYXdzYCwgdW5sZXNzIHVzaW5nIHRoZSBDREssIHdoZXJlIHRoZSBkZWZhdWx0IGlzIHRoZSBjdXJyZW50IFN0YWNrJ3MgcGFydGl0aW9uLlxuICAgKi9cbiAgcHVibGljIG9uUG9saWN5R2VuZXJhdGlvbihwb2xpY3lFbmdpbmVJZDogc3RyaW5nLCBwb2xpY3lHZW5lcmF0aW9uSWQ6IHN0cmluZywgYWNjb3VudD86IHN0cmluZywgcmVnaW9uPzogc3RyaW5nLCBwYXJ0aXRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5vbihgYXJuOiR7IHBhcnRpdGlvbiA/PyB0aGlzLmRlZmF1bHRQYXJ0aXRpb24gfTpiZWRyb2NrLWFnZW50Y29yZTokeyByZWdpb24gPz8gdGhpcy5kZWZhdWx0UmVnaW9uIH06JHsgYWNjb3VudCA/PyB0aGlzLmRlZmF1bHRBY2NvdW50IH06cG9saWN5LWVuZ2luZS8keyBwb2xpY3lFbmdpbmVJZCB9L3BvbGljeS1nZW5lcmF0aW9uLyR7IHBvbGljeUdlbmVyYXRpb25JZCB9YCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgY3JlYXRpbmcgcmVxdWVzdHMgYmFzZWQgb24gdGhlIGFsbG93ZWQgc2V0IG9mIHZhbHVlcyBmb3IgZWFjaCBvZiB0aGUgbWFuZGF0b3J5IHRhZ3NcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19jb25kaXRpb24ta2V5cy5odG1sI2NvbmRpdGlvbi1rZXlzLWdsb2JhbGx5LWF2YWlsYWJsZVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlQWdlbnRSdW50aW1lKClcbiAgICogLSAudG9DcmVhdGVBZ2VudFJ1bnRpbWVFbmRwb2ludCgpXG4gICAqIC0gLnRvQ3JlYXRlQXBpS2V5Q3JlZGVudGlhbFByb3ZpZGVyKClcbiAgICogLSAudG9DcmVhdGVCcm93c2VyKClcbiAgICogLSAudG9DcmVhdGVDb2RlSW50ZXJwcmV0ZXIoKVxuICAgKiAtIC50b0NyZWF0ZUdhdGV3YXkoKVxuICAgKiAtIC50b0NyZWF0ZU1lbW9yeSgpXG4gICAqIC0gLnRvQ3JlYXRlT2F1dGgyQ3JlZGVudGlhbFByb3ZpZGVyKClcbiAgICogLSAudG9DcmVhdGVXb3JrbG9hZElkZW50aXR5KClcbiAgICogLSAudG9UYWdSZXNvdXJjZSgpXG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NSZXF1ZXN0VGFnKHRhZ0tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgYXdzOlJlcXVlc3RUYWcvJHsgdGFnS2V5IH1gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSBoYXZpbmcgYWN0aW9ucyBiYXNlZCBvbiB0aGUgdGFnIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzb3VyY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19jb25kaXRpb24ta2V5cy5odG1sI2NvbmRpdGlvbi1rZXlzLWdsb2JhbGx5LWF2YWlsYWJsZVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIHJlc291cmNlIHR5cGVzOlxuICAgKiAtIG1lbW9yeVxuICAgKiAtIGdhdGV3YXlcbiAgICogLSB3b3JrbG9hZC1pZGVudGl0eVxuICAgKiAtIG9hdXRoMmNyZWRlbnRpYWxwcm92aWRlclxuICAgKiAtIGFwaWtleWNyZWRlbnRpYWxwcm92aWRlclxuICAgKiAtIHJ1bnRpbWVcbiAgICogLSBydW50aW1lLWVuZHBvaW50XG4gICAqIC0gY29kZS1pbnRlcnByZXRlci1jdXN0b21cbiAgICogLSBicm93c2VyLWN1c3RvbVxuICAgKiAtIHdvcmtsb2FkLWlkZW50aXR5LWRpcmVjdG9yeVxuICAgKiAtIHRva2VuLXZhdWx0XG4gICAqXG4gICAqIEBwYXJhbSB0YWdLZXkgVGhlIHRhZyBrZXkgdG8gY2hlY2tcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NSZXNvdXJjZVRhZyh0YWdLZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGF3czpSZXNvdXJjZVRhZy8keyB0YWdLZXkgfWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IGNyZWF0aW5nIHJlcXVlc3RzIGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBtYW5kYXRvcnkgdGFncyBpbiB0aGUgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2NvbmRpdGlvbi1rZXlzLmh0bWwjY29uZGl0aW9uLWtleXMtZ2xvYmFsbHktYXZhaWxhYmxlXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVBZ2VudFJ1bnRpbWUoKVxuICAgKiAtIC50b0NyZWF0ZUFnZW50UnVudGltZUVuZHBvaW50KClcbiAgICogLSAudG9DcmVhdGVBcGlLZXlDcmVkZW50aWFsUHJvdmlkZXIoKVxuICAgKiAtIC50b0NyZWF0ZUJyb3dzZXIoKVxuICAgKiAtIC50b0NyZWF0ZUNvZGVJbnRlcnByZXRlcigpXG4gICAqIC0gLnRvQ3JlYXRlR2F0ZXdheSgpXG4gICAqIC0gLnRvQ3JlYXRlTWVtb3J5KClcbiAgICogLSAudG9DcmVhdGVPYXV0aDJDcmVkZW50aWFsUHJvdmlkZXIoKVxuICAgKiAtIC50b0NyZWF0ZVdvcmtsb2FkSWRlbnRpdHkoKVxuICAgKiAtIC50b1RhZ1Jlc291cmNlKClcbiAgICogLSAudG9VbnRhZ1Jlc291cmNlKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZBd3NUYWdLZXlzKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBhd3M6VGFnS2V5c2AsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBhdXRob3JpemVyVHlwZSBhdHRyaWJ1dGUgb24gYSBHYXRld2F5XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1nYXRld2F5QXV0aG9yaXplclR5cGVcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZHYXRld2F5QXV0aG9yaXplclR5cGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYEdhdGV3YXlBdXRob3JpemVyVHlwZWAsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBhdWRpZW5jZSBjbGFpbSAoYXVkKSBpbiB0aGUgSldUIHBhc3NlZCBpbiB0aGUgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS8jY29uZGl0aW9uLWtleXMtYXVkXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9Db21wbGV0ZVJlc291cmNlVG9rZW5BdXRoKClcbiAgICogLSAudG9HZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldUKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZJbmJvdW5kSnd0Q2xhaW1BdWQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYEluYm91bmRKd3RDbGFpbS9hdWRgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgY2xpZW50X2lkIGNsYWltIGluIHRoZSBKV1QgcGFzc2VkIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1jbGllbnRfaWRcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKVxuICAgKiAtIC50b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JKV1QoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkluYm91bmRKd3RDbGFpbUNsaWVudElkKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBJbmJvdW5kSnd0Q2xhaW0vY2xpZW50X2lkYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIGlzc3VlciAoaXNzKSBjbGFpbSBwcmVzZW50IGluIHRoZSBKV1QgcGFzc2VkIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1pc3NcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKVxuICAgKiAtIC50b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JKV1QoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkluYm91bmRKd3RDbGFpbUlzcyh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgSW5ib3VuZEp3dENsYWltL2lzc2AsIHZhbHVlLCBvcGVyYXRvciA/PyAnU3RyaW5nTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBzY29wZSBjbGFpbSBpbiB0aGUgSldUIHBhc3NlZCBpbiB0aGUgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS8jY29uZGl0aW9uLWtleXMtc2NvcGVcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKVxuICAgKiAtIC50b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JKV1QoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkluYm91bmRKd3RDbGFpbVNjb3BlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBJbmJvdW5kSnd0Q2xhaW0vc2NvcGVgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgc3ViamVjdCBjbGFpbSAoc3ViKSBpbiB0aGUgSldUIHBhc3NlZCBpbiB0aGUgcmVxdWVzdFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS8jY29uZGl0aW9uLWtleXMtc3ViXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9Db21wbGV0ZVJlc291cmNlVG9rZW5BdXRoKClcbiAgICogLSAudG9HZXRXb3JrbG9hZEFjY2Vzc1Rva2VuRm9ySldUKClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbc3RyaW5nIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19TdHJpbmcpLiAqKkRlZmF1bHQ6KiogYFN0cmluZ0xpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZJbmJvdW5kSnd0Q2xhaW1TdWIodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYEluYm91bmRKd3RDbGFpbS9zdWJgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSBBY3RvciBJZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS8jY29uZGl0aW9uLWtleXMtYWN0b3JJZFxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ3JlYXRlRXZlbnQoKVxuICAgKiAtIC50b0RlbGV0ZUV2ZW50KClcbiAgICogLSAudG9HZXRFdmVudCgpXG4gICAqIC0gLnRvTGlzdEV2ZW50cygpXG4gICAqIC0gLnRvTGlzdFNlc3Npb25zKClcbiAgICogLSAudG9TdGFydE1lbW9yeUV4dHJhY3Rpb25Kb2IoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZkFjdG9ySWQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYGFjdG9ySWRgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSBuYW1lc3BhY2VcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JlZHJvY2stYWdlbnRjb3JlL2xhdGVzdC9BUElSZWZlcmVuY2UvI2NvbmRpdGlvbi1rZXlzLW5hbWVzcGFjZVxuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQmF0Y2hDcmVhdGVNZW1vcnlSZWNvcmRzKClcbiAgICogLSAudG9CYXRjaFVwZGF0ZU1lbW9yeVJlY29yZHMoKVxuICAgKiAtIC50b0xpc3RNZW1vcnlSZWNvcmRzKClcbiAgICogLSAudG9SZXRyaWV2ZU1lbW9yeVJlY29yZHMoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZk5hbWVzcGFjZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgbmFtZXNwYWNlYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgU2Vzc2lvbiBJZFxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYmVkcm9jay1hZ2VudGNvcmUvbGF0ZXN0L0FQSVJlZmVyZW5jZS8jY29uZGl0aW9uLWtleXMtc2Vzc2lvbklkXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9DcmVhdGVFdmVudCgpXG4gICAqIC0gLnRvRGVsZXRlRXZlbnQoKVxuICAgKiAtIC50b0dldEV2ZW50KClcbiAgICogLSAudG9MaXN0RXZlbnRzKClcbiAgICogLSAudG9TdGFydE1lbW9yeUV4dHJhY3Rpb25Kb2IoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlNlc3Npb25JZCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgc2Vzc2lvbklkYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgTWVtb3J5IFN0cmF0ZWd5IElkXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy1zdHJhdGVneUlkXG4gICAqXG4gICAqIEFwcGxpZXMgdG8gYWN0aW9uczpcbiAgICogLSAudG9MaXN0TWVtb3J5UmVjb3JkcygpXG4gICAqIC0gLnRvUmV0cmlldmVNZW1vcnlSZWNvcmRzKClcbiAgICogLSAudG9TdGFydE1lbW9yeUV4dHJhY3Rpb25Kb2IoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlN0cmF0ZWd5SWQodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBvcGVyYXRvcj86IE9wZXJhdG9yIHwgc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuaWYoYHN0cmF0ZWd5SWRgLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ1N0cmluZ0xpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXJzIGFjY2VzcyBieSB0aGUgc3RhdGljIHVzZXIgSUQgdmFsdWUgcGFzc2VkIGluIHRoZSByZXF1ZXN0XG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iZWRyb2NrLWFnZW50Y29yZS9sYXRlc3QvQVBJUmVmZXJlbmNlLyNjb25kaXRpb24ta2V5cy11c2VyaWRcbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0NvbXBsZXRlUmVzb3VyY2VUb2tlbkF1dGgoKVxuICAgKiAtIC50b0dldFdvcmtsb2FkQWNjZXNzVG9rZW5Gb3JVc2VySWQoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFtzdHJpbmcgb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX1N0cmluZykuICoqRGVmYXVsdDoqKiBgU3RyaW5nTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlVzZXJpZCh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgdXNlcmlkYCwgdmFsdWUsIG9wZXJhdG9yID8/ICdTdHJpbmdMaWtlJyk7XG4gIH1cblxuICAvKipcbiAgICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFtiZWRyb2NrLWFnZW50Y29yZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9uYmVkcm9ja2FnZW50Y29yZS5odG1sKS5cbiAgICpcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb3BzPzogaWFtLlBvbGljeVN0YXRlbWVudFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG59XG4iXX0=
|