@aws-solutions-constructs/core 2.39.0 → 2.40.0

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.
@@ -22,12 +22,13 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
22
22
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
23
23
  */
24
24
  function createLoggingBucket(scope, bucketId, loggingBucketProps) {
25
+ // Introduce the default props since we can't be certain the caller used them and
26
+ // they are important best practices
27
+ const combinedBucketProps = utils_1.consolidateProps(s3_bucket_defaults_1.DefaultS3Props(), loggingBucketProps);
25
28
  // Create the Logging Bucket
26
- const loggingBucket = new s3.Bucket(scope, bucketId, loggingBucketProps);
29
+ const loggingBucket = new s3.Bucket(scope, bucketId, combinedBucketProps);
27
30
  // Extract the CfnBucket from the loggingBucket
28
31
  const loggingBucketResource = loggingBucket.node.findChild('Resource');
29
- // Remove the default LifecycleConfiguration for the Logging Bucket
30
- loggingBucketResource.addPropertyDeletionOverride('LifecycleConfiguration.Rules');
31
32
  let _reason = "This S3 bucket is used as the access logging bucket for another bucket";
32
33
  if (bucketId === 'CloudfrontLoggingBucket') {
33
34
  _reason = "This S3 bucket is used as the access logging bucket for CloudFront Distribution";
@@ -45,8 +46,11 @@ exports.createLoggingBucket = createLoggingBucket;
45
46
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
46
47
  */
47
48
  function createAlbLoggingBucket(scope, bucketId, loggingBucketProps) {
49
+ // Introduce the default props since we can't be certain the caller used them and
50
+ // they are important best practices
51
+ const combinedBucketProps = utils_1.consolidateProps(s3_bucket_defaults_1.DefaultS3Props(), loggingBucketProps);
48
52
  // Create the Logging Bucket
49
- const loggingBucket = new s3.Bucket(scope, bucketId, loggingBucketProps);
53
+ const loggingBucket = new s3.Bucket(scope, bucketId, combinedBucketProps);
50
54
  // Extract the CfnBucket from the loggingBucket
51
55
  const loggingBucketResource = loggingBucket.node.findChild('Resource');
52
56
  utils_1.addCfnSuppressRules(loggingBucketResource, [
@@ -70,7 +74,7 @@ function buildS3Bucket(scope, props, bucketId) {
70
74
  }]
71
75
  }];
72
76
  // Create the Application Bucket
73
- let customBucketProps;
77
+ let defaultBucketProps;
74
78
  let loggingBucket;
75
79
  const resolvedBucketId = bucketId ? bucketId + 'S3Bucket' : 'S3Bucket';
76
80
  const loggingBucketId = bucketId ? bucketId + 'S3LoggingBucket' : 'S3LoggingBucket';
@@ -94,13 +98,13 @@ function buildS3Bucket(scope, props, bucketId) {
94
98
  }
95
99
  // Attach the Default Life Cycle policy ONLY IF the versioning is ENABLED
96
100
  if (props.bucketProps?.versioned === undefined || props.bucketProps.versioned) {
97
- customBucketProps = s3_bucket_defaults_1.DefaultS3Props(loggingBucket, lifecycleRules);
101
+ defaultBucketProps = s3_bucket_defaults_1.DefaultS3Props(loggingBucket, lifecycleRules);
98
102
  }
99
103
  else {
100
- customBucketProps = s3_bucket_defaults_1.DefaultS3Props(loggingBucket);
104
+ defaultBucketProps = s3_bucket_defaults_1.DefaultS3Props(loggingBucket);
101
105
  }
102
- customBucketProps = props.bucketProps ? utils_1.overrideProps(customBucketProps, props.bucketProps) : customBucketProps;
103
- const s3Bucket = new s3.Bucket(scope, resolvedBucketId, customBucketProps);
106
+ const combinedBucketProps = utils_1.consolidateProps(defaultBucketProps, props.bucketProps);
107
+ const s3Bucket = new s3.Bucket(scope, resolvedBucketId, combinedBucketProps);
104
108
  return { bucket: s3Bucket, loggingBucket };
105
109
  }
106
110
  exports.buildS3Bucket = buildS3Bucket;
@@ -137,4 +141,4 @@ function addCfnNagS3BucketNotificationRulesToSuppress(stackRoot, logicalId) {
137
141
  ]);
138
142
  }
139
143
  exports.addCfnNagS3BucketNotificationRulesToSuppress = addCfnNagS3BucketNotificationRulesToSuppress;
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWJ1Y2tldC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFTSCx5Q0FBeUM7QUFFekMsNkRBQXNEO0FBQ3RELG1DQUE2RDtBQUM3RCwrQ0FBa0Q7QUFDbEQsNkNBQXVDO0FBMEJ2Qzs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLEtBQWdCLEVBQ2xELFFBQWdCLEVBQ2hCLGtCQUFrQztJQUVsQyw0QkFBNEI7SUFDNUIsTUFBTSxhQUFhLEdBQWMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUVwRiwrQ0FBK0M7SUFDL0MsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQWlCLENBQUM7SUFFdkYsbUVBQW1FO0lBQ25FLHFCQUFxQixDQUFDLDJCQUEyQixDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFFbEYsSUFBSSxPQUFPLEdBQUcsd0VBQXdFLENBQUM7SUFFdkYsSUFBSSxRQUFRLEtBQUsseUJBQXlCLEVBQUU7UUFDMUMsT0FBTyxHQUFHLGlGQUFpRixDQUFDO0tBQzdGO0lBRUQsMkJBQW1CLENBQUMscUJBQXFCLEVBQUU7UUFDekM7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFBRSxPQUFPO1NBQ2hCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQTNCRCxrREEyQkM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLEtBQWdCLEVBQ3JELFFBQWdCLEVBQ2hCLGtCQUFrQztJQUVsQyw0QkFBNEI7SUFDNUIsTUFBTSxhQUFhLEdBQWMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENB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Z0IsNENBQTRDLENBQUMsU0FBb0IsRUFBRSxTQUFpQjtJQUNsRyxNQUFNLDRCQUE0QixHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBb0IsQ0FBQztJQUMvRixNQUFNLG9DQUFvQyxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFhLENBQUM7SUFDN0csTUFBTSxzQ0FBc0MsR0FBRyxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBZSxDQUFDO0lBRWxJLDRDQUE0QztJQUM1QyxNQUFNLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBdUIsQ0FBQztJQUNqRywyQkFBbUIsQ0FBQyxVQUFVLEVBQUU7UUFDOUI7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFBRSxvTUFBb007U0FDN007UUFDRDtZQUNFLEVBQUUsRUFBRSxLQUFLO1lBQ1QsTUFBTSxFQUFFLGlGQUFpRjtTQUMxRjtRQUNEO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsaUVBQWlFO1NBQzFFO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsNENBQTRDO0lBQzVDLE1BQU0sY0FBYyxHQUFHLHNDQUFzQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFrQixDQUFDO0lBQzFHLDJCQUFtQixDQUFDLGNBQWMsRUFBRTtRQUNsQztZQUNFLEVBQUUsRUFBRSxLQUFLO1lBQ1QsTUFBTSxFQUFFLGtHQUFrRztTQUMzRztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUE5QkQsb0dBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IERlZmF1bHRTM1Byb3BzIH0gZnJvbSAnLi9zMy1idWNrZXQtZGVmYXVsdHMnO1xuaW1wb3J0IHsgb3ZlcnJpZGVQcm9wcywgYWRkQ2ZuU3VwcHJlc3NSdWxlcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgU3RvcmFnZUNsYXNzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTM0J1Y2tldFByb3BzIHtcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBCdWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBMb2dnaW5nIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdHVybiBvbiBBY2Nlc3MgTG9ncyBmb3IgUzMuIFVzZXMgYW4gUzMgYnVja2V0IHdpdGggYXNzb2NpYXRlZCBzdG9yYWdlIGNvc3RzLlxuICAgKiBFbmFibGluZyBBY2Nlc3MgTG9nZ2luZyBpcyBhIGJlc3QgcHJhY3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9nZ2luZ0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBidWNrZXRJZDogc3RyaW5nLFxuICBsb2dnaW5nQnVja2V0UHJvcHM6IHMzLkJ1Y2tldFByb3BzKTogczMuQnVja2V0IHtcblxuICAvLyBDcmVhdGUgdGhlIExvZ2dpbmcgQnVja2V0XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkJ1Y2tldCBmcm9tIHRoZSBsb2dnaW5nQnVja2V0XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSA9IGxvZ2dpbmdCdWNrZXQubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgczMuQ2ZuQnVja2V0O1xuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCBMaWZlY3ljbGVDb25maWd1cmF0aW9uIGZvciB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgbG9nZ2luZ0J1Y2tldFJlc291cmNlLmFkZFByb3BlcnR5RGVsZXRpb25PdmVycmlkZSgnTGlmZWN5Y2xlQ29uZmlndXJhdGlvbi5SdWxlcycpO1xuXG4gIGxldCBfcmVhc29uID0gXCJUaGlzIFMzIGJ1Y2tldCBpcyB1c2VkIGFzIHRoZSBhY2Nlc3MgbG9nZ2luZyBidWNrZXQgZm9yIGFub3RoZXIgYnVja2V0XCI7XG5cbiAgaWYgKGJ1Y2tldElkID09PSAnQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQnKSB7XG4gICAgX3JlYXNvbiA9IFwiVGhpcyBTMyBidWNrZXQgaXMgdXNlZCBhcyB0aGUgYWNjZXNzIGxvZ2dpbmcgYnVja2V0IGZvciBDbG91ZEZyb250IERpc3RyaWJ1dGlvblwiO1xuICB9XG5cbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhsb2dnaW5nQnVja2V0UmVzb3VyY2UsIFtcbiAgICB7XG4gICAgICBpZDogJ1czNScsXG4gICAgICByZWFzb246IF9yZWFzb25cbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBsb2dnaW5nQnVja2V0O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbGJMb2dnaW5nQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGJ1Y2tldElkOiBzdHJpbmcsXG4gIGxvZ2dpbmdCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHMpOiBzMy5CdWNrZXQge1xuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgY29uc3QgbG9nZ2luZ0J1Y2tldDogczMuQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYnVja2V0SWQsIGxvZ2dpbmdCdWNrZXRQcm9wcyk7XG5cbiAgLy8gRXh0cmFjdCB0aGUgQ2ZuQnVja2V0IGZyb20gdGhlIGxvZ2dpbmdCdWNrZXRcbiAgY29uc3QgbG9nZ2luZ0J1Y2tldFJlc291cmNlID0gbG9nZ2luZ0J1Y2tldC5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBzMy5DZm5CdWNrZXQ7XG5cbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhsb2dnaW5nQnVja2V0UmVzb3VyY2UsIFtcbiAgICB7XG4gICAgICBpZDogJ1czNScsXG4gICAgICByZWFzb246IFwiVGhpcyBpcyBhIGxvZyBidWNrZXQgZm9yIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJcIlxuICAgIH1cbiAgXSk7XG5cbiAgcmV0dXJuIGxvZ2dpbmdCdWNrZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTM0J1Y2tldFJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgYnVja2V0OiBzMy5CdWNrZXQsXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXRcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTM0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBwcm9wczogQnVpbGRTM0J1Y2tldFByb3BzLFxuICBidWNrZXRJZD86IHN0cmluZyk6IEJ1aWxkUzNCdWNrZXRSZXNwb25zZSB7XG5cbiAgLyoqIERlZmF1bHQgTGlmZSBDeWNsZSBwb2xpY3kgdG8gdHJhbnNpdGlvbiBvbGRlciB2ZXJzaW9ucyB0byBHbGFjaWVyIGFmdGVyIDkwIGRheXMgKi9cbiAgY29uc3QgbGlmZWN5Y2xlUnVsZXM6IHMzLkxpZmVjeWNsZVJ1bGVbXSA9IFt7XG4gICAgbm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uczogW3tcbiAgICAgIHN0b3JhZ2VDbGFzczogU3RvcmFnZUNsYXNzLkdMQUNJRVIsXG4gICAgICB0cmFuc2l0aW9uQWZ0ZXI6IER1cmF0aW9uLmRheXMoOTApXG4gICAgfV1cbiAgfV07XG5cbiAgLy8gQ3JlYXRlIHRoZSBBcHBsaWNhdGlvbiBCdWNrZXRcbiAgbGV0IGN1c3RvbUJ1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcztcbiAgbGV0IGxvZ2dpbmdCdWNrZXQ7XG4gIGNvbnN0IHJlc29sdmVkQnVja2V0SWQgPSBidWNrZXRJZCA/IGJ1Y2tldElkICsgJ1MzQnVja2V0JyA6ICdTM0J1Y2tldCc7XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRJZCA9IGJ1Y2tldElkID8gYnVja2V0SWQgKyAnUzNMb2dnaW5nQnVja2V0JyA6ICdTM0xvZ2dpbmdCdWNrZXQnO1xuXG4gIC8vIElmIGxvZ2dpbmcgUzMgYWNjZXNzIGxvZ3MgaXMgZW5hYmxlZC91bmRlZmluZWQgYW5kIGFuIGV4aXN0aW5nIGJ1Y2tldCBvYmplY3QgaXMgbm90IHByb3ZpZGVkXG4gIGlmIChwcm9wcy5sb2dTM0FjY2Vzc0xvZ3MgIT09IGZhbHNlICYmICEocHJvcHMuYnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBMb2dnaW5nIEJ1Y2tldFxuICAgIGxldCBsb2dnaW5nQnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcygpO1xuXG4gICAgaWYgKHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgICAgLy8gVXNlciBwcm92aWRlZCBsb2dnaW5nIGJ1Y2tldCBwcm9wc1xuICAgICAgbG9nZ2luZ0J1Y2tldFByb3BzID0gb3ZlcnJpZGVQcm9wcyhsb2dnaW5nQnVja2V0UHJvcHMsIHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8ucmVtb3ZhbFBvbGljeSkge1xuICAgICAgLy8gSWYgdGhlIGNsaWVudCBleHBsaWNpdGx5IHNwZWNpZmllZCBhIHJlbW92YWwgcG9saWN5IGZvciB0aGUgbWFpbiBidWNrZXQsXG4gICAgICAvLyB0aGVuIHJlcGxpY2F0ZSB0aGF0IHBvbGljeSBvbiB0aGUgbG9nZ2luZyBidWNrZXRcbiAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMobG9nZ2luZ0J1Y2tldFByb3BzLCB7IHJlbW92YWxQb2xpY3k6IHByb3BzLmJ1Y2tldFByb3BzLnJlbW92YWxQb2xpY3kgfSk7XG4gICAgfVxuXG4gICAgbG9nZ2luZ0J1Y2tldCA9IGNyZWF0ZUxvZ2dpbmdCdWNrZXQoc2NvcGUsIGxvZ2dpbmdCdWNrZXRJZCwgbG9nZ2luZ0J1Y2tldFByb3BzKTtcbiAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCkge1xuICAgIGxvZ2dpbmdCdWNrZXQgPSBwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCBhcyBzMy5CdWNrZXQ7XG4gIH1cblxuICAvLyBBdHRhY2ggdGhlIERlZmF1bHQgTGlmZSBDeWNsZSBwb2xpY3kgT05MWSBJRiB0aGUgdmVyc2lvbmluZyBpcyBFTkFCTEVEXG4gIGlmIChwcm9wcy5idWNrZXRQcm9wcz8udmVyc2lvbmVkID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYnVja2V0UHJvcHMudmVyc2lvbmVkKSB7XG4gICAgY3VzdG9tQnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcyhsb2dnaW5nQnVja2V0LCBsaWZlY3ljbGVSdWxlcyk7XG4gIH0gZWxzZSB7XG4gICAgY3VzdG9tQnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcyhsb2dnaW5nQnVja2V0KTtcbiAgfVxuXG4gIGN1c3RvbUJ1Y2tldFByb3BzID0gcHJvcHMuYnVja2V0UHJvcHMgPyBvdmVycmlkZVByb3BzKGN1c3RvbUJ1Y2tldFByb3BzLCBwcm9wcy5idWNrZXRQcm9wcykgOiBjdXN0b21CdWNrZXRQcm9wcztcblxuICBjb25zdCBzM0J1Y2tldDogczMuQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgcmVzb2x2ZWRCdWNrZXRJZCwgY3VzdG9tQnVja2V0UHJvcHMgKTtcblxuICByZXR1cm4geyBidWNrZXQ6IHMzQnVja2V0LCBsb2dnaW5nQnVja2V0IH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZENmbk5hZ1MzQnVja2V0Tm90aWZpY2F0aW9uUnVsZXNUb1N1cHByZXNzKHN0YWNrUm9vdDogY2RrLlN0YWNrLCBsb2dpY2FsSWQ6IHN0cmluZykge1xuICBjb25zdCBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyID0gc3RhY2tSb290Lm5vZGUudHJ5RmluZENoaWxkKGxvZ2ljYWxJZCkgYXMgbGFtYmRhLkZ1bmN0aW9uO1xuICBjb25zdCBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyUm9sZVJvbGUgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyLm5vZGUuZmluZENoaWxkKCdSb2xlJykgYXMgaWFtLlJvbGU7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXJSb2xlUG9saWN5ID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVSb2xlLm5vZGUuZmluZENoaWxkKCdEZWZhdWx0UG9saWN5JykgYXMgaWFtLlBvbGljeTtcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5GdW5jdGlvbiBmcm9tIHRoZSBGdW5jdGlvblxuICBjb25zdCBmblJlc291cmNlID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlci5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb247XG4gIGFkZENmblN1cHByZXNzUnVsZXMoZm5SZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzU4JyxcbiAgICAgIHJlYXNvbjogYExhbWJkYSBmdW5jdGlvbnMgaGFzIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9uIHRvIHdyaXRlIENsb3VkV2F0Y2ggTG9ncy4gSXQgdXNlcyBjdXN0b20gcG9saWN5IGluc3RlYWQgb2YgYXJuOmF3czppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSB3aXRoIHRpZ2h0ZXIgcGVybWlzc2lvbnMuYFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdXODknLFxuICAgICAgcmVhc29uOiBgVGhpcyBpcyBub3QgYSBydWxlIGZvciB0aGUgZ2VuZXJhbCBjYXNlLCBqdXN0IGZvciBzcGVjaWZpYyB1c2UgY2FzZXMvaW5kdXN0cmllc2BcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnVzkyJyxcbiAgICAgIHJlYXNvbjogYEltcG9zc2libGUgZm9yIHVzIHRvIGRlZmluZSB0aGUgY29ycmVjdCBjb25jdXJyZW5jeSBmb3IgY2xpZW50c2BcbiAgICB9XG4gIF0pO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmblBvbGljeSBmcm9tIHRoZSBpYW0uUG9saWN5XG4gIGNvbnN0IHBvbGljeVJlc291cmNlID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVQb2xpY3kubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgaWFtLkNmblBvbGljeTtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhwb2xpY3lSZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzEyJyxcbiAgICAgIHJlYXNvbjogYEJ1Y2tldCByZXNvdXJjZSBpcyAnKicgZHVlIHRvIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2l0aCBidWNrZXQgYW5kIHJvbGUgY3JlYXRpb24gYXQgdGhlIHNhbWUgdGltZWBcbiAgICB9XG4gIF0pO1xufVxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWJ1Y2tldC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFTSCx5Q0FBeUM7QUFFekMsNkRBQXNEO0FBQ3RELG1DQUErRTtBQUMvRSwrQ0FBa0Q7QUFDbEQsNkNBQXVDO0FBMEJ2Qzs7R0FFRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLEtBQWdCLEVBQ2xELFFBQWdCLEVBQ2hCLGtCQUFrQztJQUVsQyxpRkFBaUY7SUFDakYsb0NBQW9DO0lBQ3BDLE1BQU0sbUJBQW1CLEdBQUcsd0JBQWdCLENBQUMsbUNBQWMsRUFBRSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFbkYsNEJBQTRCO0lBQzVCLE1BQU0sYUFBYSxHQUFjLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFFckYsK0NBQStDO0lBQy9DLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFpQixDQUFDO0lBRXZGLElBQUksT0FBTyxHQUFHLHdFQUF3RSxDQUFDO0lBRXZGLElBQUksUUFBUSxLQUFLLHlCQUF5QixFQUFFO1FBQzFDLE9BQU8sR0FBRyxpRkFBaUYsQ0FBQztLQUM3RjtJQUVELDJCQUFtQixDQUFDLHFCQUFxQixFQUFFO1FBQ3pDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsT0FBTztTQUNoQjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUE1QkQsa0RBNEJDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxLQUFnQixFQUNyRCxRQUFnQixFQUNoQixrQkFBa0M7SUFFbEMsaUZBQWlGO0lBQ2pGLG9DQUFvQztJQUNwQyxNQUFNLG1CQUFtQixHQUFHLHdCQUFn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QUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLENBQUM7QUFDN0MsQ0FBQztBQWpERCxzQ0FpREM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDRDQUE0QyxDQUFDLFNBQW9CLEVBQUUsU0FBaUI7SUFDbEcsTUFBTSw0QkFBNEIsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQW9CLENBQUM7SUFDL0YsTUFBTSxvQ0FBb0MsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBYSxDQUFDO0lBQzdHLE1BQU0sc0NBQXNDLEdBQUcsb0NBQW9DLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQWUsQ0FBQztJQUVsSSw0Q0FBNEM7SUFDNUMsTUFBTSxVQUFVLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQXVCLENBQUM7SUFDakcsMkJBQW1CLENBQUMsVUFBVSxFQUFFO1FBQzlCO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsb01BQW9NO1NBQzdNO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFBRSxpRkFBaUY7U0FDMUY7UUFDRDtZQUNFLEVBQUUsRUFBRSxLQUFLO1lBQ1QsTUFBTSxFQUFFLGlFQUFpRTtTQUMxRTtLQUNGLENBQUMsQ0FBQztJQUVILDRDQUE0QztJQUM1QyxNQUFNLGNBQWMsR0FBRyxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBa0IsQ0FBQztJQUMxRywyQkFBbUIsQ0FBQyxjQUFjLEVBQUU7UUFDbEM7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFBRSxrR0FBa0c7U0FDM0c7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBOUJELG9HQThCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBEZWZhdWx0UzNQcm9wcyB9IGZyb20gJy4vczMtYnVja2V0LWRlZmF1bHRzJztcbmltcG9ydCB7IG92ZXJyaWRlUHJvcHMsIGFkZENmblN1cHByZXNzUnVsZXMsIGNvbnNvbGlkYXRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFN0b3JhZ2VDbGFzcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUzNCdWNrZXRQcm9wcyB7XG4gIC8qKlxuICAgKiBVc2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzIGZvciB0aGUgUzMgQnVja2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHM7XG4gIC8qKlxuICAgKiBVc2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzIGZvciB0aGUgUzMgTG9nZ2luZyBCdWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHM7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHR1cm4gb24gQWNjZXNzIExvZ3MgZm9yIFMzLiBVc2VzIGFuIFMzIGJ1Y2tldCB3aXRoIGFzc29jaWF0ZWQgc3RvcmFnZSBjb3N0cy5cbiAgICogRW5hYmxpbmcgQWNjZXNzIExvZ2dpbmcgaXMgYSBiZXN0IHByYWN0aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ1MzQWNjZXNzTG9ncz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCxcbiAgYnVja2V0SWQ6IHN0cmluZyxcbiAgbG9nZ2luZ0J1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcyk6IHMzLkJ1Y2tldCB7XG5cbiAgLy8gSW50cm9kdWNlIHRoZSBkZWZhdWx0IHByb3BzIHNpbmNlIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhlIGNhbGxlciB1c2VkIHRoZW0gYW5kXG4gIC8vIHRoZXkgYXJlIGltcG9ydGFudCBiZXN0IHByYWN0aWNlc1xuICBjb25zdCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgY29uc3QgbG9nZ2luZ0J1Y2tldDogczMuQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMpO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkJ1Y2tldCBmcm9tIHRoZSBsb2dnaW5nQnVja2V0XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSA9IGxvZ2dpbmdCdWNrZXQubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgczMuQ2ZuQnVja2V0O1xuXG4gIGxldCBfcmVhc29uID0gXCJUaGlzIFMzIGJ1Y2tldCBpcyB1c2VkIGFzIHRoZSBhY2Nlc3MgbG9nZ2luZyBidWNrZXQgZm9yIGFub3RoZXIgYnVja2V0XCI7XG5cbiAgaWYgKGJ1Y2tldElkID09PSAnQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQnKSB7XG4gICAgX3JlYXNvbiA9IFwiVGhpcyBTMyBidWNrZXQgaXMgdXNlZCBhcyB0aGUgYWNjZXNzIGxvZ2dpbmcgYnVja2V0IGZvciBDbG91ZEZyb250IERpc3RyaWJ1dGlvblwiO1xuICB9XG5cbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhsb2dnaW5nQnVja2V0UmVzb3VyY2UsIFtcbiAgICB7XG4gICAgICBpZDogJ1czNScsXG4gICAgICByZWFzb246IF9yZWFzb25cbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBsb2dnaW5nQnVja2V0O1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbGJMb2dnaW5nQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGJ1Y2tldElkOiBzdHJpbmcsXG4gIGxvZ2dpbmdCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHMpOiBzMy5CdWNrZXQge1xuXG4gIC8vIEludHJvZHVjZSB0aGUgZGVmYXVsdCBwcm9wcyBzaW5jZSB3ZSBjYW4ndCBiZSBjZXJ0YWluIHRoZSBjYWxsZXIgdXNlZCB0aGVtIGFuZFxuICAvLyB0aGV5IGFyZSBpbXBvcnRhbnQgYmVzdCBwcmFjdGljZXNcbiAgY29uc3QgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgbG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICAvLyBDcmVhdGUgdGhlIExvZ2dpbmcgQnVja2V0XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzKTtcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5CdWNrZXQgZnJvbSB0aGUgbG9nZ2luZ0J1Y2tldFxuICBjb25zdCBsb2dnaW5nQnVja2V0UmVzb3VyY2UgPSBsb2dnaW5nQnVja2V0Lm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIHMzLkNmbkJ1Y2tldDtcblxuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzM1JyxcbiAgICAgIHJlYXNvbjogXCJUaGlzIGlzIGEgbG9nIGJ1Y2tldCBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlclwiXG4gICAgfVxuICBdKTtcblxuICByZXR1cm4gbG9nZ2luZ0J1Y2tldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFMzQnVja2V0UmVzcG9uc2Uge1xuICByZWFkb25seSBidWNrZXQ6IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFMzQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHByb3BzOiBCdWlsZFMzQnVja2V0UHJvcHMsXG4gIGJ1Y2tldElkPzogc3RyaW5nKTogQnVpbGRTM0J1Y2tldFJlc3BvbnNlIHtcblxuICAvKiogRGVmYXVsdCBMaWZlIEN5Y2xlIHBvbGljeSB0byB0cmFuc2l0aW9uIG9sZGVyIHZlcnNpb25zIHRvIEdsYWNpZXIgYWZ0ZXIgOTAgZGF5cyAqL1xuICBjb25zdCBsaWZlY3ljbGVSdWxlczogczMuTGlmZWN5Y2xlUnVsZVtdID0gW3tcbiAgICBub25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25zOiBbe1xuICAgICAgc3RvcmFnZUNsYXNzOiBTdG9yYWdlQ2xhc3MuR0xBQ0lFUixcbiAgICAgIHRyYW5zaXRpb25BZnRlcjogRHVyYXRpb24uZGF5cyg5MClcbiAgICB9XVxuICB9XTtcblxuICAvLyBDcmVhdGUgdGhlIEFwcGxpY2F0aW9uIEJ1Y2tldFxuICBsZXQgZGVmYXVsdEJ1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcztcbiAgbGV0IGxvZ2dpbmdCdWNrZXQ7XG4gIGNvbnN0IHJlc29sdmVkQnVja2V0SWQgPSBidWNrZXRJZCA/IGJ1Y2tldElkICsgJ1MzQnVja2V0JyA6ICdTM0J1Y2tldCc7XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRJZCA9IGJ1Y2tldElkID8gYnVja2V0SWQgKyAnUzNMb2dnaW5nQnVja2V0JyA6ICdTM0xvZ2dpbmdCdWNrZXQnO1xuXG4gIC8vIElmIGxvZ2dpbmcgUzMgYWNjZXNzIGxvZ3MgaXMgZW5hYmxlZC91bmRlZmluZWQgYW5kIGFuIGV4aXN0aW5nIGJ1Y2tldCBvYmplY3QgaXMgbm90IHByb3ZpZGVkXG4gIGlmIChwcm9wcy5sb2dTM0FjY2Vzc0xvZ3MgIT09IGZhbHNlICYmICEocHJvcHMuYnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBMb2dnaW5nIEJ1Y2tldFxuICAgIGxldCBsb2dnaW5nQnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcygpO1xuXG4gICAgaWYgKHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgICAgLy8gVXNlciBwcm92aWRlZCBsb2dnaW5nIGJ1Y2tldCBwcm9wc1xuICAgICAgbG9nZ2luZ0J1Y2tldFByb3BzID0gb3ZlcnJpZGVQcm9wcyhsb2dnaW5nQnVja2V0UHJvcHMsIHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8ucmVtb3ZhbFBvbGljeSkge1xuICAgICAgLy8gSWYgdGhlIGNsaWVudCBleHBsaWNpdGx5IHNwZWNpZmllZCBhIHJlbW92YWwgcG9saWN5IGZvciB0aGUgbWFpbiBidWNrZXQsXG4gICAgICAvLyB0aGVuIHJlcGxpY2F0ZSB0aGF0IHBvbGljeSBvbiB0aGUgbG9nZ2luZyBidWNrZXRcbiAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMobG9nZ2luZ0J1Y2tldFByb3BzLCB7IHJlbW92YWxQb2xpY3k6IHByb3BzLmJ1Y2tldFByb3BzLnJlbW92YWxQb2xpY3kgfSk7XG4gICAgfVxuXG4gICAgbG9nZ2luZ0J1Y2tldCA9IGNyZWF0ZUxvZ2dpbmdCdWNrZXQoc2NvcGUsIGxvZ2dpbmdCdWNrZXRJZCwgbG9nZ2luZ0J1Y2tldFByb3BzKTtcbiAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCkge1xuICAgIGxvZ2dpbmdCdWNrZXQgPSBwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCBhcyBzMy5CdWNrZXQ7XG4gIH1cblxuICAvLyBBdHRhY2ggdGhlIERlZmF1bHQgTGlmZSBDeWNsZSBwb2xpY3kgT05MWSBJRiB0aGUgdmVyc2lvbmluZyBpcyBFTkFCTEVEXG4gIGlmIChwcm9wcy5idWNrZXRQcm9wcz8udmVyc2lvbmVkID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYnVja2V0UHJvcHMudmVyc2lvbmVkKSB7XG4gICAgZGVmYXVsdEJ1Y2tldFByb3BzID0gRGVmYXVsdFMzUHJvcHMobG9nZ2luZ0J1Y2tldCwgbGlmZWN5Y2xlUnVsZXMpO1xuICB9IGVsc2Uge1xuICAgIGRlZmF1bHRCdWNrZXRQcm9wcyA9IERlZmF1bHRTM1Byb3BzKGxvZ2dpbmdCdWNrZXQpO1xuICB9XG5cbiAgY29uc3QgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdEJ1Y2tldFByb3BzLCBwcm9wcy5idWNrZXRQcm9wcyk7XG5cbiAgY29uc3QgczNCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIHJlc29sdmVkQnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMgKTtcblxuICByZXR1cm4geyBidWNrZXQ6IHMzQnVja2V0LCBsb2dnaW5nQnVja2V0IH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZENmbk5hZ1MzQnVja2V0Tm90aWZpY2F0aW9uUnVsZXNUb1N1cHByZXNzKHN0YWNrUm9vdDogY2RrLlN0YWNrLCBsb2dpY2FsSWQ6IHN0cmluZykge1xuICBjb25zdCBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyID0gc3RhY2tSb290Lm5vZGUudHJ5RmluZENoaWxkKGxvZ2ljYWxJZCkgYXMgbGFtYmRhLkZ1bmN0aW9uO1xuICBjb25zdCBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyUm9sZVJvbGUgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyLm5vZGUuZmluZENoaWxkKCdSb2xlJykgYXMgaWFtLlJvbGU7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXJSb2xlUG9saWN5ID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVSb2xlLm5vZGUuZmluZENoaWxkKCdEZWZhdWx0UG9saWN5JykgYXMgaWFtLlBvbGljeTtcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5GdW5jdGlvbiBmcm9tIHRoZSBGdW5jdGlvblxuICBjb25zdCBmblJlc291cmNlID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlci5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb247XG4gIGFkZENmblN1cHByZXNzUnVsZXMoZm5SZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzU4JyxcbiAgICAgIHJlYXNvbjogYExhbWJkYSBmdW5jdGlvbnMgaGFzIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9uIHRvIHdyaXRlIENsb3VkV2F0Y2ggTG9ncy4gSXQgdXNlcyBjdXN0b20gcG9saWN5IGluc3RlYWQgb2YgYXJuOmF3czppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSB3aXRoIHRpZ2h0ZXIgcGVybWlzc2lvbnMuYFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdXODknLFxuICAgICAgcmVhc29uOiBgVGhpcyBpcyBub3QgYSBydWxlIGZvciB0aGUgZ2VuZXJhbCBjYXNlLCBqdXN0IGZvciBzcGVjaWZpYyB1c2UgY2FzZXMvaW5kdXN0cmllc2BcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnVzkyJyxcbiAgICAgIHJlYXNvbjogYEltcG9zc2libGUgZm9yIHVzIHRvIGRlZmluZSB0aGUgY29ycmVjdCBjb25jdXJyZW5jeSBmb3IgY2xpZW50c2BcbiAgICB9XG4gIF0pO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmblBvbGljeSBmcm9tIHRoZSBpYW0uUG9saWN5XG4gIGNvbnN0IHBvbGljeVJlc291cmNlID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVQb2xpY3kubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgaWFtLkNmblBvbGljeTtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhwb2xpY3lSZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzEyJyxcbiAgICAgIHJlYXNvbjogYEJ1Y2tldCByZXNvdXJjZSBpcyAnKicgZHVlIHRvIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2l0aCBidWNrZXQgYW5kIHJvbGUgY3JlYXRpb24gYXQgdGhlIHNhbWUgdGltZWBcbiAgICB9XG4gIF0pO1xufVxuIl19
package/lib/sqs-helper.js CHANGED
@@ -90,7 +90,8 @@ function buildDeadLetterQueue(scope, props) {
90
90
  // Return the dead letter queue interface
91
91
  return dlqInterface;
92
92
  }
93
- return;
93
+ // ESLint requires this return statement, so disabling SonarQube warning
94
+ return; // NOSONAR
94
95
  }
95
96
  exports.buildDeadLetterQueue = buildDeadLetterQueue;
96
97
  function applySecureQueuePolicy(queue) {
@@ -130,4 +131,4 @@ function applySecureQueuePolicy(queue) {
130
131
  }
131
132
  }));
132
133
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNxcy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFFSDs7O0dBR0c7QUFFSCxVQUFVO0FBQ1YsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUUzQyxtQ0FBc0Q7QUFDdEQsaURBQThGO0FBQzlGLDZDQUFvQztBQUNwQyw2Q0FBZ0Q7QUFpRGhEOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO0lBRTdFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDO1dBQzNGLEtBQUssQ0FBQyxzQ0FBc0MsS0FBSyxJQUFJLEVBQUU7UUFDeEQsb0JBQVksQ0FBQztnR0FDK0UsQ0FBQyxDQUFDO0tBQy9GO0lBRUQsMENBQTBDO0lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7UUFDM0Isa0JBQWtCO1FBQ2xCLElBQUksVUFBVSxDQUFDO1FBQ2YsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3BCLHdFQUF3RTtZQUN4RSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDM0QsVUFBVSxHQUFHLHFCQUFhLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDcEc7YUFBTTtZQUNMLG1FQUFtRTtZQUNuRSxVQUFVLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDM0M7UUFFRCxtREFBbUQ7UUFDbkQsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFF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QUFFO1NBQ3BCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTztTQUNSO1FBQ0QsVUFBVSxFQUFFLENBQUMsSUFBSSxzQkFBWSxFQUFFLENBQUM7UUFDaEMsTUFBTSxFQUFFLGdCQUFNLENBQUMsSUFBSTtRQUNuQixVQUFVLEVBQ047WUFDRSxJQUFJLEVBQUU7Z0JBQ0oscUJBQXFCLEVBQUUsT0FBTzthQUMvQjtTQUNGO0tBQ04sQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuL3Nxcy1kZWZhdWx0cyc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFjY291bnRQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5U3RhdGVtZW50LCBBbnlQcmluY2lwYWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtidWlsZEVuY3J5cHRpb25LZXl9IGZyb20gXCIuL2ttcy1oZWxwZXJcIjtcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUXVldWVQcm9wcyB7XG4gICAgLyoqXG4gICAgICogRXhpc3RpbmcgaW5zdGFuY2Ugb2YgU1FTIHF1ZXVlIG9iamVjdCwgcHJvdmlkaW5nIGJvdGggdGhpcyBhbmQgcXVldWVQcm9wcyB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBOb25lLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGV4aXN0aW5nUXVldWVPYmo/OiBzcXMuUXVldWU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIHByaW1hcnkgcXVldWUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcXVldWVQcm9wcz86IHNxcy5RdWV1ZVByb3BzO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIGRlYWQgbGV0dGVyIHF1ZXVlIHRvIHBhc3MgYmFkIHJlcXVlc3RzIHRvIGFmdGVyIHRoZSBtYXggcmVjZWl2ZSBjb3VudCBpcyByZWFjaGVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZT86IHNxcy5EZWFkTGV0dGVyUXVldWU7XG4gICAgLyoqXG4gICAgICogSWYgbm8ga2V5IGlzIHByb3ZpZGVkLCB0aGlzIGZsYWcgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBxdWV1ZSBpcyBlbmNyeXB0ZWQgd2l0aCBhIG5ldyBDTUsgb3IgYW4gQVdTIG1hbmFnZWQga2V5LlxuICAgICAqIFRoaXMgZmxhZyBpcyBpZ25vcmVkIGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSBkZWZpbmVkOiBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXksIGVuY3J5cHRpb25LZXkgb3IgZW5jcnlwdGlvbktleVByb3BzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBGYWxzZSBpZiBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXksIGVuY3J5cHRpb25LZXksIGFuZCBlbmNyeXB0aW9uS2V5UHJvcHMgYXJlIGFsbCB1bmRlZmluZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXk/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsLCBpbXBvcnRlZCBlbmNyeXB0aW9uIGtleSB0byBlbmNyeXB0IHRoZSBTUVMgUXVldWUgd2l0aC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuS2V5O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGZvciB0aGUgS01TIGVuY3J5cHRpb24ga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgU1FTIFF1ZXVlIHdpdGguXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICAgKi9cbiAgICAgcmVhZG9ubHkgZW5jcnlwdGlvbktleVByb3BzPzoga21zLktleVByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUXVldWVSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHF1ZXVlOiBzcXMuUXVldWUsXG4gIHJlYWRvbmx5IGtleT86IGttcy5JS2V5XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUXVldWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJ1aWxkUXVldWVQcm9wcyk6IEJ1aWxkUXVldWVSZXNwb25zZSB7XG5cbiAgaWYgKChwcm9wcy5xdWV1ZVByb3BzPy5lbmNyeXB0aW9uTWFzdGVyS2V5IHx8IHByb3BzLmVuY3J5cHRpb25LZXkgfHwgcHJvcHMuZW5jcnlwdGlvbktleVByb3BzKVxuICAmJiBwcm9wcy5lbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleSA9PT0gdHJ1ZSkge1xuICAgIHByaW50V2FybmluZyhgSWdub3JpbmcgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXkgYmVjYXVzZSBvbmUgb2ZcbiAgICAgcXVldWVQcm9wcy5lbmNyeXB0aW9uTWFzdGVyS2V5LCBlbmNyeXB0aW9uS2V5LCBvciBlbmNyeXB0aW9uS2V5UHJvcHMgd2FzIGFscmVhZHkgc3BlY2lmaWVkYCk7XG4gIH1cblxuICAvLyBJZiBhbiBleGlzdGluZ1F1ZXVlT2JqIGlzIG5vdCBzcGVjaWZpZWRcbiAgaWYgKCFwcm9wcy5leGlzdGluZ1F1ZXVlT2JqKSB7XG4gICAgLy8gU2V0dXAgdGhlIHF1ZXVlXG4gICAgbGV0IHF1ZXVlUHJvcHM7XG4gICAgaWYgKHByb3BzLnF1ZXVlUHJvcHMpIHtcbiAgICAgIC8vIElmIHByb3BlcnR5IG92ZXJyaWRlcyBoYXZlIGJlZW4gcHJvdmlkZWQsIGluY29ycG9yYXRlIHRoZW0gYW5kIGRlcGxveVxuICAgICAgY29uc3QgY2hlY2tGaWZvID0gcHJvcHMucXVldWVQcm9wcy5maWZvID8gdHJ1ZSA6IHVuZGVmaW5lZDtcbiAgICAgIHF1ZXVlUHJvcHMgPSBvdmVycmlkZVByb3BzKGRlZmF1bHRzLkRlZmF1bHRRdWV1ZVByb3BzKCksIHsgLi4ucHJvcHMucXVldWVQcm9wcywgZmlmbzogY2hlY2tGaWZvIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBubyBwcm9wZXJ0eSBvdmVycmlkZXMsIGRlcGxveSB1c2luZyB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgICBxdWV1ZVByb3BzID0gZGVmYXVsdHMuRGVmYXVsdFF1ZXVlUHJvcHMoKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hldGhlciBhIERMUSBwcm9wZXJ0eSBzaG91bGQgYmUgYWRkZWRcbiAgICBpZiAocHJvcHMuZGVhZExldHRlclF1ZXVlKSB7XG4gICAgICBxdWV1ZVByb3BzLmRlYWRMZXR0ZXJRdWV1ZSA9IHByb3BzLmRlYWRMZXR0ZXJRdWV1ZTtcbiAgICB9XG5cbiAgICAvLyBTZXQgZW5jcnlwdGlvbiBwcm9wZXJ0aWVzLlxuICAgIC8vIE5vdGUgdGhhdCBkZWZhdWx0cy5EZWZhdWx0UXVldWVQcm9wcyBzZXRzIGVuY3J5cHRpb24gdG8gU2VydmVyLXNpZGUgS01TIGVuY3J5cHRpb24gd2l0aCBhIEtNUyBrZXkgbWFuYWdlZCBieSBTUVMuXG4gICAgaWYgKHByb3BzLnF1ZXVlUHJvcHM/LmVuY3J5cHRpb25NYXN0ZXJLZXkpIHtcbiAgICAgIHF1ZXVlUHJvcHMuZW5jcnlwdGlvbk1hc3RlcktleSA9IHByb3BzLnF1ZXVlUHJvcHM/LmVuY3J5cHRpb25NYXN0ZXJLZXk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5lbmNyeXB0aW9uS2V5KSB7XG4gICAgICBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXkgPSBwcm9wcy5lbmNyeXB0aW9uS2V5O1xuICAgIH0gZWxzZSBpZiAocHJvcHMuZW5jcnlwdGlvbktleVByb3BzIHx8IHByb3BzLmVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5ID09PSB0cnVlKSB7XG4gICAgICBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXkgPSBidWlsZEVuY3J5cHRpb25LZXkoc2NvcGUsIHByb3BzLmVuY3J5cHRpb25LZXlQcm9wcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVldWUgPSBuZXcgc3FzLlF1ZXVlKHNjb3BlLCBpZCwgcXVldWVQcm9wcyk7XG5cbiAgICBhcHBseVNlY3VyZVF1ZXVlUG9saWN5KHF1ZXVlKTtcblxuICAgIC8vIFJldHVybiB0aGUgcXVldWVcbiAgICByZXR1cm4geyBxdWV1ZSwga2V5OiBxdWV1ZS5lbmNyeXB0aW9uTWFzdGVyS2V5IH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgYW4gZXhpc3RpbmdRdWV1ZU9iaiBpcyBzcGVjaWZpZWQsIHJldHVybiB0aGF0IG9iamVjdCBhcyB0aGUgcXVldWUgdG8gYmUgdXNlZFxuICAgIHJldHVybiB7IHF1ZXVlOiBwcm9wcy5leGlzdGluZ1F1ZXVlT2JqIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZERlYWRMZXR0ZXJRdWV1ZVByb3BzIHtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIFNRUyBxdWV1ZSBvYmplY3QsIHByb3ZpZGluZyBib3RoIHRoaXMgYW5kIHF1ZXVlUHJvcHMgd2lsbCBjYXVzZSBhbiBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdRdWV1ZU9iaj86IHNxcy5RdWV1ZSxcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVwbG95IGEgc2Vjb25kYXJ5IHF1ZXVlIHRvIGJlIHVzZWQgYXMgYSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveURlYWRMZXR0ZXJRdWV1ZT86IGJvb2xlYW4sXG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BlcnRpZXMgZm9yIHRoZSBkZWFkIGxldHRlciBxdWV1ZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHMsXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIGEgbWVzc2FnZSBjYW4gYmUgdW5zdWNjZXNzZnVsbHkgZGVxdWV1ZWQgYmVmb3JlIGJlaW5nIG1vdmVkIHRvIHRoZSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGREZWFkTGV0dGVyUXVldWUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEJ1aWxkRGVhZExldHRlclF1ZXVlUHJvcHMpOiBzcXMuRGVhZExldHRlclF1ZXVlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwcm9wcy5leGlzdGluZ1F1ZXVlT2JqICYmIChwcm9wcy5kZXBsb3lEZWFkTGV0dGVyUXVldWUgfHwgcHJvcHMuZGVwbG95RGVhZExldHRlclF1ZXVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBEZWFkIExldHRlciBRdWV1ZVxuICAgIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc2NvcGUsICdkZWFkTGV0dGVyUXVldWUnLCB7XG4gICAgICBxdWV1ZVByb3BzOiBwcm9wcy5kZWFkTGV0dGVyUXVldWVQcm9wc1xuICAgIH0pO1xuXG4gICAgY29uc3QgbXJjID0gKHByb3BzLm1heFJlY2VpdmVDb3VudCkgPyBwcm9wcy5tYXhSZWNlaXZlQ291bnQgOiBkZWZhdWx0cy5kZWZhdWx0TWF4UmVjZWl2ZUNvdW50O1xuXG4gICAgLy8gU2V0dXAgdGhlIERlYWQgTGV0dGVyIFF1ZXVlIGludGVyZmFjZVxuICAgIGNvbnN0IGRscUludGVyZmFjZTogc3FzLkRlYWRMZXR0ZXJRdWV1ZSA9IHtcbiAgICAgIG1heFJlY2VpdmVDb3VudDogbXJjLFxuICAgICAgcXVldWU6IGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZVxuICAgIH07XG5cbiAgICAvLyBSZXR1cm4gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlIGludGVyZmFjZVxuICAgIHJldHVybiBkbHFJbnRlcmZhY2U7XG4gIH1cbiAgcmV0dXJuO1xufVxuXG5mdW5jdGlvbiBhcHBseVNlY3VyZVF1ZXVlUG9saWN5KHF1ZXVlOiBzcXMuUXVldWUpOiB2b2lkIHtcblxuICAvLyBBcHBseSBxdWV1ZSBwb2xpY3kgdG8gZW5mb3JjZSBvbmx5IHRoZSBxdWV1ZSBvd25lciBjYW4gcGVyZm9ybSBvcGVyYXRpb25zIG9uIHF1ZXVlXG4gIHF1ZXVlLmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdRdWV1ZU93bmVyT25seUFjY2VzcycsXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYCR7cXVldWUucXVldWVBcm59YFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXCJzcXM6RGVsZXRlTWVzc2FnZVwiLFxuICAgICAgICBcInNxczpSZWNlaXZlTWVzc2FnZVwiLFxuICAgICAgICBcInNxczpTZW5kTWVzc2FnZVwiLFxuICAgICAgICBcInNxczpHZXRRdWV1ZUF0dHJpYnV0ZXNcIixcbiAgICAgICAgXCJzcXM6UmVtb3ZlUGVybWlzc2lvblwiLFxuICAgICAgICBcInNxczpBZGRQZXJtaXNzaW9uXCIsXG4gICAgICAgIFwic3FzOlNldFF1ZXVlQXR0cmlidXRlc1wiXG4gICAgICBdLFxuICAgICAgcHJpbmNpcGFsczogW25ldyBBY2NvdW50UHJpbmNpcGFsKFN0YWNrLm9mKHF1ZXVlKS5hY2NvdW50KV0sXG4gICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPV1xuICAgIH0pXG4gICk7XG5cbiAgLy8gQXBwbHkgcXVldWUgcG9saWN5IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXRcbiAgcXVldWUuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHNpZDogJ0h0dHBzT25seScsXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYCR7cXVldWUucXVldWVBcm59YFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXCJTUVM6KlwiXG4gICAgICBdLFxuICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICBlZmZlY3Q6IEVmZmVjdC5ERU5ZLFxuICAgICAgY29uZGl0aW9uczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBCb29sOiB7XG4gICAgICAgICAgICAgICdhd3M6U2VjdXJlVHJhbnNwb3J0JzogJ2ZhbHNlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICB9KVxuICApO1xufSJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNxcy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFFSDs7O0dBR0c7QUFFSCxVQUFVO0FBQ1YsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUUzQyxtQ0FBc0Q7QUFDdEQsaURBQThGO0FBQzlGLDZDQUFvQztBQUNwQyw2Q0FBZ0Q7QUFpRGhEOztHQUVHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO0lBRTdFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLG1CQUFtQixJQUFJLEtBQUssQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDO1dBQzNGLEtBQUssQ0FBQyxzQ0FBc0MsS0FBSyxJQUFJLEVBQUU7UUFDeEQsb0JBQVksQ0FBQztnR0FDK0UsQ0FBQyxDQUFDO0tBQy9GO0lBRUQsMENBQTBDO0lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7UUFDM0Isa0JBQWtCO1FBQ2xCLElBQUksVUFBVSxDQUFDO1FBQ2YsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3BCLHdFQUF3RTtZQUN4RSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDM0QsVUFBVSxHQUFHLHFCQUFhLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDcEc7YUFBTTtZQUNMLG1FQUFtRTtZQUNuRSxVQUFVLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDM0M7UUFFRCxtREFBbUQ7UUFDbkQsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFF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Q1QsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFO1NBQ3BCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsT0FBTztTQUNSO1FBQ0QsVUFBVSxFQUFFLENBQUMsSUFBSSxzQkFBWSxFQUFFLENBQUM7UUFDaEMsTUFBTSxFQUFFLGdCQUFNLENBQUMsSUFBSTtRQUNuQixVQUFVLEVBQ047WUFDRSxJQUFJLEVBQUU7Z0JBQ0oscUJBQXFCLEVBQUUsT0FBTzthQUMvQjtTQUNGO0tBQ04sQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuL3Nxcy1kZWZhdWx0cyc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFjY291bnRQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5U3RhdGVtZW50LCBBbnlQcmluY2lwYWwgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtidWlsZEVuY3J5cHRpb25LZXl9IGZyb20gXCIuL2ttcy1oZWxwZXJcIjtcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUXVldWVQcm9wcyB7XG4gICAgLyoqXG4gICAgICogRXhpc3RpbmcgaW5zdGFuY2Ugb2YgU1FTIHF1ZXVlIG9iamVjdCwgcHJvdmlkaW5nIGJvdGggdGhpcyBhbmQgcXVldWVQcm9wcyB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBOb25lLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGV4aXN0aW5nUXVldWVPYmo/OiBzcXMuUXVldWU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIHByaW1hcnkgcXVldWUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcXVldWVQcm9wcz86IHNxcy5RdWV1ZVByb3BzO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIGRlYWQgbGV0dGVyIHF1ZXVlIHRvIHBhc3MgYmFkIHJlcXVlc3RzIHRvIGFmdGVyIHRoZSBtYXggcmVjZWl2ZSBjb3VudCBpcyByZWFjaGVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZT86IHNxcy5EZWFkTGV0dGVyUXVldWU7XG4gICAgLyoqXG4gICAgICogSWYgbm8ga2V5IGlzIHByb3ZpZGVkLCB0aGlzIGZsYWcgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBxdWV1ZSBpcyBlbmNyeXB0ZWQgd2l0aCBhIG5ldyBDTUsgb3IgYW4gQVdTIG1hbmFnZWQga2V5LlxuICAgICAqIFRoaXMgZmxhZyBpcyBpZ25vcmVkIGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSBkZWZpbmVkOiBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXksIGVuY3J5cHRpb25LZXkgb3IgZW5jcnlwdGlvbktleVByb3BzLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBGYWxzZSBpZiBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXksIGVuY3J5cHRpb25LZXksIGFuZCBlbmNyeXB0aW9uS2V5UHJvcHMgYXJlIGFsbCB1bmRlZmluZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXk/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsLCBpbXBvcnRlZCBlbmNyeXB0aW9uIGtleSB0byBlbmNyeXB0IHRoZSBTUVMgUXVldWUgd2l0aC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuS2V5O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGZvciB0aGUgS01TIGVuY3J5cHRpb24ga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgU1FTIFF1ZXVlIHdpdGguXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICAgKi9cbiAgICAgcmVhZG9ubHkgZW5jcnlwdGlvbktleVByb3BzPzoga21zLktleVByb3BzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUXVldWVSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHF1ZXVlOiBzcXMuUXVldWUsXG4gIHJlYWRvbmx5IGtleT86IGttcy5JS2V5XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUXVldWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEJ1aWxkUXVldWVQcm9wcyk6IEJ1aWxkUXVldWVSZXNwb25zZSB7XG5cbiAgaWYgKChwcm9wcy5xdWV1ZVByb3BzPy5lbmNyeXB0aW9uTWFzdGVyS2V5IHx8IHByb3BzLmVuY3J5cHRpb25LZXkgfHwgcHJvcHMuZW5jcnlwdGlvbktleVByb3BzKVxuICAmJiBwcm9wcy5lbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleSA9PT0gdHJ1ZSkge1xuICAgIHByaW50V2FybmluZyhgSWdub3JpbmcgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXkgYmVjYXVzZSBvbmUgb2ZcbiAgICAgcXVldWVQcm9wcy5lbmNyeXB0aW9uTWFzdGVyS2V5LCBlbmNyeXB0aW9uS2V5LCBvciBlbmNyeXB0aW9uS2V5UHJvcHMgd2FzIGFscmVhZHkgc3BlY2lmaWVkYCk7XG4gIH1cblxuICAvLyBJZiBhbiBleGlzdGluZ1F1ZXVlT2JqIGlzIG5vdCBzcGVjaWZpZWRcbiAgaWYgKCFwcm9wcy5leGlzdGluZ1F1ZXVlT2JqKSB7XG4gICAgLy8gU2V0dXAgdGhlIHF1ZXVlXG4gICAgbGV0IHF1ZXVlUHJvcHM7XG4gICAgaWYgKHByb3BzLnF1ZXVlUHJvcHMpIHtcbiAgICAgIC8vIElmIHByb3BlcnR5IG92ZXJyaWRlcyBoYXZlIGJlZW4gcHJvdmlkZWQsIGluY29ycG9yYXRlIHRoZW0gYW5kIGRlcGxveVxuICAgICAgY29uc3QgY2hlY2tGaWZvID0gcHJvcHMucXVldWVQcm9wcy5maWZvID8gdHJ1ZSA6IHVuZGVmaW5lZDtcbiAgICAgIHF1ZXVlUHJvcHMgPSBvdmVycmlkZVByb3BzKGRlZmF1bHRzLkRlZmF1bHRRdWV1ZVByb3BzKCksIHsgLi4ucHJvcHMucXVldWVQcm9wcywgZmlmbzogY2hlY2tGaWZvIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBubyBwcm9wZXJ0eSBvdmVycmlkZXMsIGRlcGxveSB1c2luZyB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgICBxdWV1ZVByb3BzID0gZGVmYXVsdHMuRGVmYXVsdFF1ZXVlUHJvcHMoKTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hldGhlciBhIERMUSBwcm9wZXJ0eSBzaG91bGQgYmUgYWRkZWRcbiAgICBpZiAocHJvcHMuZGVhZExldHRlclF1ZXVlKSB7XG4gICAgICBxdWV1ZVByb3BzLmRlYWRMZXR0ZXJRdWV1ZSA9IHByb3BzLmRlYWRMZXR0ZXJRdWV1ZTtcbiAgICB9XG5cbiAgICAvLyBTZXQgZW5jcnlwdGlvbiBwcm9wZXJ0aWVzLlxuICAgIC8vIE5vdGUgdGhhdCBkZWZhdWx0cy5EZWZhdWx0UXVldWVQcm9wcyBzZXRzIGVuY3J5cHRpb24gdG8gU2VydmVyLXNpZGUgS01TIGVuY3J5cHRpb24gd2l0aCBhIEtNUyBrZXkgbWFuYWdlZCBieSBTUVMuXG4gICAgaWYgKHByb3BzLnF1ZXVlUHJvcHM/LmVuY3J5cHRpb25NYXN0ZXJLZXkpIHtcbiAgICAgIHF1ZXVlUHJvcHMuZW5jcnlwdGlvbk1hc3RlcktleSA9IHByb3BzLnF1ZXVlUHJvcHM/LmVuY3J5cHRpb25NYXN0ZXJLZXk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5lbmNyeXB0aW9uS2V5KSB7XG4gICAgICBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXkgPSBwcm9wcy5lbmNyeXB0aW9uS2V5O1xuICAgIH0gZWxzZSBpZiAocHJvcHMuZW5jcnlwdGlvbktleVByb3BzIHx8IHByb3BzLmVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5ID09PSB0cnVlKSB7XG4gICAgICBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXkgPSBidWlsZEVuY3J5cHRpb25LZXkoc2NvcGUsIHByb3BzLmVuY3J5cHRpb25LZXlQcm9wcyk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVldWUgPSBuZXcgc3FzLlF1ZXVlKHNjb3BlLCBpZCwgcXVldWVQcm9wcyk7XG5cbiAgICBhcHBseVNlY3VyZVF1ZXVlUG9saWN5KHF1ZXVlKTtcblxuICAgIC8vIFJldHVybiB0aGUgcXVldWVcbiAgICByZXR1cm4geyBxdWV1ZSwga2V5OiBxdWV1ZS5lbmNyeXB0aW9uTWFzdGVyS2V5IH07XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgYW4gZXhpc3RpbmdRdWV1ZU9iaiBpcyBzcGVjaWZpZWQsIHJldHVybiB0aGF0IG9iamVjdCBhcyB0aGUgcXVldWUgdG8gYmUgdXNlZFxuICAgIHJldHVybiB7IHF1ZXVlOiBwcm9wcy5leGlzdGluZ1F1ZXVlT2JqIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZERlYWRMZXR0ZXJRdWV1ZVByb3BzIHtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIFNRUyBxdWV1ZSBvYmplY3QsIHByb3ZpZGluZyBib3RoIHRoaXMgYW5kIHF1ZXVlUHJvcHMgd2lsbCBjYXVzZSBhbiBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lLlxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdRdWV1ZU9iaj86IHNxcy5RdWV1ZSxcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVwbG95IGEgc2Vjb25kYXJ5IHF1ZXVlIHRvIGJlIHVzZWQgYXMgYSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmaWVsZC5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveURlYWRMZXR0ZXJRdWV1ZT86IGJvb2xlYW4sXG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BlcnRpZXMgZm9yIHRoZSBkZWFkIGxldHRlciBxdWV1ZVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHMsXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIGEgbWVzc2FnZSBjYW4gYmUgdW5zdWNjZXNzZnVsbHkgZGVxdWV1ZWQgYmVmb3JlIGJlaW5nIG1vdmVkIHRvIHRoZSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGREZWFkTGV0dGVyUXVldWUoc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IEJ1aWxkRGVhZExldHRlclF1ZXVlUHJvcHMpOiBzcXMuRGVhZExldHRlclF1ZXVlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwcm9wcy5leGlzdGluZ1F1ZXVlT2JqICYmIChwcm9wcy5kZXBsb3lEZWFkTGV0dGVyUXVldWUgfHwgcHJvcHMuZGVwbG95RGVhZExldHRlclF1ZXVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBEZWFkIExldHRlciBRdWV1ZVxuICAgIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGJ1aWxkUXVldWUoc2NvcGUsICdkZWFkTGV0dGVyUXVldWUnLCB7XG4gICAgICBxdWV1ZVByb3BzOiBwcm9wcy5kZWFkTGV0dGVyUXVldWVQcm9wc1xuICAgIH0pO1xuXG4gICAgY29uc3QgbXJjID0gKHByb3BzLm1heFJlY2VpdmVDb3VudCkgPyBwcm9wcy5tYXhSZWNlaXZlQ291bnQgOiBkZWZhdWx0cy5kZWZhdWx0TWF4UmVjZWl2ZUNvdW50O1xuXG4gICAgLy8gU2V0dXAgdGhlIERlYWQgTGV0dGVyIFF1ZXVlIGludGVyZmFjZVxuICAgIGNvbnN0IGRscUludGVyZmFjZTogc3FzLkRlYWRMZXR0ZXJRdWV1ZSA9IHtcbiAgICAgIG1heFJlY2VpdmVDb3VudDogbXJjLFxuICAgICAgcXVldWU6IGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZVxuICAgIH07XG5cbiAgICAvLyBSZXR1cm4gdGhlIGRlYWQgbGV0dGVyIHF1ZXVlIGludGVyZmFjZVxuICAgIHJldHVybiBkbHFJbnRlcmZhY2U7XG4gIH1cbiAgLy8gRVNMaW50IHJlcXVpcmVzIHRoaXMgcmV0dXJuIHN0YXRlbWVudCwgc28gZGlzYWJsaW5nIFNvbmFyUXViZSB3YXJuaW5nXG4gIHJldHVybjsgLy8gTk9TT05BUlxufVxuXG5mdW5jdGlvbiBhcHBseVNlY3VyZVF1ZXVlUG9saWN5KHF1ZXVlOiBzcXMuUXVldWUpOiB2b2lkIHtcblxuICAvLyBBcHBseSBxdWV1ZSBwb2xpY3kgdG8gZW5mb3JjZSBvbmx5IHRoZSBxdWV1ZSBvd25lciBjYW4gcGVyZm9ybSBvcGVyYXRpb25zIG9uIHF1ZXVlXG4gIHF1ZXVlLmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdRdWV1ZU93bmVyT25seUFjY2VzcycsXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYCR7cXVldWUucXVldWVBcm59YFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXCJzcXM6RGVsZXRlTWVzc2FnZVwiLFxuICAgICAgICBcInNxczpSZWNlaXZlTWVzc2FnZVwiLFxuICAgICAgICBcInNxczpTZW5kTWVzc2FnZVwiLFxuICAgICAgICBcInNxczpHZXRRdWV1ZUF0dHJpYnV0ZXNcIixcbiAgICAgICAgXCJzcXM6UmVtb3ZlUGVybWlzc2lvblwiLFxuICAgICAgICBcInNxczpBZGRQZXJtaXNzaW9uXCIsXG4gICAgICAgIFwic3FzOlNldFF1ZXVlQXR0cmlidXRlc1wiXG4gICAgICBdLFxuICAgICAgcHJpbmNpcGFsczogW25ldyBBY2NvdW50UHJpbmNpcGFsKFN0YWNrLm9mKHF1ZXVlKS5hY2NvdW50KV0sXG4gICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPV1xuICAgIH0pXG4gICk7XG5cbiAgLy8gQXBwbHkgcXVldWUgcG9saWN5IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXRcbiAgcXVldWUuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHNpZDogJ0h0dHBzT25seScsXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYCR7cXVldWUucXVldWVBcm59YFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXCJTUVM6KlwiXG4gICAgICBdLFxuICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICBlZmZlY3Q6IEVmZmVjdC5ERU5ZLFxuICAgICAgY29uZGl0aW9uczpcbiAgICAgICAgICB7XG4gICAgICAgICAgICBCb29sOiB7XG4gICAgICAgICAgICAgICdhd3M6U2VjdXJlVHJhbnNwb3J0JzogJ2ZhbHNlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICB9KVxuICApO1xufSJdfQ==
package/lib/utils.js CHANGED
@@ -50,13 +50,6 @@ function isPlainObject(o) {
50
50
  // Most likely a plain Object
51
51
  return true;
52
52
  }
53
- function combineMerge(target, source) {
54
- return target.concat(source);
55
- }
56
- function overwriteMerge(target, source) {
57
- target = source;
58
- return target;
59
- }
60
53
  /**
61
54
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
62
55
  */
@@ -69,13 +62,13 @@ function overrideProps(DefaultProps, userProps, concatArray = false) {
69
62
  // Override the sensible defaults with user provided props
70
63
  if (concatArray) {
71
64
  return deepmerge(DefaultProps, userProps, {
72
- arrayMerge: combineMerge,
65
+ arrayMerge: (destinationArray, sourceArray) => destinationArray.concat(sourceArray),
73
66
  isMergeableObject: isPlainObject
74
67
  });
75
68
  }
76
69
  else {
77
70
  return deepmerge(DefaultProps, userProps, {
78
- arrayMerge: overwriteMerge,
71
+ arrayMerge: (_destinationArray, sourceArray) => sourceArray,
79
72
  isMergeableObject: isPlainObject
80
73
  });
81
74
  }
@@ -226,4 +219,4 @@ function generateName(scope, resourceId = "") {
226
219
  return name;
227
220
  }
228
221
  exports.generateName = generateName;
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7R0FHRztBQUVILHVDQUF1QztBQUN2Qyx5RUFBb0U7QUFDcEUsOEJBQThCO0FBQzlCLGlDQUFpQztBQUNqQyxtQ0FBbUM7QUFHbkMsU0FBUyxRQUFRLENBQUMsR0FBVztJQUMzQixPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtXQUNwQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssaUJBQWlCLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLENBQVM7SUFDOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM3QixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCw4QkFBOEI7SUFDOUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUMzQixJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsRUFBRTtRQUM5QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsNEJBQTRCO0lBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCx5REFBeUQ7SUFDekQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUNsRCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsNkJBQTZCO0lBQzdCLE9BQU8sSUFBSSxDQUFDO0FB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R0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztLQUNqRTtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBkZWVwbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJztcbmltcG9ydCB7IGZsYWdPdmVycmlkZGVuRGVmYXVsdHMgfSBmcm9tICcuL292ZXJyaWRlLXdhcm5pbmctc2VydmljZSc7XG5pbXBvcnQgKiBhcyBsb2cgZnJvbSAnbnBtbG9nJztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbDogb2JqZWN0KSB7XG4gIHJldHVybiB2YWwgIT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0J1xuICAgICAgICAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgT2JqZWN0XSc7XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qobzogb2JqZWN0KSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG8pID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNPYmplY3QobykgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gSWYgaGFzIG1vZGlmaWVkIGNvbnN0cnVjdG9yXG4gIGNvbnN0IGN0b3IgPSBvLmNvbnN0cnVjdG9yO1xuICBpZiAodHlwZW9mIGN0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBJZiBoYXMgbW9kaWZpZWQgcHJvdG90eXBlXG4gIGNvbnN0IHByb3QgPSBjdG9yLnByb3RvdHlwZTtcbiAgaWYgKGlzT2JqZWN0KHByb3QpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIElmIGNvbnN0cnVjdG9yIGRvZXMgbm90IGhhdmUgYW4gT2JqZWN0LXNwZWNpZmljIG1ldGhvZFxuICBpZiAocHJvdC5oYXNPd25Qcm9wZXJ0eSgnaXNQcm90b3R5cGVPZicpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIE1vc3QgbGlrZWx5IGEgcGxhaW4gT2JqZWN0XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBjb21iaW5lTWVyZ2UodGFyZ2V0OiBhbnlbXSwgc291cmNlOiBhbnlbXSkge1xuICByZXR1cm4gdGFyZ2V0LmNvbmNhdChzb3VyY2UpO1xufVxuXG5mdW5jdGlvbiBvdmVyd3JpdGVNZXJnZSh0YXJnZXQ6IGFueVtdLCBzb3VyY2U6IGFueVtdKSB7XG4gIHRhcmdldCA9IHNvdXJjZTtcbiAgcmV0dXJuIHRhcmdldDtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3ZlcnJpZGVQcm9wcyhEZWZhdWx0UHJvcHM6IG9iamVjdCwgdXNlclByb3BzOiBvYmplY3QsIGNvbmNhdEFycmF5OiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xuICAvLyBOb3RpZnkgdGhlIHVzZXIgdmlhIGNvbnNvbGUgb3V0cHV0IGlmIGRlZmF1bHRzIGFyZSBvdmVycmlkZGVuXG4gIGNvbnN0IG92ZXJyaWRlV2FybmluZ3NFbmFibGVkID0gKHByb2Nlc3MuZW52Lm92ZXJyaWRlV2FybmluZ3NFbmFibGVkICE9PSAnZmFsc2UnKTtcbiAgaWYgKG92ZXJyaWRlV2FybmluZ3NFbmFibGVkKSB7XG4gICAgZmxhZ092ZXJyaWRkZW5EZWZhdWx0cyhEZWZhdWx0UHJvcHMsIHVzZXJQcm9wcyk7XG4gIH1cbiAgLy8gT3ZlcnJpZGUgdGhlIHNlbnNpYmxlIGRlZmF1bHRzIHdpdGggdXNlciBwcm92aWRlZCBwcm9wc1xuICBpZiAoY29uY2F0QXJyYXkpIHtcbiAgICByZXR1cm4gZGVlcG1lcmdlKERlZmF1bHRQcm9wcywgdXNlclByb3BzLCB7XG4gICAgICBhcnJheU1lcmdlOiBjb21iaW5lTWVyZ2UsXG4gICAgICBpc01lcmdlYWJsZU9iamVjdDogaXNQbGFpbk9iamVjdFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBkZWVwbWVyZ2UoRGVmYXVsdFByb3BzLCB1c2VyUHJvcHMsIHtcbiAgICAgIGFycmF5TWVyZ2U6IG92ZXJ3cml0ZU1lcmdlLFxuICAgICAgaXNNZXJnZWFibGVPYmplY3Q6IGlzUGxhaW5PYmplY3RcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFdhcm5pbmcobWVzc2FnZTogc3RyaW5nKSB7XG4gIC8vIFN0eWxlIHRoZSBsb2cgb3V0cHV0XG4gIGxvZy5wcmVmaXhTdHlsZS5ib2xkID0gdHJ1ZTtcbiAgbG9nLnByZWZpeFN0eWxlLmZnID0gJ3JlZCc7XG4gIGxvZy5lbmFibGVDb2xvcigpO1xuICBsb2cud2FybignQVdTX1NPTFVUSU9OU19DT05TVFJVQ1RTX1dBUk5JTkc6ICcsIG1lc3NhZ2UpO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKlxuICogQHN1bW1hcnkgQ3JlYXRlcyBhIHJlc291cmNlIG5hbWUgaW4gdGhlIHN0eWxlIG9mIHRoZSBDREsgKHN0cmluZytoYXNoKSAtIHRoaXMgdmFsdWUgc2hvdWxkIGJlIHVzZWQgZm9yIGxvZ2ljYWwgSURzLCBidXRcbiAqIG5vdCBQaHlzaWNhbCBOYW1lcywgYXMgaXQgd2lsbCBub3QgYmUgc3RhdGljIHdpdGhpbiBhIHNpbmdsZSBzdGFjayBpbnN0YW5jZSBsaWZldGltZSwgb3IgaXQgd2lsbCBub3QgYmUgZGlmZmVyZW50IGluXG4gKiBkaWZmZXJlbnQgc3RhY2sgaW5zdGFuY2VzXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXJ0cyAtIHRoZSB2YXJpb3VzIHN0cmluZyBjb21wb25lbnRzIG9mIHRoZSBuYW1lIChlZyAtIHN0YWNrTmFtZSwgc29sdXRpb25zIGNvbnN0cnVjdCBJRCwgTDIgY29uc3RydWN0IElEKVxuICogQHBhcmFtIHtudW1iZXJ9IG1heExlbmd0aCAtIHRoZSBsb25nZXN0IHN0cmluZyB0aGF0IGNhbiBiZSByZXR1cm5lZFxuICogQHJldHVybnMge3N0cmluZ30gLSBhIHN0cmluZyB3aXRoIGNvbmNhdGVuYXRlZCBwYXJ0cyAodHJ1bmNhdGVkIGlmIG5lY2Nlc3NhcnkpICsgYSBoYXNoIG9mIHRoZSBmdWxsIGNvbmNhdGVuYXRlZCBwYXJ0c1xuICpcbiAqIFRoaXMgaXMgYmFzZWQgdXBvbiB0aGlzIGRpc2N1c3Npb24gLSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE0MjRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICBwYXJ0czogc3RyaW5nW10sXG4gIG1heExlbmd0aDogbnVtYmVyLFxuICByYW5kb21pemU6IGJvb2xlYW4gPSBmYWxzZVxuKTogc3RyaW5nIHtcbiAgY29uc3QgaGFzaExlbmd0aCA9IDEyO1xuICBjb25zdCByYW5kb21pem9yOiBzdHJpbmcgPSByYW5kb21pemUgPyAobmV3IERhdGUoKSkuZ2V0VGltZSgpLnRvU3RyaW5nKCkgOiBcIlwiO1xuXG4gIGNvbnN0IG1heFBhcnRMZW5ndGggPSBNYXRoLmZsb29yKCAobWF4TGVuZ3RoIC0gIGhhc2hMZW5ndGggLSByYW5kb21pem9yLmxlbmd0aCkgLyBwYXJ0cy5sZW5ndGgpO1xuXG4gIGNvbnN0IHNoYTI1NiA9IGNyeXB0by5jcmVhdGVIYXNoKFwic2hhMjU2XCIpO1xuICBsZXQgZmluYWxOYW1lOiBzdHJpbmcgPSAnJztcblxuICBwYXJ0cy5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgc2hhMjU2LnVwZGF0ZShwYXJ0KTtcbiAgICBmaW5hbE5hbWUgKz0gcmVtb3ZlTm9uQWxwaGFudW1lcmljKHBhcnQuc2xpY2UoMCwgbWF4UGFydExlbmd0aCkpO1xuICB9KTtcblxuICBjb25zdCBoYXNoID0gc2hhMjU2LmRpZ2VzdChcImhleFwiKS5zbGljZSgwLCBoYXNoTGVuZ3RoKTtcbiAgZmluYWxOYW1lICs9IGhhc2g7XG4gIGZpbmFsTmFtZSArPSByYW5kb21pem9yO1xuICByZXR1cm4gZmluYWxOYW1lLnRvTG93ZXJDYXNlKCk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgcGh5c2ljYWwgcmVzb3VyY2UgbmFtZSBpbiB0aGUgc3R5bGUgb2YgdGhlIENESyAoc3RyaW5nK2hhc2gpIC0gdGhpcyB2YWx1ZSBpbmNvcnBvcmF0ZXMgU3RhY2sgSUQsXG4gKiBzbyBpdCB3aWxsIHJlbWFpbiBzdGF0aWMgaW4gbXVsdGlwbGUgdXBkYXRlcyBvZiBhIHNpbmdsZSBzdGFjaywgYnV0IHdpbGwgYmUgZGlmZmVyZW50IGluIGEgc2VwYXJhdGUgc3RhY2sgaW5zdGFuY2VcbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhcnRzIC0gdGhlIHZhcmlvdXMgc3RyaW5nIGNvbXBvbmVudHMgb2YgdGhlIG5hbWUgKGVnIC0gc3RhY2tOYW1lLCBzb2x1dGlvbnMgY29uc3RydWN0IElELCBMMiBjb25zdHJ1Y3QgSUQpXG4gKiBAcGFyYW0ge251bWJlcn0gbWF4TGVuZ3RoIC0gdGhlIGxvbmdlc3Qgc3RyaW5nIHRoYXQgY2FuIGJlIHJldHVybmVkXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIGEgc3RyaW5nIHdpdGggY29uY2F0ZW5hdGVkIHBhcnRzICh0cnVuY2F0ZWQgaWYgbmVjY2Vzc2FyeSkgKyBhIGhhc2ggb2YgdGhlIGZ1bGwgY29uY2F0ZW5hdGVkIHBhcnRzXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQaHlzaWNhbE5hbWUoXG4gIHByZWZpeDogc3RyaW5nLFxuICBwYXJ0czogc3RyaW5nW10sXG4gIG1heExlbmd0aDogbnVtYmVyLFxuKTogc3RyaW5nIHtcbiAgLy8gVGhlIHJlc3VsdCB3aWxsIGNvbnNpc3Qgb2Y6XG4gIC8vICAgIC1UaGUgcHJlZml4IC0gdW5hbHRlcmVkXG4gIC8vICAgIC1UaGUgcGFydHMgY29uY2F0ZW5hdGVkLCBidXQgcmVkdWNlZCBpbiBzaXplIHRvIG1lZXQgdGhlIG1heExlbmd0aCBsaW1pdCBmb3IgdGhlIG92ZXJhbGwgbmFtZVxuICAvLyAgICAtQSBoeXBoZW4gZGVsaW1pdGVyXG4gIC8vICAgIC1UaGUgR1VJRCBwb3J0aW9uIG9mIHRoZSBzdGFjayBhcm5cblxuICBjb25zdCBzdGFja0lkR3VpZExlbmd0aCA9IDM2O1xuICBjb25zdCBwcmVmaXhMZW5ndGggPSBwcmVmaXgubGVuZ3RoO1xuICBjb25zdCBtYXhQYXJ0c0xlbmd0aCA9IG1heExlbmd0aCAtIHByZWZpeExlbmd0aCAtIDEgLSBzdGFja0lkR3VpZExlbmd0aDsgLy8gMSBpcyB0aGUgaHlwaGVuXG5cbiAgLy8gRXh0cmFjdCB0aGUgU3RhY2sgSUQgR3VpZFxuICBjb25zdCB1bmlxdWVTdGFja0lkUGFydCA9IGNkay5Gbi5zZWxlY3QoMiwgY2RrLkZuLnNwbGl0KCcvJywgYCR7Y2RrLkF3cy5TVEFDS19JRH1gKSk7XG5cbiAgbGV0IGFsbFBhcnRzOiBzdHJpbmcgPSAnJztcblxuICBwYXJ0cy5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgYWxsUGFydHMgKz0gcGFydDtcbiAgfSk7XG5cbiAgaWYgKGFsbFBhcnRzLmxlbmd0aCA+IG1heFBhcnRzTGVuZ3RoKSB7XG4gICAgY29uc3Qgc3ViU3RyaW5nTGVuZ3RoID0gbWF4UGFydHNMZW5ndGggLyAyO1xuICAgIGFsbFBhcnRzID0gYWxsUGFydHMuc3Vic3RyaW5nKDAsIHN1YlN0cmluZ0xlbmd0aCkgKyBhbGxQYXJ0cy5zdWJzdHJpbmcoYWxsUGFydHMubGVuZ3RoIC0gc3ViU3RyaW5nTGVuZ3RoKTtcbiAgfVxuXG4gIGNvbnN0IGZpbmFsTmFtZSAgPSBwcmVmaXgudG9Mb3dlckNhc2UoKSArIGFsbFBhcnRzICsgJy0nICsgdW5pcXVlU3RhY2tJZFBhcnQ7XG4gIHJldHVybiBmaW5hbE5hbWU7XG59XG5cbi8qKlxuICogUmVtb3ZlcyBhbGwgbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGluIGEgc3RyaW5nLlxuICovXG5mdW5jdGlvbiByZW1vdmVOb25BbHBoYW51bWVyaWMoczogc3RyaW5nKSB7XG4gIHJldHVybiBzLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJyk7XG59XG5cbi8qKlxuICogVGhlIENGTiBOQUcgc3VwcHJlc3MgcnVsZSBpbnRlcmZhY2VcbiAqIEBpbnRlcmZhY2UgQ2ZuTmFnU3VwcHJlc3NSdWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuTmFnU3VwcHJlc3NSdWxlIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcmVhc29uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBBZGRzIENGTiBOQUcgc3VwcHJlc3MgcnVsZXMgdG8gdGhlIENESyByZXNvdXJjZS5cbiAqIEBwYXJhbSByZXNvdXJjZSBUaGUgQ0RLIHJlc291cmNlXG4gKiBAcGFyYW0gcnVsZXMgVGhlIENGTiBOQUcgc3VwcHJlc3MgcnVsZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZENmblN1cHByZXNzUnVsZXMocmVzb3VyY2U6IGNkay5SZXNvdXJjZSB8IGNkay5DZm5SZXNvdXJjZSwgcnVsZXM6IENmbk5hZ1N1cHByZXNzUnVsZVtdKSB7XG4gIGlmIChyZXNvdXJjZSBpbnN0YW5jZW9mIGNkay5SZXNvdXJjZSkge1xuICAgIHJlc291cmNlID0gcmVzb3VyY2Uubm9kZS5kZWZhdWx0Q2hpbGQgYXMgY2RrLkNmblJlc291cmNlO1xuICB9XG5cbiAgaWYgKHJlc291cmNlLmNmbk9wdGlvbnMubWV0YWRhdGE/LmNmbl9uYWc/LnJ1bGVzX3RvX3N1cHByZXNzKSB7XG4gICAgcmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YT8uY2ZuX25hZy5ydWxlc190b19zdXBwcmVzcy5wdXNoKC4uLnJ1bGVzKTtcbiAgfSBlbHNlIHtcbiAgICByZXNvdXJjZS5hZGRNZXRhZGF0YSgnY2ZuX25hZycsIHtcbiAgICAgIHJ1bGVzX3RvX3N1cHByZXNzOiBydWxlc1xuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBDcmVhdGVzIHRoZSBwcm9wcyB0byBiZSB1c2VkIHRvIGluc3RhbnRpYXRlIGEgQ0RLIEwyIGNvbnN0cnVjdCB3aXRoaW4gYSBTb2x1dGlvbnMgQ29uc3RydWN0XG4gKlxuICogQHBhcmFtIGRlZmF1bHRQcm9wcyBUaGUgZGVmYXVsdCBwcm9wcyB0byBiZSB1c2VkIGJ5IHRoZSBjb25zdHJ1Y3RcbiAqIEBwYXJhbSBjbGllbnRQcm9wcyBPcHRpb25hbCBwcm9wZXJ0aWVzIHBhc3NlZCBpbiBmcm9tIHRoZSBjbGllbnQgaW4gdGhlIHByb3BzIG9iamVjdFxuICogQHBhcmFtIGNvbnN0cnVjdFByb3BzIE9wdGlvbmFsIHByb3BlcnRpZXMgcmVxdWlyZWQgYnkgdGhlIGNvbnN0cnVjdCBmb3IgdGhlIGNvbnN0cnVjdCB0byB3b3JrIChvdmVycmlkZSBhbnkgb3RoZXIgdmFsdWVzKVxuICogQHJldHVybnMgVGhlIHByb3BlcnRpZXMgdG8gdXNlIC0gYWxsIHZhbHVlcyBwcmlvcml0aXplZDpcbiAqICAxKSBjb25zdHJ1Y3RQcm9wcyB2YWx1ZVxuICogIDIpIGNsaWVudFByb3BzIHZhbHVlXG4gKiAgMykgZGVmYXVsdFByb3BzIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRQcm9wczogb2JqZWN0LCBjbGllbnRQcm9wcz86IG9iamVjdCwgY29uc3RydWN0UHJvcHM/OiBvYmplY3QsIGNvbmNhdEFycmF5OiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xuICBsZXQgcmVzdWx0OiBvYmplY3QgPSBkZWZhdWx0UHJvcHM7XG5cbiAgaWYgKGNsaWVudFByb3BzKSB7XG4gICAgcmVzdWx0ID0gb3ZlcnJpZGVQcm9wcyhyZXN1bHQsIGNsaWVudFByb3BzLCBjb25jYXRBcnJheSk7XG4gIH1cblxuICBpZiAoY29uc3RydWN0UHJvcHMpIHtcbiAgICByZXN1bHQgPSBvdmVycmlkZVByb3BzKHJlc3VsdCwgY29uc3RydWN0UHJvcHMsIGNvbmNhdEFycmF5KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBHZW5lcmF0ZXMgYSBuYW1lIHVuaXF1ZSB0byB0aGlzIGxvY2F0aW9uIGluIHRoaXMgc3RhY2sgd2l0aCB0aGlzIHN0YWNrbmFtZS4gVHJ1bmNhdGVzIHRvIHVuZGVyIDY0IGNoYXJhY3RlcnMgaWYgbmVlZGVkLlxuICogKHdpbGwgYWxsb3cgMiBjb3BpZXMgb2YgdGhlIHN0YWNrIHdpdGggZGlmZmVyZW50IHN0YWNrIG5hbWVzLCBidXQgd2lsbCBjb2xsaWRlIGlmIGJvdGggc3RhY2tzIGhhdmUgdGhlIHNhbWUgbmFtZSlcbiAqXG4gKiBAcGFyYW0gc2NvcGUgdGhlIGNvbnN0cnVjdCB3aXRoaW4gdG8gY3JlYXRlIHRoZSBuYW1lXG4gKiBAcGFyYW0gcmVzb3VyY2VJZCBhbiBpZCBmb3IgdGhlIGNvbnN0cnVjdCBhYm91dCB0byBiZSBjcmVhdGVkIHVuZGVyIHNjb3BlIChlbXB0eSBzdHJpbmcgaWYgbmFtZSBpcyBmb3Igc2NvZXApXG4gKiBAcmV0dXJucyBhIHVuaXF1ZSBuYW1lXG4gKlxuICogTm90ZTogVGhpcyBhcHBlYXJzIHRvIG92ZXJsYXAgd2l0aCBHZW5lcmF0ZVJlc291cmNlTmFtZSBhYm92ZSAoSSB3cm90ZSBpdCBiZWZvcmUgbm90aWNpbmcgdGhhdFxuICogZnVuY3Rpb24pLiBBcyB0aGlzIG9mZmxvYWRzIHRoZSBsb2dpYyB0byB0aGUgQ0RLLCBJJ20gbGVhdmluZyB0aGlzIGhlcmUgYnV0IHNvbWVvbmUgbWF5IHdhbnQgdG9cbiAqIGJsZW5kIHRoZXNlIHJvdXRpbmVzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU5hbWUoc2NvcGU6IENvbnN0cnVjdCwgcmVzb3VyY2VJZDogc3RyaW5nID0gXCJcIik6IHN0cmluZyB7XG4gIGNvbnN0IG5hbWUgPSByZXNvdXJjZUlkICsgY2RrLk5hbWVzLnVuaXF1ZUlkKHNjb3BlKTtcbiAgaWYgKG5hbWUubGVuZ3RoID4gNjQpIHtcbiAgICByZXR1cm4gbmFtZS5zdWJzdHJpbmcoMCwgMzIpICsgbmFtZS5zdWJzdHJpbmcobmFtZS5sZW5ndGggLSAzMik7XG4gIH1cbiAgcmV0dXJuIG5hbWU7XG59XG4iXX0=
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVIOzs7R0FHRztBQUVILHVDQUF1QztBQUN2Qyx5RUFBb0U7QUFDcEUsOEJBQThCO0FBQzlCLGlDQUFpQztBQUNqQyxtQ0FBbUM7QUFHbkMsU0FBUyxRQUFRLENBQUMsR0FBVztJQUMzQixPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtXQUNwQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssaUJBQWlCLENBQUM7QUFDckUsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLENBQVM7SUFDOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM3QixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQ3pCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCw4QkFBOEI7SUFDOUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUMzQixJQUFJLE9BQU8sSUFBSSxLQUFLLFVBQVUsRUFBRTtRQUM5QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsNEJBQTRCO0lBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO1FBQzVCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCx5REFBeUQ7SUFDekQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssRUFBRTtRQUNsRCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsNkJBQTZCO0lBQzdCLE9BQU8sSUFBSSxDQUFDO0FB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RTtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztLQUNqRTtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBkZWVwbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJztcbmltcG9ydCB7IGZsYWdPdmVycmlkZGVuRGVmYXVsdHMgfSBmcm9tICcuL292ZXJyaWRlLXdhcm5pbmctc2VydmljZSc7XG5pbXBvcnQgKiBhcyBsb2cgZnJvbSAnbnBtbG9nJztcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmZ1bmN0aW9uIGlzT2JqZWN0KHZhbDogb2JqZWN0KSB7XG4gIHJldHVybiB2YWwgIT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0J1xuICAgICAgICAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsKSA9PT0gJ1tvYmplY3QgT2JqZWN0XSc7XG59XG5cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qobzogb2JqZWN0KSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG8pID09PSB0cnVlKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoaXNPYmplY3QobykgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gSWYgaGFzIG1vZGlmaWVkIGNvbnN0cnVjdG9yXG4gIGNvbnN0IGN0b3IgPSBvLmNvbnN0cnVjdG9yO1xuICBpZiAodHlwZW9mIGN0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvLyBJZiBoYXMgbW9kaWZpZWQgcHJvdG90eXBlXG4gIGNvbnN0IHByb3QgPSBjdG9yLnByb3RvdHlwZTtcbiAgaWYgKGlzT2JqZWN0KHByb3QpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIElmIGNvbnN0cnVjdG9yIGRvZXMgbm90IGhhdmUgYW4gT2JqZWN0LXNwZWNpZmljIG1ldGhvZFxuICBpZiAocHJvdC5oYXNPd25Qcm9wZXJ0eSgnaXNQcm90b3R5cGVPZicpID09PSBmYWxzZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIE1vc3QgbGlrZWx5IGEgcGxhaW4gT2JqZWN0XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvdmVycmlkZVByb3BzKERlZmF1bHRQcm9wczogb2JqZWN0LCB1c2VyUHJvcHM6IG9iamVjdCwgY29uY2F0QXJyYXk6IGJvb2xlYW4gPSBmYWxzZSk6IGFueSB7XG4gIC8vIE5vdGlmeSB0aGUgdXNlciB2aWEgY29uc29sZSBvdXRwdXQgaWYgZGVmYXVsdHMgYXJlIG92ZXJyaWRkZW5cbiAgY29uc3Qgb3ZlcnJpZGVXYXJuaW5nc0VuYWJsZWQgPSAocHJvY2Vzcy5lbnYub3ZlcnJpZGVXYXJuaW5nc0VuYWJsZWQgIT09ICdmYWxzZScpO1xuICBpZiAob3ZlcnJpZGVXYXJuaW5nc0VuYWJsZWQpIHtcbiAgICBmbGFnT3ZlcnJpZGRlbkRlZmF1bHRzKERlZmF1bHRQcm9wcywgdXNlclByb3BzKTtcbiAgfVxuICAvLyBPdmVycmlkZSB0aGUgc2Vuc2libGUgZGVmYXVsdHMgd2l0aCB1c2VyIHByb3ZpZGVkIHByb3BzXG4gIGlmIChjb25jYXRBcnJheSkge1xuICAgIHJldHVybiBkZWVwbWVyZ2UoRGVmYXVsdFByb3BzLCB1c2VyUHJvcHMsIHtcbiAgICAgIGFycmF5TWVyZ2U6IChkZXN0aW5hdGlvbkFycmF5LCBzb3VyY2VBcnJheSkgPT4gIGRlc3RpbmF0aW9uQXJyYXkuY29uY2F0KHNvdXJjZUFycmF5KSxcbiAgICAgIGlzTWVyZ2VhYmxlT2JqZWN0OiBpc1BsYWluT2JqZWN0XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGRlZXBtZXJnZShEZWZhdWx0UHJvcHMsIHVzZXJQcm9wcywge1xuICAgICAgYXJyYXlNZXJnZTogKF9kZXN0aW5hdGlvbkFycmF5LCBzb3VyY2VBcnJheSkgPT4gc291cmNlQXJyYXksIC8vIHVuZGVyc2NvcmUgYWxsb3dzIGFyZyB0byBiZSBpZ25vcmVkXG4gICAgICBpc01lcmdlYWJsZU9iamVjdDogaXNQbGFpbk9iamVjdFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50V2FybmluZyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgLy8gU3R5bGUgdGhlIGxvZyBvdXRwdXRcbiAgbG9nLnByZWZpeFN0eWxlLmJvbGQgPSB0cnVlO1xuICBsb2cucHJlZml4U3R5bGUuZmcgPSAncmVkJztcbiAgbG9nLmVuYWJsZUNvbG9yKCk7XG4gIGxvZy53YXJuKCdBV1NfU09MVVRJT05TX0NPTlNUUlVDVFNfV0FSTklORzogJywgbWVzc2FnZSk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgcmVzb3VyY2UgbmFtZSBpbiB0aGUgc3R5bGUgb2YgdGhlIENESyAoc3RyaW5nK2hhc2gpIC0gdGhpcyB2YWx1ZSBzaG91bGQgYmUgdXNlZCBmb3IgbG9naWNhbCBJRHMsIGJ1dFxuICogbm90IFBoeXNpY2FsIE5hbWVzLCBhcyBpdCB3aWxsIG5vdCBiZSBzdGF0aWMgd2l0aGluIGEgc2luZ2xlIHN0YWNrIGluc3RhbmNlIGxpZmV0aW1lLCBvciBpdCB3aWxsIG5vdCBiZSBkaWZmZXJlbnQgaW5cbiAqIGRpZmZlcmVudCBzdGFjayBpbnN0YW5jZXNcbiAqIEBwYXJhbSB7c3RyaW5nW119IHBhcnRzIC0gdGhlIHZhcmlvdXMgc3RyaW5nIGNvbXBvbmVudHMgb2YgdGhlIG5hbWUgKGVnIC0gc3RhY2tOYW1lLCBzb2x1dGlvbnMgY29uc3RydWN0IElELCBMMiBjb25zdHJ1Y3QgSUQpXG4gKiBAcGFyYW0ge251bWJlcn0gbWF4TGVuZ3RoIC0gdGhlIGxvbmdlc3Qgc3RyaW5nIHRoYXQgY2FuIGJlIHJldHVybmVkXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIGEgc3RyaW5nIHdpdGggY29uY2F0ZW5hdGVkIHBhcnRzICh0cnVuY2F0ZWQgaWYgbmVjY2Vzc2FyeSkgKyBhIGhhc2ggb2YgdGhlIGZ1bGwgY29uY2F0ZW5hdGVkIHBhcnRzXG4gKlxuICogVGhpcyBpcyBiYXNlZCB1cG9uIHRoaXMgZGlzY3Vzc2lvbiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTQyNFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gIHBhcnRzOiBzdHJpbmdbXSxcbiAgbWF4TGVuZ3RoOiBudW1iZXIsXG4gIHJhbmRvbWl6ZTogYm9vbGVhbiA9IGZhbHNlXG4pOiBzdHJpbmcge1xuICBjb25zdCBoYXNoTGVuZ3RoID0gMTI7XG4gIGNvbnN0IHJhbmRvbWl6b3I6IHN0cmluZyA9IHJhbmRvbWl6ZSA/IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkudG9TdHJpbmcoKSA6IFwiXCI7XG5cbiAgY29uc3QgbWF4UGFydExlbmd0aCA9IE1hdGguZmxvb3IoIChtYXhMZW5ndGggLSAgaGFzaExlbmd0aCAtIHJhbmRvbWl6b3IubGVuZ3RoKSAvIHBhcnRzLmxlbmd0aCk7XG5cbiAgY29uc3Qgc2hhMjU2ID0gY3J5cHRvLmNyZWF0ZUhhc2goXCJzaGEyNTZcIik7XG4gIGxldCBmaW5hbE5hbWU6IHN0cmluZyA9ICcnO1xuXG4gIHBhcnRzLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICBzaGEyNTYudXBkYXRlKHBhcnQpO1xuICAgIGZpbmFsTmFtZSArPSByZW1vdmVOb25BbHBoYW51bWVyaWMocGFydC5zbGljZSgwLCBtYXhQYXJ0TGVuZ3RoKSk7XG4gIH0pO1xuXG4gIGNvbnN0IGhhc2ggPSBzaGEyNTYuZGlnZXN0KFwiaGV4XCIpLnNsaWNlKDAsIGhhc2hMZW5ndGgpO1xuICBmaW5hbE5hbWUgKz0gaGFzaDtcbiAgZmluYWxOYW1lICs9IHJhbmRvbWl6b3I7XG4gIHJldHVybiBmaW5hbE5hbWUudG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBwaHlzaWNhbCByZXNvdXJjZSBuYW1lIGluIHRoZSBzdHlsZSBvZiB0aGUgQ0RLIChzdHJpbmcraGFzaCkgLSB0aGlzIHZhbHVlIGluY29ycG9yYXRlcyBTdGFjayBJRCxcbiAqIHNvIGl0IHdpbGwgcmVtYWluIHN0YXRpYyBpbiBtdWx0aXBsZSB1cGRhdGVzIG9mIGEgc2luZ2xlIHN0YWNrLCBidXQgd2lsbCBiZSBkaWZmZXJlbnQgaW4gYSBzZXBhcmF0ZSBzdGFjayBpbnN0YW5jZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gcGFydHMgLSB0aGUgdmFyaW91cyBzdHJpbmcgY29tcG9uZW50cyBvZiB0aGUgbmFtZSAoZWcgLSBzdGFja05hbWUsIHNvbHV0aW9ucyBjb25zdHJ1Y3QgSUQsIEwyIGNvbnN0cnVjdCBJRClcbiAqIEBwYXJhbSB7bnVtYmVyfSBtYXhMZW5ndGggLSB0aGUgbG9uZ2VzdCBzdHJpbmcgdGhhdCBjYW4gYmUgcmV0dXJuZWRcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gYSBzdHJpbmcgd2l0aCBjb25jYXRlbmF0ZWQgcGFydHMgKHRydW5jYXRlZCBpZiBuZWNjZXNzYXJ5KSArIGEgaGFzaCBvZiB0aGUgZnVsbCBjb25jYXRlbmF0ZWQgcGFydHNcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBoeXNpY2FsTmFtZShcbiAgcHJlZml4OiBzdHJpbmcsXG4gIHBhcnRzOiBzdHJpbmdbXSxcbiAgbWF4TGVuZ3RoOiBudW1iZXIsXG4pOiBzdHJpbmcge1xuICAvLyBUaGUgcmVzdWx0IHdpbGwgY29uc2lzdCBvZjpcbiAgLy8gICAgLVRoZSBwcmVmaXggLSB1bmFsdGVyZWRcbiAgLy8gICAgLVRoZSBwYXJ0cyBjb25jYXRlbmF0ZWQsIGJ1dCByZWR1Y2VkIGluIHNpemUgdG8gbWVldCB0aGUgbWF4TGVuZ3RoIGxpbWl0IGZvciB0aGUgb3ZlcmFsbCBuYW1lXG4gIC8vICAgIC1BIGh5cGhlbiBkZWxpbWl0ZXJcbiAgLy8gICAgLVRoZSBHVUlEIHBvcnRpb24gb2YgdGhlIHN0YWNrIGFyblxuXG4gIGNvbnN0IHN0YWNrSWRHdWlkTGVuZ3RoID0gMzY7XG4gIGNvbnN0IHByZWZpeExlbmd0aCA9IHByZWZpeC5sZW5ndGg7XG4gIGNvbnN0IG1heFBhcnRzTGVuZ3RoID0gbWF4TGVuZ3RoIC0gcHJlZml4TGVuZ3RoIC0gMSAtIHN0YWNrSWRHdWlkTGVuZ3RoOyAvLyAxIGlzIHRoZSBoeXBoZW5cblxuICAvLyBFeHRyYWN0IHRoZSBTdGFjayBJRCBHdWlkXG4gIGNvbnN0IHVuaXF1ZVN0YWNrSWRQYXJ0ID0gY2RrLkZuLnNlbGVjdCgyLCBjZGsuRm4uc3BsaXQoJy8nLCBgJHtjZGsuQXdzLlNUQUNLX0lEfWApKTtcblxuICBsZXQgYWxsUGFydHM6IHN0cmluZyA9ICcnO1xuXG4gIHBhcnRzLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICBhbGxQYXJ0cyArPSBwYXJ0O1xuICB9KTtcblxuICBpZiAoYWxsUGFydHMubGVuZ3RoID4gbWF4UGFydHNMZW5ndGgpIHtcbiAgICBjb25zdCBzdWJTdHJpbmdMZW5ndGggPSBtYXhQYXJ0c0xlbmd0aCAvIDI7XG4gICAgYWxsUGFydHMgPSBhbGxQYXJ0cy5zdWJzdHJpbmcoMCwgc3ViU3RyaW5nTGVuZ3RoKSArIGFsbFBhcnRzLnN1YnN0cmluZyhhbGxQYXJ0cy5sZW5ndGggLSBzdWJTdHJpbmdMZW5ndGgpO1xuICB9XG5cbiAgY29uc3QgZmluYWxOYW1lICA9IHByZWZpeC50b0xvd2VyQ2FzZSgpICsgYWxsUGFydHMgKyAnLScgKyB1bmlxdWVTdGFja0lkUGFydDtcbiAgcmV0dXJuIGZpbmFsTmFtZTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGFsbCBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgaW4gYSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZU5vbkFscGhhbnVtZXJpYyhzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHMucmVwbGFjZSgvW15BLVphLXowLTldL2csICcnKTtcbn1cblxuLyoqXG4gKiBUaGUgQ0ZOIE5BRyBzdXBwcmVzcyBydWxlIGludGVyZmFjZVxuICogQGludGVyZmFjZSBDZm5OYWdTdXBwcmVzc1J1bGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZm5OYWdTdXBwcmVzc1J1bGUge1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSByZWFzb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIEFkZHMgQ0ZOIE5BRyBzdXBwcmVzcyBydWxlcyB0byB0aGUgQ0RLIHJlc291cmNlLlxuICogQHBhcmFtIHJlc291cmNlIFRoZSBDREsgcmVzb3VyY2VcbiAqIEBwYXJhbSBydWxlcyBUaGUgQ0ZOIE5BRyBzdXBwcmVzcyBydWxlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkQ2ZuU3VwcHJlc3NSdWxlcyhyZXNvdXJjZTogY2RrLlJlc291cmNlIHwgY2RrLkNmblJlc291cmNlLCBydWxlczogQ2ZuTmFnU3VwcHJlc3NSdWxlW10pIHtcbiAgaWYgKHJlc291cmNlIGluc3RhbmNlb2YgY2RrLlJlc291cmNlKSB7XG4gICAgcmVzb3VyY2UgPSByZXNvdXJjZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBjZGsuQ2ZuUmVzb3VyY2U7XG4gIH1cblxuICBpZiAocmVzb3VyY2UuY2ZuT3B0aW9ucy5tZXRhZGF0YT8uY2ZuX25hZz8ucnVsZXNfdG9fc3VwcHJlc3MpIHtcbiAgICByZXNvdXJjZS5jZm5PcHRpb25zLm1ldGFkYXRhPy5jZm5fbmFnLnJ1bGVzX3RvX3N1cHByZXNzLnB1c2goLi4ucnVsZXMpO1xuICB9IGVsc2Uge1xuICAgIHJlc291cmNlLmFkZE1ldGFkYXRhKCdjZm5fbmFnJywge1xuICAgICAgcnVsZXNfdG9fc3VwcHJlc3M6IHJ1bGVzXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIENyZWF0ZXMgdGhlIHByb3BzIHRvIGJlIHVzZWQgdG8gaW5zdGFudGlhdGUgYSBDREsgTDIgY29uc3RydWN0IHdpdGhpbiBhIFNvbHV0aW9ucyBDb25zdHJ1Y3RcbiAqXG4gKiBAcGFyYW0gZGVmYXVsdFByb3BzIFRoZSBkZWZhdWx0IHByb3BzIHRvIGJlIHVzZWQgYnkgdGhlIGNvbnN0cnVjdFxuICogQHBhcmFtIGNsaWVudFByb3BzIE9wdGlvbmFsIHByb3BlcnRpZXMgcGFzc2VkIGluIGZyb20gdGhlIGNsaWVudCBpbiB0aGUgcHJvcHMgb2JqZWN0XG4gKiBAcGFyYW0gY29uc3RydWN0UHJvcHMgT3B0aW9uYWwgcHJvcGVydGllcyByZXF1aXJlZCBieSB0aGUgY29uc3RydWN0IGZvciB0aGUgY29uc3RydWN0IHRvIHdvcmsgKG92ZXJyaWRlIGFueSBvdGhlciB2YWx1ZXMpXG4gKiBAcmV0dXJucyBUaGUgcHJvcGVydGllcyB0byB1c2UgLSBhbGwgdmFsdWVzIHByaW9yaXRpemVkOlxuICogIDEpIGNvbnN0cnVjdFByb3BzIHZhbHVlXG4gKiAgMikgY2xpZW50UHJvcHMgdmFsdWVcbiAqICAzKSBkZWZhdWx0UHJvcHMgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdFByb3BzOiBvYmplY3QsIGNsaWVudFByb3BzPzogb2JqZWN0LCBjb25zdHJ1Y3RQcm9wcz86IG9iamVjdCwgY29uY2F0QXJyYXk6IGJvb2xlYW4gPSBmYWxzZSk6IGFueSB7XG4gIGxldCByZXN1bHQ6IG9iamVjdCA9IGRlZmF1bHRQcm9wcztcblxuICBpZiAoY2xpZW50UHJvcHMpIHtcbiAgICByZXN1bHQgPSBvdmVycmlkZVByb3BzKHJlc3VsdCwgY2xpZW50UHJvcHMsIGNvbmNhdEFycmF5KTtcbiAgfVxuXG4gIGlmIChjb25zdHJ1Y3RQcm9wcykge1xuICAgIHJlc3VsdCA9IG92ZXJyaWRlUHJvcHMocmVzdWx0LCBjb25zdHJ1Y3RQcm9wcywgY29uY2F0QXJyYXkpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIEdlbmVyYXRlcyBhIG5hbWUgdW5pcXVlIHRvIHRoaXMgbG9jYXRpb24gaW4gdGhpcyBzdGFjayB3aXRoIHRoaXMgc3RhY2tuYW1lLiBUcnVuY2F0ZXMgdG8gdW5kZXIgNjQgY2hhcmFjdGVycyBpZiBuZWVkZWQuXG4gKiAod2lsbCBhbGxvdyAyIGNvcGllcyBvZiB0aGUgc3RhY2sgd2l0aCBkaWZmZXJlbnQgc3RhY2sgbmFtZXMsIGJ1dCB3aWxsIGNvbGxpZGUgaWYgYm90aCBzdGFja3MgaGF2ZSB0aGUgc2FtZSBuYW1lKVxuICpcbiAqIEBwYXJhbSBzY29wZSB0aGUgY29uc3RydWN0IHdpdGhpbiB0byBjcmVhdGUgdGhlIG5hbWVcbiAqIEBwYXJhbSByZXNvdXJjZUlkIGFuIGlkIGZvciB0aGUgY29uc3RydWN0IGFib3V0IHRvIGJlIGNyZWF0ZWQgdW5kZXIgc2NvcGUgKGVtcHR5IHN0cmluZyBpZiBuYW1lIGlzIGZvciBzY29lcClcbiAqIEByZXR1cm5zIGEgdW5pcXVlIG5hbWVcbiAqXG4gKiBOb3RlOiBUaGlzIGFwcGVhcnMgdG8gb3ZlcmxhcCB3aXRoIEdlbmVyYXRlUmVzb3VyY2VOYW1lIGFib3ZlIChJIHdyb3RlIGl0IGJlZm9yZSBub3RpY2luZyB0aGF0XG4gKiBmdW5jdGlvbikuIEFzIHRoaXMgb2ZmbG9hZHMgdGhlIGxvZ2ljIHRvIHRoZSBDREssIEknbSBsZWF2aW5nIHRoaXMgaGVyZSBidXQgc29tZW9uZSBtYXkgd2FudCB0b1xuICogYmxlbmQgdGhlc2Ugcm91dGluZXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlTmFtZShzY29wZTogQ29uc3RydWN0LCByZXNvdXJjZUlkOiBzdHJpbmcgPSBcIlwiKTogc3RyaW5nIHtcbiAgY29uc3QgbmFtZSA9IHJlc291cmNlSWQgKyBjZGsuTmFtZXMudW5pcXVlSWQoc2NvcGUpO1xuICBpZiAobmFtZS5sZW5ndGggPiA2NCkge1xuICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygwLCAzMikgKyBuYW1lLnN1YnN0cmluZyhuYW1lLmxlbmd0aCAtIDMyKTtcbiAgfVxuICByZXR1cm4gbmFtZTtcbn1cbiJdfQ==
package/lib/vpc-helper.js CHANGED
@@ -142,7 +142,8 @@ function AddAwsServiceEndpoint(scope, vpc, interfaceTag) {
142
142
  if (service.endpointType === EndpointTypes.INTERFACE) {
143
143
  AddInterfaceEndpoint(scope, vpc, service, interfaceTag);
144
144
  }
145
- return;
145
+ // ESLint requires this return statement, so disabling SonarQube warning
146
+ return; // NOSONAR
146
147
  }
147
148
  exports.AddAwsServiceEndpoint = AddAwsServiceEndpoint;
148
149
  function CheckIfEndpointAlreadyExists(vpc, interfaceTag) {
@@ -206,4 +207,4 @@ function retrievePrivateSubnetIds(vpc) {
206
207
  return vpc.selectSubnets(subnetSelector).subnetIds;
207
208
  }
208
209
  exports.retrievePrivateSubnetIds = retrievePrivateSubnetIds;
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZwYy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFFSDs7O0dBR0c7QUFFSCwyQ0FBMkM7QUFHM0MsbUVBQTZEO0FBQzdELG1DQUFnRTtBQXNCaEU7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsS0FBZ0IsRUFBRSxLQUFvQjtJQUM3RCxJQUFJLEtBQUssRUFBRSxXQUFXLEVBQUU7UUFDdEIsT0FBTyxLQUFLLEVBQUUsV0FBVyxDQUFDO0tBQzNCO0lBRUQsSUFBSSxlQUFlLEdBQWlCLEtBQUssRUFBRSxlQUFlLENBQUM7SUFFM0QsZUFBZSxHQUFHLHdCQUFnQixDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRW5HLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXZELGdHQUFnRztJQUNoRyxNQUFNLE9BQU8sR0FBZ0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV2RCwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV0QyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFsQkQsNEJBa0JDO0FBRUQsSUFBWSxvQkFjWDtBQWRELFdBQVksb0JBQW9CO0lBQzlCLHdDQUFnQixDQUFBO0lBQ2hCLG1DQUFXLENBQUE7SUFDWCxtQ0FBVyxDQUFBO0lBQ1gsaUNBQVMsQ0FBQTtJQUNULHlEQUFpQyxDQUFBO0lBQ2pDLCtEQUF1QyxDQUFBO0lBQ3ZDLDJEQUFtQyxDQUFBO0lBQ25DLG1DQUFXLENBQUE7SUFDWCwyQ0FBbUIsQ0FBQTtJQUNuQiwyQ0FBbUIsQ0FBQTtJQUNuQixvREFBNEIs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LE9BQU8sRUFBRSxPQUFPLENBQUMsc0JBQTBEO0tBQzVFLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLEdBQWE7SUFDcEQsSUFBSSxnQkFBZ0IsQ0FBQztJQUVyQixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1FBQzlCLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7S0FDcEQ7U0FBTSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1FBQ3BDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUM7S0FDdkQ7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztLQUM1RTtJQUVELE1BQU0sY0FBYyxHQUFHO1FBQ3JCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsVUFBVSxFQUFFLGdCQUFnQjtLQUM3QixDQUFDO0lBRUYsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNyRCxDQUFDO0FBakJELDREQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDZm5Mb2dHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGJ1aWxkU2VjdXJpdHlHcm91cCB9IGZyb20gXCIuL3NlY3VyaXR5LWdyb3VwLWhlbHBlclwiO1xuaW1wb3J0IHsgY29uc29saWRhdGVQcm9wcywgYWRkQ2ZuU3VwcHJlc3NSdWxlcyB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRWcGNQcm9wcyB7XG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBhIFZQQywgaWYgdGhpcyBpcyBzZXQgdGhlbiB0aGUgYWxsIFByb3BzIGFyZSBpZ25vcmVkXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1ZwYz86IGVjMi5JVnBjO1xuICAvKipcbiAgICogT25lIG9mIHRoZSBkZWZhdWx0IFZQQyBjb25maWd1cmF0aW9ucyBhdmFpbGFibGUgaW4gdnBjLWRlZmF1bHRzXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VnBjUHJvcHM6IGVjMi5WcGNQcm9wcztcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBWUEMuXG4gICAqL1xuICByZWFkb25seSB1c2VyVnBjUHJvcHM/OiBlYzIuVnBjUHJvcHM7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Qgc3BlY2lmaWVkIHByb3BzIHRoYXQgb3ZlcnJpZGUgYm90aCB0aGUgZGVmYXVsdCBwcm9wc1xuICAgKiBhbmQgdXNlciBwcm9wcyBmb3IgdGhlIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZwY1Byb3BzPzogZWMyLlZwY1Byb3BzO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFZwYyhzY29wZTogQ29uc3RydWN0LCBwcm9wczogQnVpbGRWcGNQcm9wcyk6IGVjMi5JVnBjIHtcbiAgaWYgKHByb3BzPy5leGlzdGluZ1ZwYykge1xuICAgIHJldHVybiBwcm9wcz8uZXhpc3RpbmdWcGM7XG4gIH1cblxuICBsZXQgY3VtdWxhdGl2ZVByb3BzOiBlYzIuVnBjUHJvcHMgPSBwcm9wcz8uZGVmYXVsdFZwY1Byb3BzO1xuXG4gIGN1bXVsYXRpdmVQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoY3VtdWxhdGl2ZVByb3BzLCBwcm9wcz8udXNlclZwY1Byb3BzLCBwcm9wcz8uY29uc3RydWN0VnBjUHJvcHMpO1xuXG4gIGNvbnN0IHZwYyA9IG5ldyBlYzIuVnBjKHNjb3BlLCBcIlZwY1wiLCBjdW11bGF0aXZlUHJvcHMpO1xuXG4gIC8vIEFkZCBWUEMgRmxvd0xvZ3Mgd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5nIG9mIHRyYWZmaWNUeXBlOkFMTCBhbmQgZGVzdGluYXRpb246IENsb3VkV2F0Y2ggTG9nc1xuICBjb25zdCBmbG93TG9nOiBlYzIuRmxvd0xvZyA9IHZwYy5hZGRGbG93TG9nKFwiRmxvd0xvZ1wiKTtcblxuICBTdXBwcmVzc01hcFB1YmxpY0lwV2FybmluZ3ModnBjKTtcbiAgU3VwcHJlc3NFbmNyeXB0ZWRMb2dXYXJuaW5ncyhmbG93TG9nKTtcblxuICByZXR1cm4gdnBjO1xufVxuXG5leHBvcnQgZW51bSBTZXJ2aWNlRW5kcG9pbnRUeXBlcyB7XG4gIERZTkFNT0RCID0gXCJEREJcIixcbiAgU05TID0gXCJTTlNcIixcbiAgU1FTID0gXCJTUVNcIixcbiAgUzMgPSBcIlMzXCIsXG4gIFNURVBfRlVOQ1RJT05TID0gXCJTVEVQX0ZVTkNUSU9OU1wiLFxuICBTQUdFTUFLRVJfUlVOVElNRSA9IFwiU0FHRU1BS0VSX1JVTlRJTUVcIixcbiAgU0VDUkVUU19NQU5BR0VSID0gXCJTRUNSRVRTX01BTkFHRVJcIixcbiAgU1NNID0gXCJTU01cIixcbiAgRUNSX0FQSSA9IFwiRUNSX0FQSVwiLFxuICBFQ1JfREtSID0gXCJFQ1JfREtSXCIsXG4gIEVWRU5UUyA9IFwiQ0xPVURXQVRDSF9FVkVOVFNcIixcbiAgS0lORVNJU19GSVJFSE9TRSA9IFwiS0lORVNJU19GSVJFSE9TRVwiLFxuICBLSU5FU0lTX1NUUkVBTVMgPSBcIktJTkVTSVNfU1RSRUFNU1wiXG59XG5cbmVudW0gRW5kcG9pbnRUeXBlcyB7XG4gIEdBVEVXQVkgPSBcIkdhdGV3YXlcIixcbiAgSU5URVJGQUNFID0gXCJJbnRlcmZhY2VcIixcbn1cblxuaW50ZXJmYWNlIEVuZHBvaW50RGVmaW5pdGlvbiB7XG4gIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXM7XG4gIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcztcbiAgZW5kcG9pbnRHYXRld2F5U2VydmljZT86IGVjMi5HYXRld2F5VnBjRW5kcG9pbnRBd3NTZXJ2aWNlO1xuICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U/OiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlO1xufVxuXG5jb25zdCBlbmRwb2ludFNldHRpbmdzOiBFbmRwb2ludERlZmluaXRpb25bXSA9IFtcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuRFlOQU1PREIsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLkdBVEVXQVksXG4gICAgZW5kcG9pbnRHYXRld2F5U2VydmljZTogZWMyLkdhdGV3YXlWcGNFbmRwb2ludEF3c1NlcnZpY2UuRFlOQU1PREIsXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLlMzLFxuICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcy5HQVRFV0FZLFxuICAgIGVuZHBvaW50R2F0ZXdheVNlcnZpY2U6IGVjMi5HYXRld2F5VnBjRW5kcG9pbnRBd3NTZXJ2aWNlLlMzLFxuICB9LFxuICB7XG4gICAgZW5kcG9pbnROYW1lOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcy5TVEVQX0ZVTkNUSU9OUyxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5TVEVQX0ZVTkNUSU9OUyxcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuU05TLFxuICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcy5JTlRFUkZBQ0UsXG4gICAgZW5kcG9pbnRJbnRlcmZhY2VTZXJ2aWNlOiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLlNOUyxcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuU1FTLFxuICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcy5JTlRFUkZBQ0UsXG4gICAgZW5kcG9pbnRJbnRlcmZhY2VTZXJ2aWNlOiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLlNRUyxcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuU0FHRU1BS0VSX1JVTlRJTUUsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuU0FHRU1BS0VSX1JVTlRJTUUsXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLlNFQ1JFVFNfTUFOQUdFUixcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5TRUNSRVRTX01BTkFHRVIsXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLlNTTSxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5TU00sXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLkVDUl9BUEksXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuRUNSXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLkVDUl9ES1IsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuRUNSX0RPQ0tFUlxuICB9LFxuICB7XG4gICAgZW5kcG9pbnROYW1lOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcy5FVkVOVFMsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuQ0xPVURXQVRDSF9FVkVOVFNcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuS0lORVNJU19GSVJFSE9TRSxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5LSU5FU0lTX0ZJUkVIT1NFXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLktJTkVTSVNfU1RSRUFNUyxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5LSU5FU0lTX1NUUkVBTVNcbiAgfVxuXTtcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQWRkQXdzU2VydmljZUVuZHBvaW50KFxuICBzY29wZTogQ29uc3RydWN0LFxuICB2cGM6IGVjMi5JVnBjLFxuICBpbnRlcmZhY2VUYWc6IFNlcnZpY2VFbmRwb2ludFR5cGVzXG4pIHtcbiAgaWYgKENoZWNrSWZFbmRwb2ludEFscmVhZHlFeGlzdHModnBjLCBpbnRlcmZhY2VUYWcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc2VydmljZSA9IGVuZHBvaW50U2V0dGluZ3MuZmluZChcbiAgICAoZW5kcG9pbnQpID0+IGVuZHBvaW50LmVuZHBvaW50TmFtZSA9PT0gaW50ZXJmYWNlVGFnXG4gICk7XG5cbiAgaWYgKCFzZXJ2aWNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgU2VydmljZSBzZW50IHRvIEFkZFNlcnZpY2VFbmRwb2ludFwiKTtcbiAgfVxuXG4gIGlmIChzZXJ2aWNlLmVuZHBvaW50VHlwZSA9PT0gRW5kcG9pbnRUeXBlcy5HQVRFV0FZKSB7XG4gICAgQWRkR2F0ZXdheUVuZHBvaW50KHZwYywgc2VydmljZSwgaW50ZXJmYWNlVGFnKTtcbiAgfVxuICBpZiAoc2VydmljZS5lbmRwb2ludFR5cGUgPT09IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFKSB7XG4gICAgQWRkSW50ZXJmYWNlRW5kcG9pbnQoc2NvcGUsIHZwYywgc2VydmljZSwgaW50ZXJmYWNlVGFnKTtcbiAgfVxuXG4gIHJldHVybjtcbn1cblxuZnVuY3Rpb24gQ2hlY2tJZkVuZHBvaW50QWxyZWFkeUV4aXN0cyh2cGM6IGVjMi5JVnBjLCBpbnRlcmZhY2VUYWc6IFNlcnZpY2VFbmRwb2ludFR5cGVzKTogYm9vbGVhbiB7XG4gIHJldHVybiB2cGMubm9kZS5jaGlsZHJlbi5zb21lKChjaGlsZCkgPT4gY2hpbGQubm9kZS5pZCA9PT0gaW50ZXJmYWNlVGFnKTtcbn1cblxuZnVuY3Rpb24gU3VwcHJlc3NNYXBQdWJsaWNJcFdhcm5pbmdzKHZwYzogZWMyLlZwYykge1xuICAvLyBBZGQgQ2ZuIE5hZyBzdXBwcmVzc2lvbiBmb3IgUFVCTElDIHN1Ym5ldHMgdG8gc3VwcHJlc3MgV0FSTiBXMzM6IEVDMiBTdWJuZXQgc2hvdWxkIG5vdCBoYXZlIE1hcFB1YmxpY0lwT25MYXVuY2ggc2V0IHRvIHRydWVcbiAgdnBjLnB1YmxpY1N1Ym5ldHMuZm9yRWFjaCgoc3VibmV0KSA9PiB7XG4gICAgY29uc3QgY2ZuU3VibmV0ID0gc3VibmV0Lm5vZGUuZGVmYXVsdENoaWxkIGFzIGVjMi5DZm5TdWJuZXQ7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhjZm5TdWJuZXQsIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdXMzMnLFxuICAgICAgICByZWFzb246ICdBbGxvdyBQdWJsaWMgU3VibmV0cyB0byBoYXZlIE1hcFB1YmxpY0lwT25MYXVuY2ggc2V0IHRvIHRydWUnXG4gICAgICB9XG4gICAgXSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBTdXBwcmVzc0VuY3J5cHRlZExvZ1dhcm5pbmdzKGZsb3dMb2c6IGVjMi5GbG93TG9nKSB7XG4gIC8vIEFkZCBDZm4gTmFnIHN1cHByZXNzaW9uIGZvciBDbG91ZFdhdGNoTG9ncyBMb2dHcm91cHMgZGF0YSBpcyBlbmNyeXB0ZWRcbiAgY29uc3QgY2ZuTG9nR3JvdXA6IENmbkxvZ0dyb3VwID0gZmxvd0xvZy5sb2dHcm91cD8ubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuTG9nR3JvdXA7XG4gIGFkZENmblN1cHByZXNzUnVsZXMoY2ZuTG9nR3JvdXAsIFtcbiAgICB7XG4gICAgICBpZDogJ1c4NCcsXG4gICAgICByZWFzb246ICdCeSBkZWZhdWx0IENsb3VkV2F0Y2hMb2dzIExvZ0dyb3VwcyBkYXRhIGlzIGVuY3J5cHRlZCB1c2luZyB0aGUgQ2xvdWRXYXRjaCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGtleXMgKEFXUyBNYW5hZ2VkIEtleXMpJ1xuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIEFkZEludGVyZmFjZUVuZHBvaW50KHNjb3BlOiBDb25zdHJ1Y3QsIHZwYzogZWMyLklWcGMsIHNlcnZpY2U6IEVuZHBvaW50RGVmaW5pdGlvbiwgaW50ZXJmYWNlVGFnOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcykge1xuICBjb25zdCBlbmRwb2ludERlZmF1bHRTZWN1cml0eUdyb3VwID0gYnVpbGRTZWN1cml0eUdyb3VwKFxuICAgIHNjb3BlLFxuICAgIGAke3Njb3BlLm5vZGUuaWR9LSR7c2VydmljZS5lbmRwb2ludE5hbWV9YCxcbiAgICB7XG4gICAgICB2cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0sXG4gICAgW3sgcGVlcjogZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY29ubmVjdGlvbjogZWMyLlBvcnQudGNwKDQ0MykgfV0sXG4gICAgW11cbiAgKTtcblxuICB2cGMuYWRkSW50ZXJmYWNlRW5kcG9pbnQoaW50ZXJmYWNlVGFnLCB7XG4gICAgc2VydmljZTogc2VydmljZS5lbmRwb2ludEludGVyZmFjZVNlcnZpY2UgYXMgZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZSxcbiAgICBzZWN1cml0eUdyb3VwczogW2VuZHBvaW50RGVmYXVsdFNlY3VyaXR5R3JvdXBdLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gQWRkR2F0ZXdheUVuZHBvaW50KHZwYzogZWMyLklWcGMsIHNlcnZpY2U6IEVuZHBvaW50RGVmaW5pdGlvbiwgaW50ZXJmYWNlVGFnOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcykge1xuICB2cGMuYWRkR2F0ZXdheUVuZHBvaW50KGludGVyZmFjZVRhZywge1xuICAgIHNlcnZpY2U6IHNlcnZpY2UuZW5kcG9pbnRHYXRld2F5U2VydmljZSBhcyBlYzIuR2F0ZXdheVZwY0VuZHBvaW50QXdzU2VydmljZSxcbiAgfSk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldHJpZXZlUHJpdmF0ZVN1Ym5ldElkcyh2cGM6IGVjMi5JVnBjKSB7XG4gIGxldCB0YXJnZXRTdWJuZXRUeXBlO1xuXG4gIGlmICh2cGMuaXNvbGF0ZWRTdWJuZXRzLmxlbmd0aCkge1xuICAgIHRhcmdldFN1Ym5ldFR5cGUgPSBlYzIuU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVEO1xuICB9IGVsc2UgaWYgKHZwYy5wcml2YXRlU3VibmV0cy5sZW5ndGgpIHtcbiAgICB0YXJnZXRTdWJuZXRUeXBlID0gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUztcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIC0gTm8gaXNvbGF0ZWQgb3IgcHJpdmF0ZSBzdWJuZXRzIGF2YWlsYWJsZSBpbiBWUEMnKTtcbiAgfVxuXG4gIGNvbnN0IHN1Ym5ldFNlbGVjdG9yID0ge1xuICAgIG9uZVBlckF6OiB0cnVlLFxuICAgIHN1Ym5ldFR5cGU6IHRhcmdldFN1Ym5ldFR5cGVcbiAgfTtcblxuICByZXR1cm4gdnBjLnNlbGVjdFN1Ym5ldHMoc3VibmV0U2VsZWN0b3IpLnN1Ym5ldElkcztcbn0iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnBjLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInZwYy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFFSDs7O0dBR0c7QUFFSCwyQ0FBMkM7QUFHM0MsbUVBQTZEO0FBQzdELG1DQUFnRTtBQXNCaEU7O0dBRUc7QUFDSCxTQUFnQixRQUFRLENBQUMsS0FBZ0IsRUFBRSxLQUFvQjtJQUM3RCxJQUFJLEtBQUssRUFBRSxXQUFXLEVBQUU7UUFDdEIsT0FBTyxLQUFLLEVBQUUsV0FBVyxDQUFDO0tBQzNCO0lBRUQsSUFBSSxlQUFlLEdBQWlCLEtBQUssRUFBRSxlQUFlLENBQUM7SUFFM0QsZUFBZSxHQUFHLHdCQUFnQixDQUFDLGVBQWUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRW5HLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXZELGdHQUFnRztJQUNoRyxNQUFNLE9BQU8sR0FBZ0IsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV2RCwyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV0QyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFsQkQsNEJBa0JDO0FBRUQsSUFBWSxvQkFjWDtBQWRELFdBQVksb0JBQW9CO0lBQzlCLHdDQUFnQixDQUFBO0lBQ2hCLG1DQUFXLENBQUE7SUFDWCxtQ0FBVyxDQUFBO0lBQ1gsaUNBQVMsQ0FBQTtJQUNULHlEQUFpQyxDQUFBO0lBQ2pDLCtEQUF1QyxDQUFBO0lBQ3ZDLDJEQUFtQyxDQUFBO0lBQ25DLG1DQUFXLENBQUE7SUFDWCwyQ0FBbUIsQ0FBQTtJQUNuQiwyQ0FBbUIsQ0FBQTtJQUNuQixvREFBNEIs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QWtCLENBQUMsWUFBWSxFQUFFO1FBQ25DLE9BQU8sRUFBRSxPQUFPLENBQUMsc0JBQTBEO0tBQzVFLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLEdBQWE7SUFDcEQsSUFBSSxnQkFBZ0IsQ0FBQztJQUVyQixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1FBQzlCLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7S0FDcEQ7U0FBTSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1FBQ3BDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUM7S0FDdkQ7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztLQUM1RTtJQUVELE1BQU0sY0FBYyxHQUFHO1FBQ3JCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsVUFBVSxFQUFFLGdCQUFnQjtLQUM3QixDQUFDO0lBRUYsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNyRCxDQUFDO0FBakJELDREQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDZm5Mb2dHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGJ1aWxkU2VjdXJpdHlHcm91cCB9IGZyb20gXCIuL3NlY3VyaXR5LWdyb3VwLWhlbHBlclwiO1xuaW1wb3J0IHsgY29uc29saWRhdGVQcm9wcywgYWRkQ2ZuU3VwcHJlc3NSdWxlcyB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRWcGNQcm9wcyB7XG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBhIFZQQywgaWYgdGhpcyBpcyBzZXQgdGhlbiB0aGUgYWxsIFByb3BzIGFyZSBpZ25vcmVkXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1ZwYz86IGVjMi5JVnBjO1xuICAvKipcbiAgICogT25lIG9mIHRoZSBkZWZhdWx0IFZQQyBjb25maWd1cmF0aW9ucyBhdmFpbGFibGUgaW4gdnBjLWRlZmF1bHRzXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0VnBjUHJvcHM6IGVjMi5WcGNQcm9wcztcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBWUEMuXG4gICAqL1xuICByZWFkb25seSB1c2VyVnBjUHJvcHM/OiBlYzIuVnBjUHJvcHM7XG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Qgc3BlY2lmaWVkIHByb3BzIHRoYXQgb3ZlcnJpZGUgYm90aCB0aGUgZGVmYXVsdCBwcm9wc1xuICAgKiBhbmQgdXNlciBwcm9wcyBmb3IgdGhlIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZwY1Byb3BzPzogZWMyLlZwY1Byb3BzO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFZwYyhzY29wZTogQ29uc3RydWN0LCBwcm9wczogQnVpbGRWcGNQcm9wcyk6IGVjMi5JVnBjIHtcbiAgaWYgKHByb3BzPy5leGlzdGluZ1ZwYykge1xuICAgIHJldHVybiBwcm9wcz8uZXhpc3RpbmdWcGM7XG4gIH1cblxuICBsZXQgY3VtdWxhdGl2ZVByb3BzOiBlYzIuVnBjUHJvcHMgPSBwcm9wcz8uZGVmYXVsdFZwY1Byb3BzO1xuXG4gIGN1bXVsYXRpdmVQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoY3VtdWxhdGl2ZVByb3BzLCBwcm9wcz8udXNlclZwY1Byb3BzLCBwcm9wcz8uY29uc3RydWN0VnBjUHJvcHMpO1xuXG4gIGNvbnN0IHZwYyA9IG5ldyBlYzIuVnBjKHNjb3BlLCBcIlZwY1wiLCBjdW11bGF0aXZlUHJvcHMpO1xuXG4gIC8vIEFkZCBWUEMgRmxvd0xvZ3Mgd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5nIG9mIHRyYWZmaWNUeXBlOkFMTCBhbmQgZGVzdGluYXRpb246IENsb3VkV2F0Y2ggTG9nc1xuICBjb25zdCBmbG93TG9nOiBlYzIuRmxvd0xvZyA9IHZwYy5hZGRGbG93TG9nKFwiRmxvd0xvZ1wiKTtcblxuICBTdXBwcmVzc01hcFB1YmxpY0lwV2FybmluZ3ModnBjKTtcbiAgU3VwcHJlc3NFbmNyeXB0ZWRMb2dXYXJuaW5ncyhmbG93TG9nKTtcblxuICByZXR1cm4gdnBjO1xufVxuXG5leHBvcnQgZW51bSBTZXJ2aWNlRW5kcG9pbnRUeXBlcyB7XG4gIERZTkFNT0RCID0gXCJEREJcIixcbiAgU05TID0gXCJTTlNcIixcbiAgU1FTID0gXCJTUVNcIixcbiAgUzMgPSBcIlMzXCIsXG4gIFNURVBfRlVOQ1RJT05TID0gXCJTVEVQX0ZVTkNUSU9OU1wiLFxuICBTQUdFTUFLRVJfUlVOVElNRSA9IFwiU0FHRU1BS0VSX1JVTlRJTUVcIixcbiAgU0VDUkVUU19NQU5BR0VSID0gXCJTRUNSRVRTX01BTkFHRVJcIixcbiAgU1NNID0gXCJTU01cIixcbiAgRUNSX0FQSSA9IFwiRUNSX0FQSVwiLFxuICBFQ1JfREtSID0gXCJFQ1JfREtSXCIsXG4gIEVWRU5UUyA9IFwiQ0xPVURXQVRDSF9FVkVOVFNcIixcbiAgS0lORVNJU19GSVJFSE9TRSA9IFwiS0lORVNJU19GSVJFSE9TRVwiLFxuICBLSU5FU0lTX1NUUkVBTVMgPSBcIktJTkVTSVNfU1RSRUFNU1wiXG59XG5cbmVudW0gRW5kcG9pbnRUeXBlcyB7XG4gIEdBVEVXQVkgPSBcIkdhdGV3YXlcIixcbiAgSU5URVJGQUNFID0gXCJJbnRlcmZhY2VcIixcbn1cblxuaW50ZXJmYWNlIEVuZHBvaW50RGVmaW5pdGlvbiB7XG4gIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXM7XG4gIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcztcbiAgZW5kcG9pbnRHYXRld2F5U2VydmljZT86IGVjMi5HYXRld2F5VnBjRW5kcG9pbnRBd3NTZXJ2aWNlO1xuICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U/OiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlO1xufVxuXG5jb25zdCBlbmRwb2ludFNldHRpbmdzOiBFbmRwb2ludERlZmluaXRpb25bXSA9IFtcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuRFlOQU1PREIsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLkdBVEVXQVksXG4gICAgZW5kcG9pbnRHYXRld2F5U2VydmljZTogZWMyLkdhdGV3YXlWcGNFbmRwb2ludEF3c1NlcnZpY2UuRFlOQU1PREIsXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLlMzLFxuICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcy5HQVRFV0FZLFxuICAgIGVuZHBvaW50R2F0ZXdheVNlcnZpY2U6IGVjMi5HYXRld2F5VnBjRW5kcG9pbnRBd3NTZXJ2aWNlLlMzLFxuICB9LFxuICB7XG4gICAgZW5kcG9pbnROYW1lOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcy5TVEVQX0ZVTkNUSU9OUyxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5TVEVQX0ZVTkNUSU9OUyxcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuU05TLFxuICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcy5JTlRFUkZBQ0UsXG4gICAgZW5kcG9pbnRJbnRlcmZhY2VTZXJ2aWNlOiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLlNOUyxcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuU1FTLFxuICAgIGVuZHBvaW50VHlwZTogRW5kcG9pbnRUeXBlcy5JTlRFUkZBQ0UsXG4gICAgZW5kcG9pbnRJbnRlcmZhY2VTZXJ2aWNlOiBlYzIuSW50ZXJmYWNlVnBjRW5kcG9pbnRBd3NTZXJ2aWNlLlNRUyxcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuU0FHRU1BS0VSX1JVTlRJTUUsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuU0FHRU1BS0VSX1JVTlRJTUUsXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLlNFQ1JFVFNfTUFOQUdFUixcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5TRUNSRVRTX01BTkFHRVIsXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLlNTTSxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5TU00sXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLkVDUl9BUEksXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuRUNSXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLkVDUl9ES1IsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuRUNSX0RPQ0tFUlxuICB9LFxuICB7XG4gICAgZW5kcG9pbnROYW1lOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcy5FVkVOVFMsXG4gICAgZW5kcG9pbnRUeXBlOiBFbmRwb2ludFR5cGVzLklOVEVSRkFDRSxcbiAgICBlbmRwb2ludEludGVyZmFjZVNlcnZpY2U6IGVjMi5JbnRlcmZhY2VWcGNFbmRwb2ludEF3c1NlcnZpY2UuQ0xPVURXQVRDSF9FVkVOVFNcbiAgfSxcbiAge1xuICAgIGVuZHBvaW50TmFtZTogU2VydmljZUVuZHBvaW50VHlwZXMuS0lORVNJU19GSVJFSE9TRSxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5LSU5FU0lTX0ZJUkVIT1NFXG4gIH0sXG4gIHtcbiAgICBlbmRwb2ludE5hbWU6IFNlcnZpY2VFbmRwb2ludFR5cGVzLktJTkVTSVNfU1RSRUFNUyxcbiAgICBlbmRwb2ludFR5cGU6IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFLFxuICAgIGVuZHBvaW50SW50ZXJmYWNlU2VydmljZTogZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZS5LSU5FU0lTX1NUUkVBTVNcbiAgfVxuXTtcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQWRkQXdzU2VydmljZUVuZHBvaW50KFxuICBzY29wZTogQ29uc3RydWN0LFxuICB2cGM6IGVjMi5JVnBjLFxuICBpbnRlcmZhY2VUYWc6IFNlcnZpY2VFbmRwb2ludFR5cGVzXG4pIHtcbiAgaWYgKENoZWNrSWZFbmRwb2ludEFscmVhZHlFeGlzdHModnBjLCBpbnRlcmZhY2VUYWcpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3Qgc2VydmljZSA9IGVuZHBvaW50U2V0dGluZ3MuZmluZChcbiAgICAoZW5kcG9pbnQpID0+IGVuZHBvaW50LmVuZHBvaW50TmFtZSA9PT0gaW50ZXJmYWNlVGFnXG4gICk7XG5cbiAgaWYgKCFzZXJ2aWNlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgU2VydmljZSBzZW50IHRvIEFkZFNlcnZpY2VFbmRwb2ludFwiKTtcbiAgfVxuXG4gIGlmIChzZXJ2aWNlLmVuZHBvaW50VHlwZSA9PT0gRW5kcG9pbnRUeXBlcy5HQVRFV0FZKSB7XG4gICAgQWRkR2F0ZXdheUVuZHBvaW50KHZwYywgc2VydmljZSwgaW50ZXJmYWNlVGFnKTtcbiAgfVxuICBpZiAoc2VydmljZS5lbmRwb2ludFR5cGUgPT09IEVuZHBvaW50VHlwZXMuSU5URVJGQUNFKSB7XG4gICAgQWRkSW50ZXJmYWNlRW5kcG9pbnQoc2NvcGUsIHZwYywgc2VydmljZSwgaW50ZXJmYWNlVGFnKTtcbiAgfVxuXG4gIC8vIEVTTGludCByZXF1aXJlcyB0aGlzIHJldHVybiBzdGF0ZW1lbnQsIHNvIGRpc2FibGluZyBTb25hclF1YmUgd2FybmluZ1xuICByZXR1cm47IC8vIE5PU09OQVJcbn1cblxuZnVuY3Rpb24gQ2hlY2tJZkVuZHBvaW50QWxyZWFkeUV4aXN0cyh2cGM6IGVjMi5JVnBjLCBpbnRlcmZhY2VUYWc6IFNlcnZpY2VFbmRwb2ludFR5cGVzKTogYm9vbGVhbiB7XG4gIHJldHVybiB2cGMubm9kZS5jaGlsZHJlbi5zb21lKChjaGlsZCkgPT4gY2hpbGQubm9kZS5pZCA9PT0gaW50ZXJmYWNlVGFnKTtcbn1cblxuZnVuY3Rpb24gU3VwcHJlc3NNYXBQdWJsaWNJcFdhcm5pbmdzKHZwYzogZWMyLlZwYykge1xuICAvLyBBZGQgQ2ZuIE5hZyBzdXBwcmVzc2lvbiBmb3IgUFVCTElDIHN1Ym5ldHMgdG8gc3VwcHJlc3MgV0FSTiBXMzM6IEVDMiBTdWJuZXQgc2hvdWxkIG5vdCBoYXZlIE1hcFB1YmxpY0lwT25MYXVuY2ggc2V0IHRvIHRydWVcbiAgdnBjLnB1YmxpY1N1Ym5ldHMuZm9yRWFjaCgoc3VibmV0KSA9PiB7XG4gICAgY29uc3QgY2ZuU3VibmV0ID0gc3VibmV0Lm5vZGUuZGVmYXVsdENoaWxkIGFzIGVjMi5DZm5TdWJuZXQ7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhjZm5TdWJuZXQsIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdXMzMnLFxuICAgICAgICByZWFzb246ICdBbGxvdyBQdWJsaWMgU3VibmV0cyB0byBoYXZlIE1hcFB1YmxpY0lwT25MYXVuY2ggc2V0IHRvIHRydWUnXG4gICAgICB9XG4gICAgXSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBTdXBwcmVzc0VuY3J5cHRlZExvZ1dhcm5pbmdzKGZsb3dMb2c6IGVjMi5GbG93TG9nKSB7XG4gIC8vIEFkZCBDZm4gTmFnIHN1cHByZXNzaW9uIGZvciBDbG91ZFdhdGNoTG9ncyBMb2dHcm91cHMgZGF0YSBpcyBlbmNyeXB0ZWRcbiAgY29uc3QgY2ZuTG9nR3JvdXA6IENmbkxvZ0dyb3VwID0gZmxvd0xvZy5sb2dHcm91cD8ubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuTG9nR3JvdXA7XG4gIGFkZENmblN1cHByZXNzUnVsZXMoY2ZuTG9nR3JvdXAsIFtcbiAgICB7XG4gICAgICBpZDogJ1c4NCcsXG4gICAgICByZWFzb246ICdCeSBkZWZhdWx0IENsb3VkV2F0Y2hMb2dzIExvZ0dyb3VwcyBkYXRhIGlzIGVuY3J5cHRlZCB1c2luZyB0aGUgQ2xvdWRXYXRjaCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGtleXMgKEFXUyBNYW5hZ2VkIEtleXMpJ1xuICAgIH1cbiAgXSk7XG59XG5cbmZ1bmN0aW9uIEFkZEludGVyZmFjZUVuZHBvaW50KHNjb3BlOiBDb25zdHJ1Y3QsIHZwYzogZWMyLklWcGMsIHNlcnZpY2U6IEVuZHBvaW50RGVmaW5pdGlvbiwgaW50ZXJmYWNlVGFnOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcykge1xuICBjb25zdCBlbmRwb2ludERlZmF1bHRTZWN1cml0eUdyb3VwID0gYnVpbGRTZWN1cml0eUdyb3VwKFxuICAgIHNjb3BlLFxuICAgIGAke3Njb3BlLm5vZGUuaWR9LSR7c2VydmljZS5lbmRwb2ludE5hbWV9YCxcbiAgICB7XG4gICAgICB2cGMsXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0sXG4gICAgW3sgcGVlcjogZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY29ubmVjdGlvbjogZWMyLlBvcnQudGNwKDQ0MykgfV0sXG4gICAgW11cbiAgKTtcblxuICB2cGMuYWRkSW50ZXJmYWNlRW5kcG9pbnQoaW50ZXJmYWNlVGFnLCB7XG4gICAgc2VydmljZTogc2VydmljZS5lbmRwb2ludEludGVyZmFjZVNlcnZpY2UgYXMgZWMyLkludGVyZmFjZVZwY0VuZHBvaW50QXdzU2VydmljZSxcbiAgICBzZWN1cml0eUdyb3VwczogW2VuZHBvaW50RGVmYXVsdFNlY3VyaXR5R3JvdXBdLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gQWRkR2F0ZXdheUVuZHBvaW50KHZwYzogZWMyLklWcGMsIHNlcnZpY2U6IEVuZHBvaW50RGVmaW5pdGlvbiwgaW50ZXJmYWNlVGFnOiBTZXJ2aWNlRW5kcG9pbnRUeXBlcykge1xuICB2cGMuYWRkR2F0ZXdheUVuZHBvaW50KGludGVyZmFjZVRhZywge1xuICAgIHNlcnZpY2U6IHNlcnZpY2UuZW5kcG9pbnRHYXRld2F5U2VydmljZSBhcyBlYzIuR2F0ZXdheVZwY0VuZHBvaW50QXdzU2VydmljZSxcbiAgfSk7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldHJpZXZlUHJpdmF0ZVN1Ym5ldElkcyh2cGM6IGVjMi5JVnBjKSB7XG4gIGxldCB0YXJnZXRTdWJuZXRUeXBlO1xuXG4gIGlmICh2cGMuaXNvbGF0ZWRTdWJuZXRzLmxlbmd0aCkge1xuICAgIHRhcmdldFN1Ym5ldFR5cGUgPSBlYzIuU3VibmV0VHlwZS5QUklWQVRFX0lTT0xBVEVEO1xuICB9IGVsc2UgaWYgKHZwYy5wcml2YXRlU3VibmV0cy5sZW5ndGgpIHtcbiAgICB0YXJnZXRTdWJuZXRUeXBlID0gZWMyLlN1Ym5ldFR5cGUuUFJJVkFURV9XSVRIX0VHUkVTUztcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIC0gTm8gaXNvbGF0ZWQgb3IgcHJpdmF0ZSBzdWJuZXRzIGF2YWlsYWJsZSBpbiBWUEMnKTtcbiAgfVxuXG4gIGNvbnN0IHN1Ym5ldFNlbGVjdG9yID0ge1xuICAgIG9uZVBlckF6OiB0cnVlLFxuICAgIHN1Ym5ldFR5cGU6IHRhcmdldFN1Ym5ldFR5cGVcbiAgfTtcblxuICByZXR1cm4gdnBjLnNlbGVjdFN1Ym5ldHMoc3VibmV0U2VsZWN0b3IpLnN1Ym5ldElkcztcbn0iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-solutions-constructs/core",
3
- "version": "2.39.0",
3
+ "version": "2.40.0",
4
4
  "description": "Core CDK Construct for patterns library",
5
5
  "main": "index.js",
6
6
  "types": "index.ts",
@@ -62,7 +62,7 @@
62
62
  "@types/prettier": "2.6.0",
63
63
  "@types/jest": "^27.4.0",
64
64
  "@types/node": "^10.3.0",
65
- "aws-cdk-lib": "2.76.0",
65
+ "aws-cdk-lib": "2.82.0",
66
66
  "constructs": "^10.0.0"
67
67
  },
68
68
  "jest": {
@@ -85,7 +85,7 @@
85
85
  "deep-diff"
86
86
  ],
87
87
  "peerDependencies": {
88
- "aws-cdk-lib": "^2.76.0",
88
+ "aws-cdk-lib": "^2.82.0",
89
89
  "constructs": "^10.0.0"
90
90
  }
91
91
  }