@aws-solutions-constructs/core 1.156.1 → 1.159.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.
Files changed (227) hide show
  1. package/.jsii +160 -104
  2. package/index.d.ts +0 -1
  3. package/lib/alb-defaults.d.ts +0 -1
  4. package/lib/alb-helper.d.ts +0 -1
  5. package/lib/alb-helper.js +5 -7
  6. package/lib/apigateway-defaults.d.ts +0 -1
  7. package/lib/apigateway-helper.d.ts +0 -1
  8. package/lib/apigateway-helper.js +8 -11
  9. package/lib/cloudfront-distribution-defaults.d.ts +0 -1
  10. package/lib/cloudfront-distribution-helper.d.ts +0 -1
  11. package/lib/cloudfront-distribution-helper.js +5 -5
  12. package/lib/cloudwatch-log-group-defaults.d.ts +0 -1
  13. package/lib/cloudwatch-log-group-helper.d.ts +0 -1
  14. package/lib/cognito-defaults.d.ts +0 -1
  15. package/lib/cognito-helper.d.ts +0 -1
  16. package/lib/dynamodb-table-defaults.d.ts +0 -1
  17. package/lib/dynamodb-table-helper.d.ts +0 -1
  18. package/lib/elasticache-defaults.d.ts +0 -1
  19. package/lib/elasticache-helper.d.ts +0 -1
  20. package/lib/elasticache-helper.js +3 -4
  21. package/lib/elasticsearch-defaults.d.ts +2 -9
  22. package/lib/elasticsearch-defaults.js +7 -16
  23. package/lib/elasticsearch-helper.d.ts +13 -3
  24. package/lib/elasticsearch-helper.js +100 -45
  25. package/lib/eventbridge-helper.d.ts +0 -1
  26. package/lib/events-rule-defaults.d.ts +0 -1
  27. package/lib/fargate-defaults.d.ts +0 -1
  28. package/lib/fargate-helper.d.ts +0 -1
  29. package/lib/fargate-helper.js +9 -10
  30. package/lib/glue-database-defaults.d.ts +0 -1
  31. package/lib/glue-database-helper.d.ts +0 -1
  32. package/lib/glue-job-defaults.d.ts +0 -1
  33. package/lib/glue-job-helper.d.ts +0 -1
  34. package/lib/glue-table-defaults.d.ts +0 -1
  35. package/lib/glue-table-helper.d.ts +0 -1
  36. package/lib/input-validation.d.ts +0 -1
  37. package/lib/input-validation.js +6 -7
  38. package/lib/iot-topic-rule-defaults.d.ts +0 -1
  39. package/lib/kinesis-analytics-defaults.d.ts +0 -1
  40. package/lib/kinesis-analytics-helper.d.ts +0 -1
  41. package/lib/kinesis-firehose-s3-defaults.d.ts +0 -1
  42. package/lib/kinesis-streams-defaults.d.ts +0 -1
  43. package/lib/kinesis-streams-helper.d.ts +0 -1
  44. package/lib/kms-defaults.d.ts +0 -1
  45. package/lib/kms-helper.d.ts +0 -1
  46. package/lib/lambda-defaults.d.ts +0 -1
  47. package/lib/lambda-event-source-mapping-defaults.d.ts +0 -1
  48. package/lib/lambda-event-source-mapping-defaults.js +7 -7
  49. package/lib/lambda-helper.d.ts +1 -1
  50. package/lib/lambda-helper.js +11 -7
  51. package/lib/mediastore-defaults.d.ts +0 -1
  52. package/lib/mediastore-helper.d.ts +0 -1
  53. package/lib/override-warning-service.d.ts +0 -1
  54. package/lib/override-warning-service.js +5 -8
  55. package/lib/s3-bucket-defaults.d.ts +0 -1
  56. package/lib/s3-bucket-helper.d.ts +0 -1
  57. package/lib/s3-bucket-helper.js +4 -5
  58. package/lib/sagemaker-defaults.d.ts +0 -1
  59. package/lib/sagemaker-helper.d.ts +0 -1
  60. package/lib/sagemaker-helper.js +10 -11
  61. package/lib/secretsmanager-defaults.d.ts +0 -1
  62. package/lib/secretsmanager-helper.d.ts +0 -1
  63. package/lib/security-group-helper.d.ts +0 -1
  64. package/lib/sns-defaults.d.ts +0 -1
  65. package/lib/sns-helper.d.ts +0 -1
  66. package/lib/sqs-defaults.d.ts +0 -1
  67. package/lib/sqs-helper.d.ts +0 -1
  68. package/lib/ssm-string-parameter-helper.d.ts +0 -1
  69. package/lib/step-function-defaults.d.ts +0 -1
  70. package/lib/step-function-helper.d.ts +0 -1
  71. package/lib/step-function-helper.js +4 -5
  72. package/lib/utils.d.ts +0 -1
  73. package/lib/utils.js +3 -4
  74. package/lib/vpc-defaults.d.ts +0 -1
  75. package/lib/vpc-defaults.js +6 -1
  76. package/lib/vpc-helper.d.ts +0 -1
  77. package/lib/vpc-helper.js +6 -7
  78. package/lib/waf-defaults.d.ts +0 -1
  79. package/lib/waf-helper.d.ts +0 -1
  80. package/package.json +71 -71
  81. package/test/alb-helper.test.d.ts +0 -1
  82. package/test/apigateway-helper.test.d.ts +0 -1
  83. package/test/cloudfront-distribution-api-gateway-helper.test.d.ts +0 -1
  84. package/test/cloudfront-distribution-mediastore-helper.test.d.ts +0 -1
  85. package/test/cloudfront-distribution-s3-helper.test.d.ts +0 -1
  86. package/test/cloudwatch-log-group-helper.test.d.ts +0 -1
  87. package/test/congnito-helper.test.d.ts +0 -1
  88. package/test/dynamo-table.test.d.ts +0 -1
  89. package/test/elasticache-defaults.test.d.ts +0 -1
  90. package/test/elasticache-helper.test.d.ts +0 -1
  91. package/test/elasticsearch-helper.test.d.ts +0 -1
  92. package/test/elasticsearch-helper.test.js +131 -11
  93. package/test/eventbridge-helper.test.d.ts +0 -1
  94. package/test/events-rule.test.d.ts +0 -1
  95. package/test/fargate-helper.test.d.ts +0 -1
  96. package/test/glue-job-helper.test.d.ts +0 -1
  97. package/test/glue-job-helper.test.js +3 -4
  98. package/test/glue-table-helper.test.d.ts +0 -1
  99. package/test/input-validation.test.d.ts +0 -1
  100. package/test/iot-rule.test.d.ts +0 -1
  101. package/test/kinesis-analytics.test.d.ts +0 -1
  102. package/test/kinesis-firehose-s3-defaults.test.d.ts +0 -1
  103. package/test/kinesis-streams-defaults.test.d.ts +0 -1
  104. package/test/kinesis-streams-helper.test.d.ts +0 -1
  105. package/test/kms-helper.test.d.ts +0 -1
  106. package/test/lambda-event-source.test.d.ts +0 -1
  107. package/test/lambda-helper.test.d.ts +0 -1
  108. package/test/lambda-helper.test.js +17 -1
  109. package/test/mediastore-helper.test.d.ts +0 -1
  110. package/test/override-warning-service.test.d.ts +0 -1
  111. package/test/s3-bucket-helper.test.d.ts +0 -1
  112. package/test/s3-bucket.test.d.ts +0 -1
  113. package/test/sagemaker-helper.test.d.ts +0 -1
  114. package/test/sagemaker-helper.test.js +3 -3
  115. package/test/secretsmanager-helper.test.d.ts +0 -1
  116. package/test/security-group-helper.test.d.ts +0 -1
  117. package/test/sns-helper.test.d.ts +0 -1
  118. package/test/sqs-helper.test.d.ts +0 -1
  119. package/test/sqs-helper.test.js +2 -2
  120. package/test/ssm-string-parameter-helper.test.d.ts +0 -1
  121. package/test/step-function-helper.test.d.ts +0 -1
  122. package/test/test-helper.d.ts +1 -2
  123. package/test/test-helper.js +4 -3
  124. package/test/utils.test.d.ts +0 -1
  125. package/test/vpc-helper.test.d.ts +0 -1
  126. package/test/waf-helper.test.d.ts +0 -1
  127. package/index.d.ts.map +0 -1
  128. package/lib/alb-defaults.d.ts.map +0 -1
  129. package/lib/alb-helper.d.ts.map +0 -1
  130. package/lib/apigateway-defaults.d.ts.map +0 -1
  131. package/lib/apigateway-helper.d.ts.map +0 -1
  132. package/lib/cloudfront-distribution-defaults.d.ts.map +0 -1
  133. package/lib/cloudfront-distribution-helper.d.ts.map +0 -1
  134. package/lib/cloudwatch-log-group-defaults.d.ts.map +0 -1
  135. package/lib/cloudwatch-log-group-helper.d.ts.map +0 -1
  136. package/lib/cognito-defaults.d.ts.map +0 -1
  137. package/lib/cognito-helper.d.ts.map +0 -1
  138. package/lib/dynamodb-table-defaults.d.ts.map +0 -1
  139. package/lib/dynamodb-table-helper.d.ts.map +0 -1
  140. package/lib/elasticache-defaults.d.ts.map +0 -1
  141. package/lib/elasticache-helper.d.ts.map +0 -1
  142. package/lib/elasticsearch-defaults.d.ts.map +0 -1
  143. package/lib/elasticsearch-helper.d.ts.map +0 -1
  144. package/lib/eventbridge-helper.d.ts.map +0 -1
  145. package/lib/events-rule-defaults.d.ts.map +0 -1
  146. package/lib/fargate-defaults.d.ts.map +0 -1
  147. package/lib/fargate-helper.d.ts.map +0 -1
  148. package/lib/glue-database-defaults.d.ts.map +0 -1
  149. package/lib/glue-database-helper.d.ts.map +0 -1
  150. package/lib/glue-job-defaults.d.ts.map +0 -1
  151. package/lib/glue-job-helper.d.ts.map +0 -1
  152. package/lib/glue-table-defaults.d.ts.map +0 -1
  153. package/lib/glue-table-helper.d.ts.map +0 -1
  154. package/lib/input-validation.d.ts.map +0 -1
  155. package/lib/iot-topic-rule-defaults.d.ts.map +0 -1
  156. package/lib/kinesis-analytics-defaults.d.ts.map +0 -1
  157. package/lib/kinesis-analytics-helper.d.ts.map +0 -1
  158. package/lib/kinesis-firehose-s3-defaults.d.ts.map +0 -1
  159. package/lib/kinesis-streams-defaults.d.ts.map +0 -1
  160. package/lib/kinesis-streams-helper.d.ts.map +0 -1
  161. package/lib/kms-defaults.d.ts.map +0 -1
  162. package/lib/kms-helper.d.ts.map +0 -1
  163. package/lib/lambda-defaults.d.ts.map +0 -1
  164. package/lib/lambda-event-source-mapping-defaults.d.ts.map +0 -1
  165. package/lib/lambda-helper.d.ts.map +0 -1
  166. package/lib/mediastore-defaults.d.ts.map +0 -1
  167. package/lib/mediastore-helper.d.ts.map +0 -1
  168. package/lib/override-warning-service.d.ts.map +0 -1
  169. package/lib/s3-bucket-defaults.d.ts.map +0 -1
  170. package/lib/s3-bucket-helper.d.ts.map +0 -1
  171. package/lib/sagemaker-defaults.d.ts.map +0 -1
  172. package/lib/sagemaker-helper.d.ts.map +0 -1
  173. package/lib/secretsmanager-defaults.d.ts.map +0 -1
  174. package/lib/secretsmanager-helper.d.ts.map +0 -1
  175. package/lib/security-group-helper.d.ts.map +0 -1
  176. package/lib/sns-defaults.d.ts.map +0 -1
  177. package/lib/sns-helper.d.ts.map +0 -1
  178. package/lib/sqs-defaults.d.ts.map +0 -1
  179. package/lib/sqs-helper.d.ts.map +0 -1
  180. package/lib/ssm-string-parameter-helper.d.ts.map +0 -1
  181. package/lib/step-function-defaults.d.ts.map +0 -1
  182. package/lib/step-function-helper.d.ts.map +0 -1
  183. package/lib/utils.d.ts.map +0 -1
  184. package/lib/vpc-defaults.d.ts.map +0 -1
  185. package/lib/vpc-helper.d.ts.map +0 -1
  186. package/lib/waf-defaults.d.ts.map +0 -1
  187. package/lib/waf-helper.d.ts.map +0 -1
  188. package/test/alb-helper.test.d.ts.map +0 -1
  189. package/test/apigateway-helper.test.d.ts.map +0 -1
  190. package/test/cloudfront-distribution-api-gateway-helper.test.d.ts.map +0 -1
  191. package/test/cloudfront-distribution-mediastore-helper.test.d.ts.map +0 -1
  192. package/test/cloudfront-distribution-s3-helper.test.d.ts.map +0 -1
  193. package/test/cloudwatch-log-group-helper.test.d.ts.map +0 -1
  194. package/test/congnito-helper.test.d.ts.map +0 -1
  195. package/test/dynamo-table.test.d.ts.map +0 -1
  196. package/test/elasticache-defaults.test.d.ts.map +0 -1
  197. package/test/elasticache-helper.test.d.ts.map +0 -1
  198. package/test/elasticsearch-helper.test.d.ts.map +0 -1
  199. package/test/eventbridge-helper.test.d.ts.map +0 -1
  200. package/test/events-rule.test.d.ts.map +0 -1
  201. package/test/fargate-helper.test.d.ts.map +0 -1
  202. package/test/glue-job-helper.test.d.ts.map +0 -1
  203. package/test/glue-table-helper.test.d.ts.map +0 -1
  204. package/test/input-validation.test.d.ts.map +0 -1
  205. package/test/iot-rule.test.d.ts.map +0 -1
  206. package/test/kinesis-analytics.test.d.ts.map +0 -1
  207. package/test/kinesis-firehose-s3-defaults.test.d.ts.map +0 -1
  208. package/test/kinesis-streams-defaults.test.d.ts.map +0 -1
  209. package/test/kinesis-streams-helper.test.d.ts.map +0 -1
  210. package/test/kms-helper.test.d.ts.map +0 -1
  211. package/test/lambda-event-source.test.d.ts.map +0 -1
  212. package/test/lambda-helper.test.d.ts.map +0 -1
  213. package/test/mediastore-helper.test.d.ts.map +0 -1
  214. package/test/override-warning-service.test.d.ts.map +0 -1
  215. package/test/s3-bucket-helper.test.d.ts.map +0 -1
  216. package/test/s3-bucket.test.d.ts.map +0 -1
  217. package/test/sagemaker-helper.test.d.ts.map +0 -1
  218. package/test/secretsmanager-helper.test.d.ts.map +0 -1
  219. package/test/security-group-helper.test.d.ts.map +0 -1
  220. package/test/sns-helper.test.d.ts.map +0 -1
  221. package/test/sqs-helper.test.d.ts.map +0 -1
  222. package/test/ssm-string-parameter-helper.test.d.ts.map +0 -1
  223. package/test/step-function-helper.test.d.ts.map +0 -1
  224. package/test/test-helper.d.ts.map +0 -1
  225. package/test/utils.test.d.ts.map +0 -1
  226. package/test/vpc-helper.test.d.ts.map +0 -1
  227. package/test/waf-helper.test.d.ts.map +0 -1
@@ -25,7 +25,6 @@ const utils_1 = require("./utils");
25
25
  * @param _api - an existing api.RestApi or api.LambdaRestApi.
26
26
  */
27
27
  function configureCloudwatchRoleForApi(scope, _api) {
28
- var _a;
29
28
  // Setup the IAM Role for API Gateway CloudWatch access
30
29
  const restApiCloudwatchRole = new iam.Role(scope, 'LambdaRestApiCloudWatchRole', {
31
30
  assumedBy: new iam.ServicePrincipal('apigateway.amazonaws.com'),
@@ -53,7 +52,7 @@ function configureCloudwatchRoleForApi(scope, _api) {
53
52
  });
54
53
  cfnAccount.addDependsOn(CfnApi);
55
54
  // Suppress Cfn Nag warning for APIG
56
- const deployment = (_a = _api.latestDeployment) === null || _a === void 0 ? void 0 : _a.node.findChild('Resource');
55
+ const deployment = _api.latestDeployment?.node.findChild('Resource');
57
56
  utils_1.addCfnSuppressRules(deployment, [
58
57
  {
59
58
  id: 'W45',
@@ -70,9 +69,8 @@ function configureCloudwatchRoleForApi(scope, _api) {
70
69
  * @param apiGatewayProps - (optional) user-specified properties to override the default properties.
71
70
  */
72
71
  function configureLambdaRestApi(scope, defaultApiGatewayProps, apiGatewayProps) {
73
- var _a;
74
72
  // API Gateway doesn't allow both endpointTypes and endpointConfiguration, check whether endPointTypes exists
75
- if (apiGatewayProps === null || apiGatewayProps === void 0 ? void 0 : apiGatewayProps.endpointTypes) {
73
+ if (apiGatewayProps?.endpointTypes) {
76
74
  throw Error('Solutions Constructs internally uses endpointConfiguration, use endpointConfiguration instead of endpointTypes');
77
75
  }
78
76
  // Define the API object
@@ -88,7 +86,7 @@ function configureLambdaRestApi(scope, defaultApiGatewayProps, apiGatewayProps)
88
86
  }
89
87
  // Configure API access logging
90
88
  let cwRole;
91
- if ((apiGatewayProps === null || apiGatewayProps === void 0 ? void 0 : apiGatewayProps.cloudWatchRole) !== false) {
89
+ if (apiGatewayProps?.cloudWatchRole !== false) {
92
90
  cwRole = configureCloudwatchRoleForApi(scope, _api);
93
91
  }
94
92
  // Configure Usage Plan
@@ -100,7 +98,7 @@ function configureLambdaRestApi(scope, defaultApiGatewayProps, apiGatewayProps)
100
98
  };
101
99
  const plan = _api.addUsagePlan('UsagePlan', usagePlanProps);
102
100
  // If requireApiKey param is set to true, create a api key & associate to Usage Plan
103
- if (((_a = apiGatewayProps === null || apiGatewayProps === void 0 ? void 0 : apiGatewayProps.defaultMethodOptions) === null || _a === void 0 ? void 0 : _a.apiKeyRequired) === true) {
101
+ if (apiGatewayProps?.defaultMethodOptions?.apiKeyRequired === true) {
104
102
  // Configure Usage Plan with API Key
105
103
  const key = _api.addApiKey('ApiKey');
106
104
  plan.addApiKey(key);
@@ -115,9 +113,8 @@ function configureLambdaRestApi(scope, defaultApiGatewayProps, apiGatewayProps)
115
113
  * @param apiGatewayProps - (optional) user-specified properties to override the default properties.
116
114
  */
117
115
  function configureRestApi(scope, defaultApiGatewayProps, apiGatewayProps) {
118
- var _a;
119
116
  // API Gateway doesn't allow both endpointTypes and endpointConfiguration, check whether endPointTypes exists
120
- if (apiGatewayProps === null || apiGatewayProps === void 0 ? void 0 : apiGatewayProps.endpointTypes) {
117
+ if (apiGatewayProps?.endpointTypes) {
121
118
  throw Error('Solutions Constructs internally uses endpointConfiguration, use endpointConfiguration instead of endpointTypes');
122
119
  }
123
120
  // Define the API
@@ -126,7 +123,7 @@ function configureRestApi(scope, defaultApiGatewayProps, apiGatewayProps) {
126
123
  _api = new api.RestApi(scope, 'RestApi', _apiGatewayProps);
127
124
  let cwRole;
128
125
  // Configure API access logging
129
- if ((apiGatewayProps === null || apiGatewayProps === void 0 ? void 0 : apiGatewayProps.cloudWatchRole) !== false) {
126
+ if (apiGatewayProps?.cloudWatchRole !== false) {
130
127
  cwRole = configureCloudwatchRoleForApi(scope, _api);
131
128
  }
132
129
  // Configure Usage Plan
@@ -138,7 +135,7 @@ function configureRestApi(scope, defaultApiGatewayProps, apiGatewayProps) {
138
135
  };
139
136
  const plan = _api.addUsagePlan('UsagePlan', usagePlanProps);
140
137
  // If requireApiKey param is set to true, create a api key & associate to Usage Plan
141
- if (((_a = apiGatewayProps === null || apiGatewayProps === void 0 ? void 0 : apiGatewayProps.defaultMethodOptions) === null || _a === void 0 ? void 0 : _a.apiKeyRequired) === true) {
138
+ if (apiGatewayProps?.defaultMethodOptions?.apiKeyRequired === true) {
142
139
  // Configure Usage Plan with API Key
143
140
  const key = _api.addApiKey('ApiKey');
144
141
  plan.addApiKey(key);
@@ -271,4 +268,4 @@ function addProxyMethodToApiResource(params) {
271
268
  return apiMethod;
272
269
  }
273
270
  exports.addProxyMethodToApiResource = addProxyMethodToApiResource;
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpZ2F0ZXdheS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcGlnYXRld2F5LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUtILHFDQUFxQztBQUNyQywrQ0FBK0M7QUFDL0Msd0NBQXdDO0FBQ3hDLHFEQUFxRDtBQUNyRCwrRUFBOEQ7QUFDOUQsbUNBQWdFO0FBS2hFOzs7O0dBSUc7QUFDSCxTQUFTLDZCQUE2QixDQUFDLEtBQWdCLEVBQUUsSUFBaUI7O0lBQ3hFLHVEQUF1RDtJQUN2RCxNQUFNLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsNkJBQTZCLEVBQUU7UUFDL0UsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDO1FBQy9ELGNBQWMsRUFBRTtZQUNkLGlDQUFpQyxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQztnQkFDeEQsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO3dCQUNuQyxPQUFPLEVBQUU7NEJBQ1AscUJBQXFCOzRCQUNyQixzQkFBc0I7NEJBQ3RCLHdCQUF3Qjs0QkFDeEIseUJBQXlCOzRCQUN6QixtQkFBbUI7NEJBQ25CLG1CQUFtQjs0QkFDbkIsc0JBQXNCO3lCQUN2Qjt3QkFDRCxTQUFTLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUM7cUJBQ3ZGLENBQUMsQ0FBQzthQUNKLENBQUM7U0FDSDtLQUNGLENBQUMsQ0FBQztJQUNILG9GQUFvRjtJQUNwRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQW1CLENBQUM7SUFDakUsTUFBTSxVQUFVLEdB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Z0IsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEYsU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFFbEcsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQTVFRCxrRUE0RUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnQGF3cy1jZGsvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0ICogYXMgYXBpIGZyb20gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGFwaURlZmF1bHRzIGZyb20gJy4vYXBpZ2F0ZXdheS1kZWZhdWx0cyc7XG5pbXBvcnQgeyBidWlsZExvZ0dyb3VwIH0gZnJvbSAnLi9jbG91ZHdhdGNoLWxvZy1ncm91cC1oZWxwZXInO1xuaW1wb3J0IHsgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgSVJvbGUgfSBmcm9tICdAYXdzLWNkay9hd3MtaWFtJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuXG4vKipcbiAqIENyZWF0ZSBhbmQgY29uZmlndXJlcyBhY2Nlc3MgbG9nZ2luZyBmb3IgQVBJIEdhdGV3YXkgcmVzb3VyY2VzLlxuICogQHBhcmFtIHNjb3BlIC0gdGhlIGNvbnN0cnVjdCB0byB3aGljaCB0aGUgYWNjZXNzIGxvZ2dpbmcgY2FwYWJpbGl0aWVzIHNob3VsZCBiZSBhdHRhY2hlZCB0by5cbiAqIEBwYXJhbSBfYXBpIC0gYW4gZXhpc3RpbmcgYXBpLlJlc3RBcGkgb3IgYXBpLkxhbWJkYVJlc3RBcGkuXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZUNsb3Vkd2F0Y2hSb2xlRm9yQXBpKHNjb3BlOiBDb25zdHJ1Y3QsIF9hcGk6IGFwaS5SZXN0QXBpKTogaWFtLlJvbGUge1xuICAvLyBTZXR1cCB0aGUgSUFNIFJvbGUgZm9yIEFQSSBHYXRld2F5IENsb3VkV2F0Y2ggYWNjZXNzXG4gIGNvbnN0IHJlc3RBcGlDbG91ZHdhdGNoUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgJ0xhbWJkYVJlc3RBcGlDbG91ZFdhdGNoUm9sZScsIHtcbiAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnYXBpZ2F0ZXdheS5hbWF6b25hd3MuY29tJyksXG4gICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgIExhbWJkYVJlc3RBcGlDbG91ZFdhdGNoUm9sZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgIHN0YXRlbWVudHM6IFtuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ2xvZ3M6Q3JlYXRlTG9nR3JvdXAnLFxuICAgICAgICAgICAgJ2xvZ3M6Q3JlYXRlTG9nU3RyZWFtJyxcbiAgICAgICAgICAgICdsb2dzOkRlc2NyaWJlTG9nR3JvdXBzJyxcbiAgICAgICAgICAgICdsb2dzOkRlc2NyaWJlTG9nU3RyZWFtcycsXG4gICAgICAgICAgICAnbG9nczpQdXRMb2dFdmVudHMnLFxuICAgICAgICAgICAgJ2xvZ3M6R2V0TG9nRXZlbnRzJyxcbiAgICAgICAgICAgICdsb2dzOkZpbHRlckxvZ0V2ZW50cydcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06bG9nczoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06KmBdXG4gICAgICAgIH0pXVxuICAgICAgfSlcbiAgICB9XG4gIH0pO1xuICAvLyBDcmVhdGUgYW5kIGNvbmZpZ3VyZSBBV1M6OkFwaUdhdGV3YXk6OkFjY291bnQgd2l0aCBDbG91ZFdhdGNoIFJvbGUgZm9yIEFwaUdhdGV3YXlcbiAgY29uc3QgQ2ZuQXBpID0gX2FwaS5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBhcGkuQ2ZuUmVzdEFwaTtcbiAgY29uc3QgY2ZuQWNjb3VudDogYXBpLkNmbkFjY291bnQgPSBuZXcgYXBpLkNmbkFjY291bnQoc2NvcGUsICdMYW1iZGFSZXN0QXBpQWNjb3VudCcsIHtcbiAgICBjbG91ZFdhdGNoUm9sZUFybjogcmVzdEFwaUNsb3Vkd2F0Y2hSb2xlLnJvbGVBcm5cbiAgfSk7XG4gIGNmbkFjY291bnQuYWRkRGVwZW5kc09uKENmbkFwaSk7XG5cbiAgLy8gU3VwcHJlc3MgQ2ZuIE5hZyB3YXJuaW5nIGZvciBBUElHXG4gIGNvbnN0IGRlcGxveW1lbnQ6IGFwaS5DZm5EZXBsb3ltZW50ID0gX2FwaS5sYXRlc3REZXBsb3ltZW50Py5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBhcGkuQ2ZuRGVwbG95bWVudDtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhkZXBsb3ltZW50LCBbXG4gICAge1xuICAgICAgaWQ6ICdXNDUnLFxuICAgICAgcmVhc29uOiBgQXBpR2F0ZXdheSBoYXMgQWNjZXNzTG9nZ2luZyBlbmFibGVkIGluIEFXUzo6QXBpR2F0ZXdheTo6U3RhZ2UgcmVzb3VyY2UsIGJ1dCBjZm5fbmFnIGNoZWNrZXMgZm9yIGl0IGluIEFXUzo6QXBpR2F0ZXdheTo6RGVwbG95bWVudCByZXNvdXJjZWBcbiAgICB9XG4gIF0pO1xuXG4gIC8vIFJldHVybiB0aGUgQ1cgUm9sZVxuICByZXR1cm4gcmVzdEFwaUNsb3Vkd2F0Y2hSb2xlO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW5kIGNvbmZpZ3VyZXMgYW4gYXBpLkxhbWJkYVJlc3RBcGkuXG4gKiBAcGFyYW0gc2NvcGUgLSB0aGUgY29uc3RydWN0IHRvIHdoaWNoIHRoZSBMYW1iZGFSZXN0QXBpIHNob3VsZCBiZSBhdHRhY2hlZCB0by5cbiAqIEBwYXJhbSBkZWZhdWx0QXBpR2F0ZXdheVByb3BzIC0gdGhlIGRlZmF1bHQgcHJvcGVydGllcyBmb3IgdGhlIExhbWJkYVJlc3RBcGkuXG4gKiBAcGFyYW0gYXBpR2F0ZXdheVByb3BzIC0gKG9wdGlvbmFsKSB1c2VyLXNwZWNpZmllZCBwcm9wZXJ0aWVzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMuXG4gKi9cbmZ1bmN0aW9uIGNvbmZpZ3VyZUxhbWJkYVJlc3RBcGkoc2NvcGU6IENvbnN0cnVjdCwgZGVmYXVsdEFwaUdhdGV3YXlQcm9wczogYXBpLkxhbWJkYVJlc3RBcGlQcm9wcyxcbiAgYXBpR2F0ZXdheVByb3BzPzogYXBpLkxhbWJkYVJlc3RBcGlQcm9wcyk6IFthcGkuUmVzdEFwaSwgaWFtLlJvbGUgfCB1bmRlZmluZWRdIHtcblxuICAvLyBBUEkgR2F0ZXdheSBkb2Vzbid0IGFsbG93IGJvdGggZW5kcG9pbnRUeXBlcyBhbmQgZW5kcG9pbnRDb25maWd1cmF0aW9uLCBjaGVjayB3aGV0aGVyIGVuZFBvaW50VHlwZXMgZXhpc3RzXG4gIGlmIChhcGlHYXRld2F5UHJvcHM/LmVuZHBvaW50VHlwZXMpIHtcbiAgICB0aHJvdyBFcnJvcignU29sdXRpb25zIENvbnN0cnVjdHMgaW50ZXJuYWxseSB1c2VzIGVuZHBvaW50Q29uZmlndXJhdGlvbiwgdXNlIGVuZHBvaW50Q29uZmlndXJhdGlvbiBpbnN0ZWFkIG9mIGVuZHBvaW50VHlwZXMnKTtcbiAgfVxuXG4gIC8vIERlZmluZSB0aGUgQVBJIG9iamVjdFxuICBsZXQgX2FwaTogYXBpLlJlc3RBcGk7XG4gIGlmIChhcGlHYXRld2F5UHJvcHMpIHtcbiAgICAvLyBJZiBwcm9wZXJ0eSBvdmVycmlkZXMgaGF2ZSBiZWVuIHByb3ZpZGVkLCBpbmNvcnBvcmF0ZSB0aGVtIGFuZCBkZXBsb3lcbiAgICBjb25zdCBfYXBpR2F0ZXdheVByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0QXBpR2F0ZXdheVByb3BzLCBhcGlHYXRld2F5UHJvcHMsIHsgY2xvdWRXYXRjaFJvbGU6IGZhbHNlIH0pO1xuICAgIF9hcGkgPSBuZXcgYXBpLkxhbWJkYVJlc3RBcGkoc2NvcGUsICdMYW1iZGFSZXN0QXBpJywgX2FwaUdhdGV3YXlQcm9wcyk7XG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgbm8gcHJvcGVydHkgb3ZlcnJpZGVzLCBkZXBsb3kgdXNpbmcgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgIF9hcGkgPSBuZXcgYXBpLkxhbWJkYVJlc3RBcGkoc2NvcGUsICdMYW1iZGFSZXN0QXBpJywgZGVmYXVsdEFwaUdhdGV3YXlQcm9wcyk7XG4gIH1cbiAgLy8gQ29uZmlndXJlIEFQSSBhY2Nlc3MgbG9nZ2luZ1xuICBsZXQgY3dSb2xlO1xuXG4gIGlmIChhcGlHYXRld2F5UHJvcHM/LmNsb3VkV2F0Y2hSb2xlICE9PSBmYWxzZSkge1xuICAgIGN3Um9sZSA9IGNvbmZpZ3VyZUNsb3Vkd2F0Y2hSb2xlRm9yQXBpKHNjb3BlLCBfYXBpKTtcbiAgfVxuXG4gIC8vIENvbmZpZ3VyZSBVc2FnZSBQbGFuXG4gIGNvbnN0IHVzYWdlUGxhblByb3BzOiBhcGkuVXNhZ2VQbGFuUHJvcHMgPSB7XG4gICAgYXBpU3RhZ2VzOiBbe1xuICAgICAgYXBpOiBfYXBpLFxuICAgICAgc3RhZ2U6IF9hcGkuZGVwbG95bWVudFN0YWdlXG4gICAgfV1cbiAgfTtcblxuICBjb25zdCBwbGFuID0gX2FwaS5hZGRVc2FnZVBsYW4oJ1VzYWdlUGxhbicsIHVzYWdlUGxhblByb3BzKTtcblxuICAvLyBJZiByZXF1aXJlQXBpS2V5IHBhcmFtIGlzIHNldCB0byB0cnVlLCBjcmVhdGUgYSBhcGkga2V5ICYgYXNzb2NpYXRlIHRvIFVzYWdlIFBsYW5cbiAgaWYgKGFwaUdhdGV3YXlQcm9wcz8uZGVmYXVsdE1ldGhvZE9wdGlvbnM/LmFwaUtleVJlcXVpcmVkID09PSB0cnVlKSB7XG4gICAgLy8gQ29uZmlndXJlIFVzYWdlIFBsYW4gd2l0aCBBUEkgS2V5XG4gICAgY29uc3Qga2V5ID0gX2FwaS5hZGRBcGlLZXkoJ0FwaUtleScpO1xuICAgIHBsYW4uYWRkQXBpS2V5KGtleSk7XG4gIH1cblxuICAvLyBSZXR1cm4gdGhlIEFQSSBhbmQgQ1cgUm9sZVxuICByZXR1cm4gW19hcGksIGN3Um9sZV07XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgY29uZmlndXJlcyBhbiBhcGkuUmVzdEFwaS5cbiAqIEBwYXJhbSBzY29wZSAtIHRoZSBjb25zdHJ1Y3QgdG8gd2hpY2ggdGhlIFJlc3RBcGkgc2hvdWxkIGJlIGF0dGFjaGVkIHRvLlxuICogQHBhcmFtIGRlZmF1bHRBcGlHYXRld2F5UHJvcHMgLSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGZvciB0aGUgUmVzdEFwaS5cbiAqIEBwYXJhbSBhcGlHYXRld2F5UHJvcHMgLSAob3B0aW9uYWwpIHVzZXItc3BlY2lmaWVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcy5cbiAqL1xuZnVuY3Rpb24gY29uZmlndXJlUmVzdEFwaShzY29wZTogQ29uc3RydWN0LCBkZWZhdWx0QXBpR2F0ZXdheVByb3BzOiBhcGkuUmVzdEFwaVByb3BzLFxuICBhcGlHYXRld2F5UHJvcHM/OiBhcGkuUmVzdEFwaVByb3BzKTogW2FwaS5SZXN0QXBpLCBpYW0uUm9sZSB8IHVuZGVmaW5lZF0ge1xuXG4gIC8vIEFQSSBHYXRld2F5IGRvZXNuJ3QgYWxsb3cgYm90aCBlbmRwb2ludFR5cGVzIGFuZCBlbmRwb2ludENvbmZpZ3VyYXRpb24sIGNoZWNrIHdoZXRoZXIgZW5kUG9pbnRUeXBlcyBleGlzdHNcbiAgaWYgKGFwaUdhdGV3YXlQcm9wcz8uZW5kcG9pbnRUeXBlcykge1xuICAgIHRocm93IEVycm9yKCdTb2x1dGlvbnMgQ29uc3RydWN0cyBpbnRlcm5hbGx5IHVzZXMgZW5kcG9pbnRDb25maWd1cmF0aW9uLCB1c2UgZW5kcG9pbnRDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgZW5kcG9pbnRUeXBlcycpO1xuICB9XG5cbiAgLy8gRGVmaW5lIHRoZSBBUElcbiAgbGV0IF9hcGk6IGFwaS5SZXN0QXBpO1xuXG4gIGNvbnN0IF9hcGlHYXRld2F5UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRBcGlHYXRld2F5UHJvcHMsIGFwaUdhdGV3YXlQcm9wcywgeyBjbG91ZFdhdGNoUm9sZTogZmFsc2UgfSk7XG4gIF9hcGkgPSBuZXcgYXBpLlJlc3RBcGkoc2NvcGUsICdSZXN0QXBpJywgX2FwaUdhdGV3YXlQcm9wcyk7XG5cbiAgbGV0IGN3Um9sZTtcblxuICAvLyBDb25maWd1cmUgQVBJIGFjY2VzcyBsb2dnaW5nXG4gIGlmIChhcGlHYXRld2F5UHJvcHM/LmNsb3VkV2F0Y2hSb2xlICE9PSBmYWxzZSkge1xuICAgIGN3Um9sZSA9IGNvbmZpZ3VyZUNsb3Vkd2F0Y2hSb2xlRm9yQXBpKHNjb3BlLCBfYXBpKTtcbiAgfVxuXG4gIC8vIENvbmZpZ3VyZSBVc2FnZSBQbGFuXG4gIGNvbnN0IHVzYWdlUGxhblByb3BzOiBhcGkuVXNhZ2VQbGFuUHJvcHMgPSB7XG4gICAgYXBpU3RhZ2VzOiBbe1xuICAgICAgYXBpOiBfYXBpLFxuICAgICAgc3RhZ2U6IF9hcGkuZGVwbG95bWVudFN0YWdlXG4gICAgfV1cbiAgfTtcblxuICBjb25zdCBwbGFuID0gX2FwaS5hZGRVc2FnZVBsYW4oJ1VzYWdlUGxhbicsIHVzYWdlUGxhblByb3BzKTtcblxuICAvLyBJZiByZXF1aXJlQXBpS2V5IHBhcmFtIGlzIHNldCB0byB0cnVlLCBjcmVhdGUgYSBhcGkga2V5ICYgYXNzb2NpYXRlIHRvIFVzYWdlIFBsYW5cbiAgaWYgKGFwaUdhdGV3YXlQcm9wcz8uZGVmYXVsdE1ldGhvZE9wdGlvbnM/LmFwaUtleVJlcXVpcmVkID09PSB0cnVlKSB7XG4gICAgLy8gQ29uZmlndXJlIFVzYWdlIFBsYW4gd2l0aCBBUEkgS2V5XG4gICAgY29uc3Qga2V5ID0gX2FwaS5hZGRBcGlLZXkoJ0FwaUtleScpO1xuICAgIHBsYW4uYWRkQXBpS2V5KGtleSk7XG4gIH1cblxuICAvLyBSZXR1cm4gdGhlIEFQSSBhbmQgQ1cgUm9sZVxuICByZXR1cm4gW19hcGksIGN3Um9sZV07XG59XG5cbi8qKlxuICogQnVpbGRzIGFuZCByZXR1cm5zIGEgZ2xvYmFsIGFwaS5SZXN0QXBpIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBhbiBBV1MgTGFtYmRhIGZ1bmN0aW9uLlxuICogQHBhcmFtIHNjb3BlIC0gdGhlIGNvbnN0cnVjdCB0byB3aGljaCB0aGUgUmVzdEFwaSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gKiBAcGFyYW0gX2V4aXN0aW5nTGFtYmRhT2JqIC0gYW4gZXhpc3RpbmcgQVdTIExhbWJkYSBmdW5jdGlvbi5cbiAqIEBwYXJhbSBhcGlHYXRld2F5UHJvcHMgLSAob3B0aW9uYWwpIHVzZXItc3BlY2lmaWVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEdsb2JhbExhbWJkYVJlc3RBcGkoc2NvcGU6IENvbnN0cnVjdCwgX2V4aXN0aW5nTGFtYmRhT2JqOiBsYW1iZGEuRnVuY3Rpb24sXG4gIGFwaUdhdGV3YXlQcm9wcz86IGFwaS5MYW1iZGFSZXN0QXBpUHJvcHMsIGxvZ0dyb3VwUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHMpOiBbYXBpLlJlc3RBcGksIGlhbS5Sb2xlIHwgdW5kZWZpbmVkLCBsb2dzLkxvZ0dyb3VwXSB7XG4gIC8vIENvbmZpZ3VyZSBsb2cgZ3JvdXAgZm9yIEFQSSBHYXRld2F5IEFjY2Vzc0xvZ2dpbmdcbiAgY29uc3QgbG9nR3JvdXAgPSBidWlsZExvZ0dyb3VwKHNjb3BlLCAnQXBpQWNjZXNzTG9nR3JvdXAnLCBsb2dHcm91cFByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSBhcGlEZWZhdWx0cy5EZWZhdWx0R2xvYmFsTGFtYmRhUmVzdEFwaVByb3BzKF9leGlzdGluZ0xhbWJkYU9iaiwgbG9nR3JvdXApO1xuICBjb25zdCBbcmVzdEFwaSwgYXBpQ1dSb2xlXSA9IGNvbmZpZ3VyZUxhbWJkYVJlc3RBcGkoc2NvcGUsIGRlZmF1bHRQcm9wcywgYXBpR2F0ZXdheVByb3BzKTtcbiAgcmV0dXJuIFtyZXN0QXBpLCBhcGlDV1JvbGUsIGxvZ0dyb3VwXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW5kIHJldHVybnMgYSByZWdpb25hbCBhcGkuUmVzdEFwaSBkZXNpZ25lZCB0byBiZSB1c2VkIHdpdGggYW4gQVdTIExhbWJkYSBmdW5jdGlvbi5cbiAqIEBwYXJhbSBzY29wZSAtIHRoZSBjb25zdHJ1Y3QgdG8gd2hpY2ggdGhlIFJlc3RBcGkgc2hvdWxkIGJlIGF0dGFjaGVkIHRvLlxuICogQHBhcmFtIF9leGlzdGluZ0xhbWJkYU9iaiAtIGFuIGV4aXN0aW5nIEFXUyBMYW1iZGEgZnVuY3Rpb24uXG4gKiBAcGFyYW0gYXBpR2F0ZXdheVByb3BzIC0gKG9wdGlvbmFsKSB1c2VyLXNwZWNpZmllZCBwcm9wZXJ0aWVzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSZWdpb25hbExhbWJkYVJlc3RBcGkoc2NvcGU6IENvbnN0cnVjdCwgX2V4aXN0aW5nTGFtYmRhT2JqOiBsYW1iZGEuRnVuY3Rpb24sXG4gIGFwaUdhdGV3YXlQcm9wcz86IGFwaS5MYW1iZGFSZXN0QXBpUHJvcHMsIGxvZ0dyb3VwUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHMpOiBbYXBpLlJlc3RBcGksIGlhbS5Sb2xlIHwgdW5kZWZpbmVkLCBsb2dzLkxvZ0dyb3VwXSB7XG4gIC8vIENvbmZpZ3VyZSBsb2cgZ3JvdXAgZm9yIEFQSSBHYXRld2F5IEFjY2Vzc0xvZ2dpbmdcbiAgY29uc3QgbG9nR3JvdXAgPSBidWlsZExvZ0dyb3VwKHNjb3BlLCAnQXBpQWNjZXNzTG9nR3JvdXAnLCBsb2dHcm91cFByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSBhcGlEZWZhdWx0cy5EZWZhdWx0UmVnaW9uYWxMYW1iZGFSZXN0QXBpUHJvcHMoX2V4aXN0aW5nTGFtYmRhT2JqLCBsb2dHcm91cCk7XG4gIGNvbnN0IFtyZXN0QXBpLCBhcGlDV1JvbGVdID0gY29uZmlndXJlTGFtYmRhUmVzdEFwaShzY29wZSwgZGVmYXVsdFByb3BzLCBhcGlHYXRld2F5UHJvcHMpO1xuICByZXR1cm4gW3Jlc3RBcGksIGFwaUNXUm9sZSwgbG9nR3JvdXBdO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbmQgcmV0dXJucyBhIHN0YW5kYXJkIGFwaS5SZXN0QXBpLlxuICogQHBhcmFtIHNjb3BlIC0gdGhlIGNvbnN0cnVjdCB0byB3aGljaCB0aGUgUmVzdEFwaSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gKiBAcGFyYW0gYXBpR2F0ZXdheVByb3BzIC0gKG9wdGlvbmFsKSB1c2VyLXNwZWNpZmllZCBwcm9wZXJ0aWVzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBHbG9iYWxSZXN0QXBpKHNjb3BlOiBDb25zdHJ1Y3QsIGFwaUdhdGV3YXlQcm9wcz86IGFwaS5SZXN0QXBpUHJvcHMsXG4gIGxvZ0dyb3VwUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHMpOiBbYXBpLlJlc3RBcGksIGlhbS5Sb2xlIHwgdW5kZWZpbmVkLCBsb2dzLkxvZ0dyb3VwXSB7XG4gIC8vIENvbmZpZ3VyZSBsb2cgZ3JvdXAgZm9yIEFQSSBHYXRld2F5IEFjY2Vzc0xvZ2dpbmdcbiAgY29uc3QgbG9nR3JvdXAgPSBidWlsZExvZ0dyb3VwKHNjb3BlLCAnQXBpQWNjZXNzTG9nR3JvdXAnLCBsb2dHcm91cFByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSBhcGlEZWZhdWx0cy5EZWZhdWx0R2xvYmFsUmVzdEFwaVByb3BzKGxvZ0dyb3VwKTtcbiAgY29uc3QgW3Jlc3RBcGksIGFwaUNXUm9sZV0gPSBjb25maWd1cmVSZXN0QXBpKHNjb3BlLCBkZWZhdWx0UHJvcHMsIGFwaUdhdGV3YXlQcm9wcyk7XG4gIHJldHVybiBbcmVzdEFwaSwgYXBpQ1dSb2xlLCBsb2dHcm91cF07XG59XG5cbi8qKlxuICogQnVpbGRzIGFuZCByZXR1cm5zIGEgUmVnaW9uYWwgYXBpLlJlc3RBcGkuXG4gKiBAcGFyYW0gc2NvcGUgLSB0aGUgY29uc3RydWN0IHRvIHdoaWNoIHRoZSBSZXN0QXBpIHNob3VsZCBiZSBhdHRhY2hlZCB0by5cbiAqIEBwYXJhbSBhcGlHYXRld2F5UHJvcHMgLSAob3B0aW9uYWwpIHVzZXItc3BlY2lmaWVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlZ2lvbmFsUmVzdEFwaShzY29wZTogQ29uc3RydWN0LCBhcGlHYXRld2F5UHJvcHM/OiBhcGkuUmVzdEFwaVByb3BzLFxuICBsb2dHcm91cFByb3BzPzogbG9ncy5Mb2dHcm91cFByb3BzKTogW2FwaS5SZXN0QXBpLCBpYW0uUm9sZSB8IHVuZGVmaW5lZCwgbG9ncy5Mb2dHcm91cF0ge1xuICAvLyBDb25maWd1cmUgbG9nIGdyb3VwIGZvciBBUEkgR2F0ZXdheSBBY2Nlc3NMb2dnaW5nXG4gIGNvbnN0IGxvZ0dyb3VwID0gYnVpbGRMb2dHcm91cChzY29wZSwgJ0FwaUFjY2Vzc0xvZ0dyb3VwJywgbG9nR3JvdXBQcm9wcyk7XG5cbiAgY29uc3QgZGVmYXVsdFByb3BzID0gYXBpRGVmYXVsdHMuRGVmYXVsdFJlZ2lvbmFsUmVzdEFwaVByb3BzKGxvZ0dyb3VwKTtcbiAgY29uc3QgW3Jlc3RBcGksIGFwaUNXUm9sZV0gPSBjb25maWd1cmVSZXN0QXBpKHNjb3BlLCBkZWZhdWx0UHJvcHMsIGFwaUdhdGV3YXlQcm9wcyk7XG4gIHJldHVybiBbcmVzdEFwaSwgYXBpQ1dSb2xlLCBsb2dHcm91cF07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkUHJveHlNZXRob2RUb0FwaVJlc291cmNlSW5wdXRQYXJhbXMge1xuICByZWFkb25seSBzZXJ2aWNlOiBzdHJpbmcsXG4gIHJlYWRvbmx5IGFjdGlvbj86IHN0cmluZyxcbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZyxcbiAgcmVhZG9ubHkgYXBpUmVzb3VyY2U6IGFwaS5JUmVzb3VyY2UsXG4gIHJlYWRvbmx5IGFwaU1ldGhvZDogc3RyaW5nLFxuICByZWFkb25seSBhcGlHYXRld2F5Um9sZTogSVJvbGUsXG4gIHJlYWRvbmx5IHJlcXVlc3RUZW1wbGF0ZTogc3RyaW5nLFxuICByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZyxcbiAgcmVhZG9ubHkgcmVxdWVzdFZhbGlkYXRvcj86IGFwaS5JUmVxdWVzdFZhbGlkYXRvcixcbiAgcmVhZG9ubHkgcmVxdWVzdE1vZGVsPzogeyBbY29udGVudFR5cGU6IHN0cmluZ106IGFwaS5JTW9kZWw7IH0sXG4gIHJlYWRvbmx5IGF3c0ludGVncmF0aW9uUHJvcHM/OiBhcGkuQXdzSW50ZWdyYXRpb25Qcm9wcyB8IGFueSxcbiAgcmVhZG9ubHkgbWV0aG9kT3B0aW9ucz86IGFwaS5NZXRob2RPcHRpb25zXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRQcm94eU1ldGhvZFRvQXBpUmVzb3VyY2UocGFyYW1zOiBBZGRQcm94eU1ldGhvZFRvQXBpUmVzb3VyY2VJbnB1dFBhcmFtcyk6IGFwaS5NZXRob2Qge1xuICBsZXQgYmFzZVByb3BzOiBhcGkuQXdzSW50ZWdyYXRpb25Qcm9wcyA9IHtcbiAgICBzZXJ2aWNlOiBwYXJhbXMuc2VydmljZSxcbiAgICBpbnRlZ3JhdGlvbkh0dHBNZXRob2Q6IFwiUE9TVFwiLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHBhc3N0aHJvdWdoQmVoYXZpb3I6IGFwaS5QYXNzdGhyb3VnaEJlaGF2aW9yLk5FVkVSLFxuICAgICAgY3JlZGVudGlhbHNSb2xlOiBwYXJhbXMuYXBpR2F0ZXdheVJvbGUsXG4gICAgICByZXF1ZXN0UGFyYW1ldGVyczoge1xuICAgICAgICBcImludGVncmF0aW9uLnJlcXVlc3QuaGVhZGVyLkNvbnRlbnQtVHlwZVwiOiBwYXJhbXMuY29udGVudFR5cGUgPyBwYXJhbXMuY29udGVudFR5cGUgOiBcIidhcHBsaWNhdGlvbi9qc29uJ1wiXG4gICAgICB9LFxuICAgICAgcmVxdWVzdFRlbXBsYXRlczoge1xuICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogcGFyYW1zLnJlcXVlc3RUZW1wbGF0ZVxuICAgICAgfSxcbiAgICAgIGludGVncmF0aW9uUmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzdGF0dXNDb2RlOiBcIjIwMFwiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzdGF0dXNDb2RlOiBcIjUwMFwiLFxuICAgICAgICAgIHJlc3BvbnNlVGVtcGxhdGVzOiB7XG4gICAgICAgICAgICBcInRleHQvaHRtbFwiOiBcIkVycm9yXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNlbGVjdGlvblBhdHRlcm46IFwiNTAwXCJcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfTtcblxuICBsZXQgZXh0cmFQcm9wcztcblxuICBpZiAocGFyYW1zLmFjdGlvbikge1xuICAgIGV4dHJhUHJvcHMgPSB7XG4gICAgICBhY3Rpb246IHBhcmFtcy5hY3Rpb25cbiAgICB9O1xuICB9IGVsc2UgaWYgKHBhcmFtcy5wYXRoKSB7XG4gICAgZXh0cmFQcm9wcyA9IHtcbiAgICAgIHBhdGg6IHBhcmFtcy5wYXRoXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBFcnJvcignRWl0aGVyIGFjdGlvbiBvciBwYXRoIGlzIHJlcXVpcmVkJyk7XG4gIH1cblxuICAvLyBTZXR1cCB0aGUgQVBJIEdhdGV3YXkgQVdTIEludGVncmF0aW9uXG4gIGJhc2VQcm9wcyA9IE9iamVjdC5hc3NpZ24oYmFzZVByb3BzLCBleHRyYVByb3BzKTtcblxuICBsZXQgYXBpR2F0ZXdheUludGVncmF0aW9uO1xuICBjb25zdCBuZXdQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoYmFzZVByb3BzLCBwYXJhbXMuYXdzSW50ZWdyYXRpb25Qcm9wcyk7XG5cbiAgYXBpR2F0ZXdheUludGVncmF0aW9uID0gbmV3IGFwaS5Bd3NJbnRlZ3JhdGlvbihuZXdQcm9wcyk7XG5cbiAgY29uc3QgZGVmYXVsdE1ldGhvZE9wdGlvbnMgPSB7XG4gICAgbWV0aG9kUmVzcG9uc2VzOiBbXG4gICAgICB7XG4gICAgICAgIHN0YXR1c0NvZGU6IFwiMjAwXCIsXG4gICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5Db250ZW50LVR5cGVcIjogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBzdGF0dXNDb2RlOiBcIjUwMFwiLFxuICAgICAgICByZXNwb25zZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuQ29udGVudC1UeXBlXCI6IHRydWVcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICBdLFxuICAgIHJlcXVlc3RWYWxpZGF0b3I6IHBhcmFtcy5yZXF1ZXN0VmFsaWRhdG9yLFxuICAgIHJlcXVlc3RNb2RlbHM6IHBhcmFtcy5yZXF1ZXN0TW9kZWxcbiAgfTtcblxuICBsZXQgYXBpTWV0aG9kO1xuXG4gIC8vIFNldHVwIHRoZSBBUEkgR2F0ZXdheSBtZXRob2RcbiAgY29uc3Qgb3ZlcnJpZGVuUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRNZXRob2RPcHRpb25zLCBwYXJhbXMubWV0aG9kT3B0aW9ucyk7XG4gIGFwaU1ldGhvZCA9IHBhcmFtcy5hcGlSZXNvdXJjZS5hZGRNZXRob2QocGFyYW1zLmFwaU1ldGhvZCwgYXBpR2F0ZXdheUludGVncmF0aW9uLCBvdmVycmlkZW5Qcm9wcyk7XG5cbiAgcmV0dXJuIGFwaU1ldGhvZDtcbn0iXX0=
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpZ2F0ZXdheS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcGlnYXRld2F5LWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUtILHFDQUFxQztBQUNyQywrQ0FBK0M7QUFDL0Msd0NBQXdDO0FBQ3hDLHFEQUFxRDtBQUNyRCwrRUFBOEQ7QUFDOUQsbUNBQWdFO0FBS2hFOzs7O0dBSUc7QUFDSCxTQUFTLDZCQUE2QixDQUFDLEtBQWdCLEVBQUUsSUFBaUI7SUFDeEUsdURBQXVEO0lBQ3ZELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRTtRQUMvRSxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUM7UUFDL0QsY0FBYyxFQUFFO1lBQ2QsaUNBQWlDLEVBQUUsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDO2dCQUN4RCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7d0JBQ25DLE9BQU8sRUFBRTs0QkFDUCxxQkFBcUI7NEJBQ3JCLHNCQUFzQjs0QkFDdEIsd0JBQXdCOzRCQUN4Qix5QkFBeUI7NEJBQ3pCLG1CQUFtQjs0QkFDbkIsbUJBQW1COzRCQUNuQixzQkFBc0I7eUJBQ3ZCO3dCQUNELFNBQVMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQztxQkFDdkYsQ0FBQyxDQUFDO2FBQ0osQ0FBQztTQUNIO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsb0ZBQW9GO0lBQ3BGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBbUIsQ0FBQztJQUNqRSxNQUFNLFVBQVUsR0FBbUIsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxzQkFBc0IsRUFBRTtRQUNuRixpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQyxPQUFPO0tBQ2pELENBQUMsQ0FBQztJQUNILFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFaEMsb0NBQW9DO0lBQ3BDLE1BQU0sVUFBVSxHQUFzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQXNCLENBQUM7SUFDN0csMkJBQW1CLENBQUMsVUFBVSxFQUFFO1FBQzlCO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsNklBQTZJO1NBQ3RKO0tBQ0YsQ0FBQyxDQUFDO0lBRUgscUJBQXFCO0lBQ3JCLE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FBQyxLQUFnQixFQUFFLHNCQUE4QyxFQUM5RixlQUF3QztJQUV4Qyw2R0FBNkc7SUFDN0csSUFBSSxlQUFlLEVBQUUsYUFBYSxFQUFFO1FBQ2xDLE1BQU0sS0FBSyxDQUFDLGdIQUFnSCxDQUFDLENBQUM7S0FDL0g7SUFFRCx3QkFBd0I7SUFDeEIsSUFBSSxJQUFpQixDQUFDO0lBQ3RCLElBQUksZUFBZSxFQUFFO1FBQ25CLHdFQUF3RTtRQUN4RSxNQUFNLGdCQUFnQixHQUFHLHdCQUFnQixDQUFDLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlHLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ3hFO1NBQU07UUFDTCxtRUFBbUU7UUFDbkUsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixDQUFDLENBQUM7S0FDOUU7SUFDRCwrQkFBK0I7SUFDL0IsSUFBSSxNQUFNLENBQUM7SUFFWCxJQUFJLGVBQWUsRUFBRSxjQUFjLEtBQUssS0FBSyxFQUFFO1FBQzdDLE1BQU0sR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckQ7SUFFRCx1QkFBdUI7SUFDdkIsTUFBTSxjQUFjLEdBQXVCO1FBQ3pDLFNBQVMsRUFBRSxDQUFDO2dCQUNWLEdBQUcsRUFBRSxJQUFJO2dCQUNULEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZTthQUM1QixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRTVELG9GQUFvRjtJQUNwRixJQUFJLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEtBQUssSUFBSSxFQUFFO1FBQ2xFLG9DQUFvQztRQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckI7SUFFRCw2QkFBNkI7SUFDN0IsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLEtBQWdCLEVBQUUsc0JBQXdDLEVBQ2xGLGVBQWtDO0lBRWxDLDZHQUE2RztJQUM3RyxJQUFJLGVBQWUsRUFBRSxhQUFhLEVBQUU7UUFDbEMsTUFBTSxLQUFLLENBQUMsZ0hBQWdILENBQUMsQ0FBQztLQUMvSDtJQUVELGlCQUFpQjtJQUNqQixJQUFJLElBQWlCLENBQUM7SUFFdEIsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5RyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUUzRCxJQUFJLE1BQU0sQ0FBQztJQUVYLCtCQUErQjtJQUMvQixJQUFJLGVBQWUsRUFBRSxjQUFjLEtBQUssS0FBSyxFQUFFO1FBQzdDLE1BQU0sR0FBRyw2QkFBNkIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDckQ7SUFFRCx1QkFBdUI7SUFDdkIsTUFBTSxjQUFjLEdBQXVCO1FBQ3pDLFNBQVMsRUFBRSxDQUFDO2dCQUNWLEdBQUcsRUFBRSxJQUFJO2dCQUNULEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZTthQUM1QixDQUFDO0tBQ0gsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRTVELG9GQUFvRjtJQUNwRixJQUFJLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEtBQUssSUFBSSxFQUFFO1FBQ2xFLG9DQUFvQztRQUNwQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDckI7SUFFRCw2QkFBNkI7SUFDN0IsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxLQUFnQixFQUFFLGtCQUFtQyxFQUN2RixlQUF3QyxFQUFFLGFBQWtDO0lBQzVFLG9EQUFvRDtJQUNwRCxNQUFNLFFBQVEsR0FBRywyQ0FBYSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUUxRSxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsK0JBQStCLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0YsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzFGLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFSRCxrREFRQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxrQkFBbUMsRUFDekYsZUFBd0MsRUFBRSxhQUFrQztJQUM1RSxvREFBb0Q7SUFDcEQsTUFBTSxRQUFRLEdBQUcsMkNBQWEsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFMUUsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLGlDQUFpQyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMxRixPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBUkQsc0RBUUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsYUFBYSxDQUFDLEtBQWdCLEVBQUUsZUFBa0MsRUFDaEYsYUFBa0M7SUFDbEMsb0RBQW9EO0lBQ3BELE1BQU0sUUFBUSxHQUFHLDJDQUFhLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTFFLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRSxNQUFNLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDcEYsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQVJELHNDQVFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxLQUFnQixFQUFFLGVBQWtDLEVBQ2xGLGFBQWtDO0lBQ2xDLG9EQUFvRDtJQUNwRCxNQUFNLFFBQVEsR0FBRywyQ0FBYSxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUUxRSxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkUsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3BGLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFSRCwwQ0FRQztBQWlCRCxTQUFnQiwyQkFBMkIsQ0FBQyxNQUE4QztJQUN4RixJQUFJLFNBQVMsR0FBNEI7UUFDdkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLHFCQUFxQixFQUFFLE1BQU07UUFDN0IsT0FBTyxFQUFFO1lBQ1AsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEtBQUs7WUFDbEQsZUFBZSxFQUFFLE1BQU0sQ0FBQyxjQUFjO1lBQ3RDLGlCQUFpQixFQUFFO2dCQUNqQix5Q0FBeUMsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7YUFDMUc7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDaEIsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGVBQWU7YUFDM0M7WUFDRCxvQkFBb0IsRUFBRTtnQkFDcEI7b0JBQ0UsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCO2dCQUNEO29CQUNFLFVBQVUsRUFBRSxLQUFLO29CQUNqQixpQkFBaUIsRUFBRTt3QkFDakIsV0FBVyxFQUFFLE9BQU87cUJBQ3JCO29CQUNELGdCQUFnQixFQUFFLEtBQUs7aUJBQ3hCO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFFRixJQUFJLFVBQVUsQ0FBQztJQUVmLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNqQixVQUFVLEdBQUc7WUFDWCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07U0FDdEIsQ0FBQztLQUNIO1NBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ3RCLFVBQVUsR0FBRztZQUNYLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtTQUNsQixDQUFDO0tBQ0g7U0FBTTtRQUNMLE1BQU0sS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7S0FDbEQ7SUFFRCx3Q0FBd0M7SUFDeEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRWpELElBQUkscUJBQXFCLENBQUM7SUFDMUIsTUFBTSxRQUFRLEdBQUcsd0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRXpFLHFCQUFxQixHQUFHLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6RCxNQUFNLG9CQUFvQixHQUFHO1FBQzNCLGVBQWUsRUFBRTtZQUNmO2dCQUNFLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixrQkFBa0IsRUFBRTtvQkFDbEIscUNBQXFDLEVBQUUsSUFBSTtpQkFDNUM7YUFDRjtZQUNEO2dCQUNFLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixrQkFBa0IsRUFBRTtvQkFDbEIscUNBQXFDLEVBQUUsSUFBSTtpQkFDNUM7YUFDRjtTQUNGO1FBQ0QsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtRQUN6QyxhQUFhLEVBQUUsTUFBTSxDQUFDLFlBQVk7S0FDbkMsQ0FBQztJQUVGLElBQUksU0FBUyxDQUFDO0lBRWQsK0JBQStCO0lBQy9CLE1BQU0sY0FBYyxHQUFHLHdCQUFnQixDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRixTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUVsRyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBNUVELGtFQTRFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCAyMDIyIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gSW1wb3J0c1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdAYXdzLWNkay9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBhcGkgZnJvbSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgYXBpRGVmYXVsdHMgZnJvbSAnLi9hcGlnYXRld2F5LWRlZmF1bHRzJztcbmltcG9ydCB7IGJ1aWxkTG9nR3JvdXAgfSBmcm9tICcuL2Nsb3Vkd2F0Y2gtbG9nLWdyb3VwLWhlbHBlcic7XG5pbXBvcnQgeyBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBJUm9sZSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1pYW0nO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbi8qKlxuICogQ3JlYXRlIGFuZCBjb25maWd1cmVzIGFjY2VzcyBsb2dnaW5nIGZvciBBUEkgR2F0ZXdheSByZXNvdXJjZXMuXG4gKiBAcGFyYW0gc2NvcGUgLSB0aGUgY29uc3RydWN0IHRvIHdoaWNoIHRoZSBhY2Nlc3MgbG9nZ2luZyBjYXBhYmlsaXRpZXMgc2hvdWxkIGJlIGF0dGFjaGVkIHRvLlxuICogQHBhcmFtIF9hcGkgLSBhbiBleGlzdGluZyBhcGkuUmVzdEFwaSBvciBhcGkuTGFtYmRhUmVzdEFwaS5cbiAqL1xuZnVuY3Rpb24gY29uZmlndXJlQ2xvdWR3YXRjaFJvbGVGb3JBcGkoc2NvcGU6IENvbnN0cnVjdCwgX2FwaTogYXBpLlJlc3RBcGkpOiBpYW0uUm9sZSB7XG4gIC8vIFNldHVwIHRoZSBJQU0gUm9sZSBmb3IgQVBJIEdhdGV3YXkgQ2xvdWRXYXRjaCBhY2Nlc3NcbiAgY29uc3QgcmVzdEFwaUNsb3Vkd2F0Y2hSb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlLCAnTGFtYmRhUmVzdEFwaUNsb3VkV2F0Y2hSb2xlJywge1xuICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdhcGlnYXRld2F5LmFtYXpvbmF3cy5jb20nKSxcbiAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgTGFtYmRhUmVzdEFwaUNsb3VkV2F0Y2hSb2xlUG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgc3RhdGVtZW50czogW25ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAnbG9nczpDcmVhdGVMb2dHcm91cCcsXG4gICAgICAgICAgICAnbG9nczpDcmVhdGVMb2dTdHJlYW0nLFxuICAgICAgICAgICAgJ2xvZ3M6RGVzY3JpYmVMb2dHcm91cHMnLFxuICAgICAgICAgICAgJ2xvZ3M6RGVzY3JpYmVMb2dTdHJlYW1zJyxcbiAgICAgICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cycsXG4gICAgICAgICAgICAnbG9nczpHZXRMb2dFdmVudHMnLFxuICAgICAgICAgICAgJ2xvZ3M6RmlsdGVyTG9nRXZlbnRzJ1xuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpsb2dzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfToqYF1cbiAgICAgICAgfSldXG4gICAgICB9KVxuICAgIH1cbiAgfSk7XG4gIC8vIENyZWF0ZSBhbmQgY29uZmlndXJlIEFXUzo6QXBpR2F0ZXdheTo6QWNjb3VudCB3aXRoIENsb3VkV2F0Y2ggUm9sZSBmb3IgQXBpR2F0ZXdheVxuICBjb25zdCBDZm5BcGkgPSBfYXBpLm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGFwaS5DZm5SZXN0QXBpO1xuICBjb25zdCBjZm5BY2NvdW50OiBhcGkuQ2ZuQWNjb3VudCA9IG5ldyBhcGkuQ2ZuQWNjb3VudChzY29wZSwgJ0xhbWJkYVJlc3RBcGlBY2NvdW50Jywge1xuICAgIGNsb3VkV2F0Y2hSb2xlQXJuOiByZXN0QXBpQ2xvdWR3YXRjaFJvbGUucm9sZUFyblxuICB9KTtcbiAgY2ZuQWNjb3VudC5hZGREZXBlbmRzT24oQ2ZuQXBpKTtcblxuICAvLyBTdXBwcmVzcyBDZm4gTmFnIHdhcm5pbmcgZm9yIEFQSUdcbiAgY29uc3QgZGVwbG95bWVudDogYXBpLkNmbkRlcGxveW1lbnQgPSBfYXBpLmxhdGVzdERlcGxveW1lbnQ/Lm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGFwaS5DZm5EZXBsb3ltZW50O1xuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGRlcGxveW1lbnQsIFtcbiAgICB7XG4gICAgICBpZDogJ1c0NScsXG4gICAgICByZWFzb246IGBBcGlHYXRld2F5IGhhcyBBY2Nlc3NMb2dnaW5nIGVuYWJsZWQgaW4gQVdTOjpBcGlHYXRld2F5OjpTdGFnZSByZXNvdXJjZSwgYnV0IGNmbl9uYWcgY2hlY2tlcyBmb3IgaXQgaW4gQVdTOjpBcGlHYXRld2F5OjpEZXBsb3ltZW50IHJlc291cmNlYFxuICAgIH1cbiAgXSk7XG5cbiAgLy8gUmV0dXJuIHRoZSBDVyBSb2xlXG4gIHJldHVybiByZXN0QXBpQ2xvdWR3YXRjaFJvbGU7XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbmQgY29uZmlndXJlcyBhbiBhcGkuTGFtYmRhUmVzdEFwaS5cbiAqIEBwYXJhbSBzY29wZSAtIHRoZSBjb25zdHJ1Y3QgdG8gd2hpY2ggdGhlIExhbWJkYVJlc3RBcGkgc2hvdWxkIGJlIGF0dGFjaGVkIHRvLlxuICogQHBhcmFtIGRlZmF1bHRBcGlHYXRld2F5UHJvcHMgLSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGZvciB0aGUgTGFtYmRhUmVzdEFwaS5cbiAqIEBwYXJhbSBhcGlHYXRld2F5UHJvcHMgLSAob3B0aW9uYWwpIHVzZXItc3BlY2lmaWVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcy5cbiAqL1xuZnVuY3Rpb24gY29uZmlndXJlTGFtYmRhUmVzdEFwaShzY29wZTogQ29uc3RydWN0LCBkZWZhdWx0QXBpR2F0ZXdheVByb3BzOiBhcGkuTGFtYmRhUmVzdEFwaVByb3BzLFxuICBhcGlHYXRld2F5UHJvcHM/OiBhcGkuTGFtYmRhUmVzdEFwaVByb3BzKTogW2FwaS5SZXN0QXBpLCBpYW0uUm9sZSB8IHVuZGVmaW5lZF0ge1xuXG4gIC8vIEFQSSBHYXRld2F5IGRvZXNuJ3QgYWxsb3cgYm90aCBlbmRwb2ludFR5cGVzIGFuZCBlbmRwb2ludENvbmZpZ3VyYXRpb24sIGNoZWNrIHdoZXRoZXIgZW5kUG9pbnRUeXBlcyBleGlzdHNcbiAgaWYgKGFwaUdhdGV3YXlQcm9wcz8uZW5kcG9pbnRUeXBlcykge1xuICAgIHRocm93IEVycm9yKCdTb2x1dGlvbnMgQ29uc3RydWN0cyBpbnRlcm5hbGx5IHVzZXMgZW5kcG9pbnRDb25maWd1cmF0aW9uLCB1c2UgZW5kcG9pbnRDb25maWd1cmF0aW9uIGluc3RlYWQgb2YgZW5kcG9pbnRUeXBlcycpO1xuICB9XG5cbiAgLy8gRGVmaW5lIHRoZSBBUEkgb2JqZWN0XG4gIGxldCBfYXBpOiBhcGkuUmVzdEFwaTtcbiAgaWYgKGFwaUdhdGV3YXlQcm9wcykge1xuICAgIC8vIElmIHByb3BlcnR5IG92ZXJyaWRlcyBoYXZlIGJlZW4gcHJvdmlkZWQsIGluY29ycG9yYXRlIHRoZW0gYW5kIGRlcGxveVxuICAgIGNvbnN0IF9hcGlHYXRld2F5UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRBcGlHYXRld2F5UHJvcHMsIGFwaUdhdGV3YXlQcm9wcywgeyBjbG91ZFdhdGNoUm9sZTogZmFsc2UgfSk7XG4gICAgX2FwaSA9IG5ldyBhcGkuTGFtYmRhUmVzdEFwaShzY29wZSwgJ0xhbWJkYVJlc3RBcGknLCBfYXBpR2F0ZXdheVByb3BzKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBJZiBubyBwcm9wZXJ0eSBvdmVycmlkZXMsIGRlcGxveSB1c2luZyB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgX2FwaSA9IG5ldyBhcGkuTGFtYmRhUmVzdEFwaShzY29wZSwgJ0xhbWJkYVJlc3RBcGknLCBkZWZhdWx0QXBpR2F0ZXdheVByb3BzKTtcbiAgfVxuICAvLyBDb25maWd1cmUgQVBJIGFjY2VzcyBsb2dnaW5nXG4gIGxldCBjd1JvbGU7XG5cbiAgaWYgKGFwaUdhdGV3YXlQcm9wcz8uY2xvdWRXYXRjaFJvbGUgIT09IGZhbHNlKSB7XG4gICAgY3dSb2xlID0gY29uZmlndXJlQ2xvdWR3YXRjaFJvbGVGb3JBcGkoc2NvcGUsIF9hcGkpO1xuICB9XG5cbiAgLy8gQ29uZmlndXJlIFVzYWdlIFBsYW5cbiAgY29uc3QgdXNhZ2VQbGFuUHJvcHM6IGFwaS5Vc2FnZVBsYW5Qcm9wcyA9IHtcbiAgICBhcGlTdGFnZXM6IFt7XG4gICAgICBhcGk6IF9hcGksXG4gICAgICBzdGFnZTogX2FwaS5kZXBsb3ltZW50U3RhZ2VcbiAgICB9XVxuICB9O1xuXG4gIGNvbnN0IHBsYW4gPSBfYXBpLmFkZFVzYWdlUGxhbignVXNhZ2VQbGFuJywgdXNhZ2VQbGFuUHJvcHMpO1xuXG4gIC8vIElmIHJlcXVpcmVBcGlLZXkgcGFyYW0gaXMgc2V0IHRvIHRydWUsIGNyZWF0ZSBhIGFwaSBrZXkgJiBhc3NvY2lhdGUgdG8gVXNhZ2UgUGxhblxuICBpZiAoYXBpR2F0ZXdheVByb3BzPy5kZWZhdWx0TWV0aG9kT3B0aW9ucz8uYXBpS2V5UmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAvLyBDb25maWd1cmUgVXNhZ2UgUGxhbiB3aXRoIEFQSSBLZXlcbiAgICBjb25zdCBrZXkgPSBfYXBpLmFkZEFwaUtleSgnQXBpS2V5Jyk7XG4gICAgcGxhbi5hZGRBcGlLZXkoa2V5KTtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgQVBJIGFuZCBDVyBSb2xlXG4gIHJldHVybiBbX2FwaSwgY3dSb2xlXTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuZCBjb25maWd1cmVzIGFuIGFwaS5SZXN0QXBpLlxuICogQHBhcmFtIHNjb3BlIC0gdGhlIGNvbnN0cnVjdCB0byB3aGljaCB0aGUgUmVzdEFwaSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gKiBAcGFyYW0gZGVmYXVsdEFwaUdhdGV3YXlQcm9wcyAtIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgZm9yIHRoZSBSZXN0QXBpLlxuICogQHBhcmFtIGFwaUdhdGV3YXlQcm9wcyAtIChvcHRpb25hbCkgdXNlci1zcGVjaWZpZWQgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzLlxuICovXG5mdW5jdGlvbiBjb25maWd1cmVSZXN0QXBpKHNjb3BlOiBDb25zdHJ1Y3QsIGRlZmF1bHRBcGlHYXRld2F5UHJvcHM6IGFwaS5SZXN0QXBpUHJvcHMsXG4gIGFwaUdhdGV3YXlQcm9wcz86IGFwaS5SZXN0QXBpUHJvcHMpOiBbYXBpLlJlc3RBcGksIGlhbS5Sb2xlIHwgdW5kZWZpbmVkXSB7XG5cbiAgLy8gQVBJIEdhdGV3YXkgZG9lc24ndCBhbGxvdyBib3RoIGVuZHBvaW50VHlwZXMgYW5kIGVuZHBvaW50Q29uZmlndXJhdGlvbiwgY2hlY2sgd2hldGhlciBlbmRQb2ludFR5cGVzIGV4aXN0c1xuICBpZiAoYXBpR2F0ZXdheVByb3BzPy5lbmRwb2ludFR5cGVzKSB7XG4gICAgdGhyb3cgRXJyb3IoJ1NvbHV0aW9ucyBDb25zdHJ1Y3RzIGludGVybmFsbHkgdXNlcyBlbmRwb2ludENvbmZpZ3VyYXRpb24sIHVzZSBlbmRwb2ludENvbmZpZ3VyYXRpb24gaW5zdGVhZCBvZiBlbmRwb2ludFR5cGVzJyk7XG4gIH1cblxuICAvLyBEZWZpbmUgdGhlIEFQSVxuICBsZXQgX2FwaTogYXBpLlJlc3RBcGk7XG5cbiAgY29uc3QgX2FwaUdhdGV3YXlQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdEFwaUdhdGV3YXlQcm9wcywgYXBpR2F0ZXdheVByb3BzLCB7IGNsb3VkV2F0Y2hSb2xlOiBmYWxzZSB9KTtcbiAgX2FwaSA9IG5ldyBhcGkuUmVzdEFwaShzY29wZSwgJ1Jlc3RBcGknLCBfYXBpR2F0ZXdheVByb3BzKTtcblxuICBsZXQgY3dSb2xlO1xuXG4gIC8vIENvbmZpZ3VyZSBBUEkgYWNjZXNzIGxvZ2dpbmdcbiAgaWYgKGFwaUdhdGV3YXlQcm9wcz8uY2xvdWRXYXRjaFJvbGUgIT09IGZhbHNlKSB7XG4gICAgY3dSb2xlID0gY29uZmlndXJlQ2xvdWR3YXRjaFJvbGVGb3JBcGkoc2NvcGUsIF9hcGkpO1xuICB9XG5cbiAgLy8gQ29uZmlndXJlIFVzYWdlIFBsYW5cbiAgY29uc3QgdXNhZ2VQbGFuUHJvcHM6IGFwaS5Vc2FnZVBsYW5Qcm9wcyA9IHtcbiAgICBhcGlTdGFnZXM6IFt7XG4gICAgICBhcGk6IF9hcGksXG4gICAgICBzdGFnZTogX2FwaS5kZXBsb3ltZW50U3RhZ2VcbiAgICB9XVxuICB9O1xuXG4gIGNvbnN0IHBsYW4gPSBfYXBpLmFkZFVzYWdlUGxhbignVXNhZ2VQbGFuJywgdXNhZ2VQbGFuUHJvcHMpO1xuXG4gIC8vIElmIHJlcXVpcmVBcGlLZXkgcGFyYW0gaXMgc2V0IHRvIHRydWUsIGNyZWF0ZSBhIGFwaSBrZXkgJiBhc3NvY2lhdGUgdG8gVXNhZ2UgUGxhblxuICBpZiAoYXBpR2F0ZXdheVByb3BzPy5kZWZhdWx0TWV0aG9kT3B0aW9ucz8uYXBpS2V5UmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAvLyBDb25maWd1cmUgVXNhZ2UgUGxhbiB3aXRoIEFQSSBLZXlcbiAgICBjb25zdCBrZXkgPSBfYXBpLmFkZEFwaUtleSgnQXBpS2V5Jyk7XG4gICAgcGxhbi5hZGRBcGlLZXkoa2V5KTtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgQVBJIGFuZCBDVyBSb2xlXG4gIHJldHVybiBbX2FwaSwgY3dSb2xlXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW5kIHJldHVybnMgYSBnbG9iYWwgYXBpLlJlc3RBcGkgZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIGFuIEFXUyBMYW1iZGEgZnVuY3Rpb24uXG4gKiBAcGFyYW0gc2NvcGUgLSB0aGUgY29uc3RydWN0IHRvIHdoaWNoIHRoZSBSZXN0QXBpIHNob3VsZCBiZSBhdHRhY2hlZCB0by5cbiAqIEBwYXJhbSBfZXhpc3RpbmdMYW1iZGFPYmogLSBhbiBleGlzdGluZyBBV1MgTGFtYmRhIGZ1bmN0aW9uLlxuICogQHBhcmFtIGFwaUdhdGV3YXlQcm9wcyAtIChvcHRpb25hbCkgdXNlci1zcGVjaWZpZWQgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gR2xvYmFsTGFtYmRhUmVzdEFwaShzY29wZTogQ29uc3RydWN0LCBfZXhpc3RpbmdMYW1iZGFPYmo6IGxhbWJkYS5GdW5jdGlvbixcbiAgYXBpR2F0ZXdheVByb3BzPzogYXBpLkxhbWJkYVJlc3RBcGlQcm9wcywgbG9nR3JvdXBQcm9wcz86IGxvZ3MuTG9nR3JvdXBQcm9wcyk6IFthcGkuUmVzdEFwaSwgaWFtLlJvbGUgfCB1bmRlZmluZWQsIGxvZ3MuTG9nR3JvdXBdIHtcbiAgLy8gQ29uZmlndXJlIGxvZyBncm91cCBmb3IgQVBJIEdhdGV3YXkgQWNjZXNzTG9nZ2luZ1xuICBjb25zdCBsb2dHcm91cCA9IGJ1aWxkTG9nR3JvdXAoc2NvcGUsICdBcGlBY2Nlc3NMb2dHcm91cCcsIGxvZ0dyb3VwUHJvcHMpO1xuXG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IGFwaURlZmF1bHRzLkRlZmF1bHRHbG9iYWxMYW1iZGFSZXN0QXBpUHJvcHMoX2V4aXN0aW5nTGFtYmRhT2JqLCBsb2dHcm91cCk7XG4gIGNvbnN0IFtyZXN0QXBpLCBhcGlDV1JvbGVdID0gY29uZmlndXJlTGFtYmRhUmVzdEFwaShzY29wZSwgZGVmYXVsdFByb3BzLCBhcGlHYXRld2F5UHJvcHMpO1xuICByZXR1cm4gW3Jlc3RBcGksIGFwaUNXUm9sZSwgbG9nR3JvdXBdO1xufVxuXG4vKipcbiAqIEJ1aWxkcyBhbmQgcmV0dXJucyBhIHJlZ2lvbmFsIGFwaS5SZXN0QXBpIGRlc2lnbmVkIHRvIGJlIHVzZWQgd2l0aCBhbiBBV1MgTGFtYmRhIGZ1bmN0aW9uLlxuICogQHBhcmFtIHNjb3BlIC0gdGhlIGNvbnN0cnVjdCB0byB3aGljaCB0aGUgUmVzdEFwaSBzaG91bGQgYmUgYXR0YWNoZWQgdG8uXG4gKiBAcGFyYW0gX2V4aXN0aW5nTGFtYmRhT2JqIC0gYW4gZXhpc3RpbmcgQVdTIExhbWJkYSBmdW5jdGlvbi5cbiAqIEBwYXJhbSBhcGlHYXRld2F5UHJvcHMgLSAob3B0aW9uYWwpIHVzZXItc3BlY2lmaWVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlZ2lvbmFsTGFtYmRhUmVzdEFwaShzY29wZTogQ29uc3RydWN0LCBfZXhpc3RpbmdMYW1iZGFPYmo6IGxhbWJkYS5GdW5jdGlvbixcbiAgYXBpR2F0ZXdheVByb3BzPzogYXBpLkxhbWJkYVJlc3RBcGlQcm9wcywgbG9nR3JvdXBQcm9wcz86IGxvZ3MuTG9nR3JvdXBQcm9wcyk6IFthcGkuUmVzdEFwaSwgaWFtLlJvbGUgfCB1bmRlZmluZWQsIGxvZ3MuTG9nR3JvdXBdIHtcbiAgLy8gQ29uZmlndXJlIGxvZyBncm91cCBmb3IgQVBJIEdhdGV3YXkgQWNjZXNzTG9nZ2luZ1xuICBjb25zdCBsb2dHcm91cCA9IGJ1aWxkTG9nR3JvdXAoc2NvcGUsICdBcGlBY2Nlc3NMb2dHcm91cCcsIGxvZ0dyb3VwUHJvcHMpO1xuXG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IGFwaURlZmF1bHRzLkRlZmF1bHRSZWdpb25hbExhbWJkYVJlc3RBcGlQcm9wcyhfZXhpc3RpbmdMYW1iZGFPYmosIGxvZ0dyb3VwKTtcbiAgY29uc3QgW3Jlc3RBcGksIGFwaUNXUm9sZV0gPSBjb25maWd1cmVMYW1iZGFSZXN0QXBpKHNjb3BlLCBkZWZhdWx0UHJvcHMsIGFwaUdhdGV3YXlQcm9wcyk7XG4gIHJldHVybiBbcmVzdEFwaSwgYXBpQ1dSb2xlLCBsb2dHcm91cF07XG59XG5cbi8qKlxuICogQnVpbGRzIGFuZCByZXR1cm5zIGEgc3RhbmRhcmQgYXBpLlJlc3RBcGkuXG4gKiBAcGFyYW0gc2NvcGUgLSB0aGUgY29uc3RydWN0IHRvIHdoaWNoIHRoZSBSZXN0QXBpIHNob3VsZCBiZSBhdHRhY2hlZCB0by5cbiAqIEBwYXJhbSBhcGlHYXRld2F5UHJvcHMgLSAob3B0aW9uYWwpIHVzZXItc3BlY2lmaWVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEdsb2JhbFJlc3RBcGkoc2NvcGU6IENvbnN0cnVjdCwgYXBpR2F0ZXdheVByb3BzPzogYXBpLlJlc3RBcGlQcm9wcyxcbiAgbG9nR3JvdXBQcm9wcz86IGxvZ3MuTG9nR3JvdXBQcm9wcyk6IFthcGkuUmVzdEFwaSwgaWFtLlJvbGUgfCB1bmRlZmluZWQsIGxvZ3MuTG9nR3JvdXBdIHtcbiAgLy8gQ29uZmlndXJlIGxvZyBncm91cCBmb3IgQVBJIEdhdGV3YXkgQWNjZXNzTG9nZ2luZ1xuICBjb25zdCBsb2dHcm91cCA9IGJ1aWxkTG9nR3JvdXAoc2NvcGUsICdBcGlBY2Nlc3NMb2dHcm91cCcsIGxvZ0dyb3VwUHJvcHMpO1xuXG4gIGNvbnN0IGRlZmF1bHRQcm9wcyA9IGFwaURlZmF1bHRzLkRlZmF1bHRHbG9iYWxSZXN0QXBpUHJvcHMobG9nR3JvdXApO1xuICBjb25zdCBbcmVzdEFwaSwgYXBpQ1dSb2xlXSA9IGNvbmZpZ3VyZVJlc3RBcGkoc2NvcGUsIGRlZmF1bHRQcm9wcywgYXBpR2F0ZXdheVByb3BzKTtcbiAgcmV0dXJuIFtyZXN0QXBpLCBhcGlDV1JvbGUsIGxvZ0dyb3VwXTtcbn1cblxuLyoqXG4gKiBCdWlsZHMgYW5kIHJldHVybnMgYSBSZWdpb25hbCBhcGkuUmVzdEFwaS5cbiAqIEBwYXJhbSBzY29wZSAtIHRoZSBjb25zdHJ1Y3QgdG8gd2hpY2ggdGhlIFJlc3RBcGkgc2hvdWxkIGJlIGF0dGFjaGVkIHRvLlxuICogQHBhcmFtIGFwaUdhdGV3YXlQcm9wcyAtIChvcHRpb25hbCkgdXNlci1zcGVjaWZpZWQgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUmVnaW9uYWxSZXN0QXBpKHNjb3BlOiBDb25zdHJ1Y3QsIGFwaUdhdGV3YXlQcm9wcz86IGFwaS5SZXN0QXBpUHJvcHMsXG4gIGxvZ0dyb3VwUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHMpOiBbYXBpLlJlc3RBcGksIGlhbS5Sb2xlIHwgdW5kZWZpbmVkLCBsb2dzLkxvZ0dyb3VwXSB7XG4gIC8vIENvbmZpZ3VyZSBsb2cgZ3JvdXAgZm9yIEFQSSBHYXRld2F5IEFjY2Vzc0xvZ2dpbmdcbiAgY29uc3QgbG9nR3JvdXAgPSBidWlsZExvZ0dyb3VwKHNjb3BlLCAnQXBpQWNjZXNzTG9nR3JvdXAnLCBsb2dHcm91cFByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHMgPSBhcGlEZWZhdWx0cy5EZWZhdWx0UmVnaW9uYWxSZXN0QXBpUHJvcHMobG9nR3JvdXApO1xuICBjb25zdCBbcmVzdEFwaSwgYXBpQ1dSb2xlXSA9IGNvbmZpZ3VyZVJlc3RBcGkoc2NvcGUsIGRlZmF1bHRQcm9wcywgYXBpR2F0ZXdheVByb3BzKTtcbiAgcmV0dXJuIFtyZXN0QXBpLCBhcGlDV1JvbGUsIGxvZ0dyb3VwXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRQcm94eU1ldGhvZFRvQXBpUmVzb3VyY2VJbnB1dFBhcmFtcyB7XG4gIHJlYWRvbmx5IHNlcnZpY2U6IHN0cmluZyxcbiAgcmVhZG9ubHkgYWN0aW9uPzogc3RyaW5nLFxuICByZWFkb25seSBwYXRoPzogc3RyaW5nLFxuICByZWFkb25seSBhcGlSZXNvdXJjZTogYXBpLklSZXNvdXJjZSxcbiAgcmVhZG9ubHkgYXBpTWV0aG9kOiBzdHJpbmcsXG4gIHJlYWRvbmx5IGFwaUdhdGV3YXlSb2xlOiBJUm9sZSxcbiAgcmVhZG9ubHkgcmVxdWVzdFRlbXBsYXRlOiBzdHJpbmcsXG4gIHJlYWRvbmx5IGNvbnRlbnRUeXBlPzogc3RyaW5nLFxuICByZWFkb25seSByZXF1ZXN0VmFsaWRhdG9yPzogYXBpLklSZXF1ZXN0VmFsaWRhdG9yLFxuICByZWFkb25seSByZXF1ZXN0TW9kZWw/OiB7IFtjb250ZW50VHlwZTogc3RyaW5nXTogYXBpLklNb2RlbDsgfSxcbiAgcmVhZG9ubHkgYXdzSW50ZWdyYXRpb25Qcm9wcz86IGFwaS5Bd3NJbnRlZ3JhdGlvblByb3BzIHwgYW55LFxuICByZWFkb25seSBtZXRob2RPcHRpb25zPzogYXBpLk1ldGhvZE9wdGlvbnNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFByb3h5TWV0aG9kVG9BcGlSZXNvdXJjZShwYXJhbXM6IEFkZFByb3h5TWV0aG9kVG9BcGlSZXNvdXJjZUlucHV0UGFyYW1zKTogYXBpLk1ldGhvZCB7XG4gIGxldCBiYXNlUHJvcHM6IGFwaS5Bd3NJbnRlZ3JhdGlvblByb3BzID0ge1xuICAgIHNlcnZpY2U6IHBhcmFtcy5zZXJ2aWNlLFxuICAgIGludGVncmF0aW9uSHR0cE1ldGhvZDogXCJQT1NUXCIsXG4gICAgb3B0aW9uczoge1xuICAgICAgcGFzc3Rocm91Z2hCZWhhdmlvcjogYXBpLlBhc3N0aHJvdWdoQmVoYXZpb3IuTkVWRVIsXG4gICAgICBjcmVkZW50aWFsc1JvbGU6IHBhcmFtcy5hcGlHYXRld2F5Um9sZSxcbiAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiB7XG4gICAgICAgIFwiaW50ZWdyYXRpb24ucmVxdWVzdC5oZWFkZXIuQ29udGVudC1UeXBlXCI6IHBhcmFtcy5jb250ZW50VHlwZSA/IHBhcmFtcy5jb250ZW50VHlwZSA6IFwiJ2FwcGxpY2F0aW9uL2pzb24nXCJcbiAgICAgIH0sXG4gICAgICByZXF1ZXN0VGVtcGxhdGVzOiB7XG4gICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiBwYXJhbXMucmVxdWVzdFRlbXBsYXRlXG4gICAgICB9LFxuICAgICAgaW50ZWdyYXRpb25SZXNwb25zZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHN0YXR1c0NvZGU6IFwiMjAwXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHN0YXR1c0NvZGU6IFwiNTAwXCIsXG4gICAgICAgICAgcmVzcG9uc2VUZW1wbGF0ZXM6IHtcbiAgICAgICAgICAgIFwidGV4dC9odG1sXCI6IFwiRXJyb3JcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2VsZWN0aW9uUGF0dGVybjogXCI1MDBcIlxuICAgICAgICB9XG4gICAgICBdXG4gICAgfVxuICB9O1xuXG4gIGxldCBleHRyYVByb3BzO1xuXG4gIGlmIChwYXJhbXMuYWN0aW9uKSB7XG4gICAgZXh0cmFQcm9wcyA9IHtcbiAgICAgIGFjdGlvbjogcGFyYW1zLmFjdGlvblxuICAgIH07XG4gIH0gZWxzZSBpZiAocGFyYW1zLnBhdGgpIHtcbiAgICBleHRyYVByb3BzID0ge1xuICAgICAgcGF0aDogcGFyYW1zLnBhdGhcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IEVycm9yKCdFaXRoZXIgYWN0aW9uIG9yIHBhdGggaXMgcmVxdWlyZWQnKTtcbiAgfVxuXG4gIC8vIFNldHVwIHRoZSBBUEkgR2F0ZXdheSBBV1MgSW50ZWdyYXRpb25cbiAgYmFzZVByb3BzID0gT2JqZWN0LmFzc2lnbihiYXNlUHJvcHMsIGV4dHJhUHJvcHMpO1xuXG4gIGxldCBhcGlHYXRld2F5SW50ZWdyYXRpb247XG4gIGNvbnN0IG5ld1Byb3BzID0gY29uc29saWRhdGVQcm9wcyhiYXNlUHJvcHMsIHBhcmFtcy5hd3NJbnRlZ3JhdGlvblByb3BzKTtcblxuICBhcGlHYXRld2F5SW50ZWdyYXRpb24gPSBuZXcgYXBpLkF3c0ludGVncmF0aW9uKG5ld1Byb3BzKTtcblxuICBjb25zdCBkZWZhdWx0TWV0aG9kT3B0aW9ucyA9IHtcbiAgICBtZXRob2RSZXNwb25zZXM6IFtcbiAgICAgIHtcbiAgICAgICAgc3RhdHVzQ29kZTogXCIyMDBcIixcbiAgICAgICAgcmVzcG9uc2VQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtVHlwZVwiOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0YXR1c0NvZGU6IFwiNTAwXCIsXG4gICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgIFwibWV0aG9kLnJlc3BvbnNlLmhlYWRlci5Db250ZW50LVR5cGVcIjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgfVxuICAgIF0sXG4gICAgcmVxdWVzdFZhbGlkYXRvcjogcGFyYW1zLnJlcXVlc3RWYWxpZGF0b3IsXG4gICAgcmVxdWVzdE1vZGVsczogcGFyYW1zLnJlcXVlc3RNb2RlbFxuICB9O1xuXG4gIGxldCBhcGlNZXRob2Q7XG5cbiAgLy8gU2V0dXAgdGhlIEFQSSBHYXRld2F5IG1ldGhvZFxuICBjb25zdCBvdmVycmlkZW5Qcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdE1ldGhvZE9wdGlvbnMsIHBhcmFtcy5tZXRob2RPcHRpb25zKTtcbiAgYXBpTWV0aG9kID0gcGFyYW1zLmFwaVJlc291cmNlLmFkZE1ldGhvZChwYXJhbXMuYXBpTWV0aG9kLCBhcGlHYXRld2F5SW50ZWdyYXRpb24sIG92ZXJyaWRlblByb3BzKTtcblxuICByZXR1cm4gYXBpTWV0aG9kO1xufSJdfQ==
@@ -17,4 +17,3 @@ import * as s3 from '@aws-cdk/aws-s3';
17
17
  export declare function DefaultCloudFrontWebDistributionForApiGatewayProps(apiEndPoint: api.RestApi, loggingBucket: s3.Bucket | undefined, setHttpSecurityHeaders: boolean, cfFunction?: cloudfront.IFunction): cloudfront.DistributionProps;
18
18
  export declare function DefaultCloudFrontWebDistributionForS3Props(sourceBucket: s3.IBucket, loggingBucket: s3.Bucket | undefined, setHttpSecurityHeaders: boolean, originPath?: string, cfFunction?: cloudfront.IFunction): cloudfront.DistributionProps;
19
19
  export declare function DefaultCloudFrontDisributionForMediaStoreProps(mediastoreContainer: mediastore.CfnContainer, loggingBucket: s3.Bucket | undefined, originRequestPolicy: cloudfront.OriginRequestPolicy, setHttpSecurityHeaders: boolean, customHeaders?: Record<string, string>, cfFunction?: cloudfront.IFunction): cloudfront.DistributionProps;
20
- //# sourceMappingURL=cloudfront-distribution-defaults.d.ts.map
@@ -19,4 +19,3 @@ export declare function CloudFrontDistributionForApiGateway(scope: Construct, ap
19
19
  export declare function CloudFrontDistributionForS3(scope: Construct, sourceBucket: s3.IBucket, cloudFrontDistributionProps?: cloudfront.DistributionProps | any, httpSecurityHeaders?: boolean, originPath?: string, cloudFrontLoggingBucketProps?: s3.BucketProps): [cloudfront.Distribution, cloudfront.Function?, s3.Bucket?];
20
20
  export declare function CloudFrontDistributionForMediaStore(scope: Construct, mediaStoreContainer: mediastore.CfnContainer, cloudFrontDistributionProps?: cloudfront.DistributionProps | any, httpSecurityHeaders?: boolean, cloudFrontLoggingBucketProps?: s3.BucketProps): [cloudfront.Distribution, s3.Bucket | undefined, cloudfront.OriginRequestPolicy, cloudfront.Function?];
21
21
  export declare function CloudFrontOriginAccessIdentity(scope: Construct, comment?: string): cloudfront.OriginAccessIdentity;
22
- //# sourceMappingURL=cloudfront-distribution-helper.d.ts.map
@@ -114,7 +114,7 @@ function CloudFrontDistributionForMediaStore(scope, mediaStoreContainer, cloudFr
114
114
  originRequestPolicy = new cloudfront.OriginRequestPolicy(scope, 'CloudfrontOriginRequestPolicy', originRequestPolicyProps);
115
115
  }
116
116
  const cloudfrontFunction = getCloudfrontFunction(httpSecurityHeaders, scope);
117
- const defaultprops = cloudfront_distribution_defaults_1.DefaultCloudFrontDisributionForMediaStoreProps(mediaStoreContainer, loggingBucket, originRequestPolicy, httpSecurityHeaders, cloudFrontDistributionProps === null || cloudFrontDistributionProps === void 0 ? void 0 : cloudFrontDistributionProps.customHeaders, cloudfrontFunction);
117
+ const defaultprops = cloudfront_distribution_defaults_1.DefaultCloudFrontDisributionForMediaStoreProps(mediaStoreContainer, loggingBucket, originRequestPolicy, httpSecurityHeaders, cloudFrontDistributionProps?.customHeaders, cloudfrontFunction);
118
118
  let cfprops;
119
119
  cfprops = utils_1.consolidateProps(defaultprops, cloudFrontDistributionProps);
120
120
  // Create the CloudFront Distribution
@@ -130,16 +130,16 @@ function CloudFrontOriginAccessIdentity(scope, comment) {
130
130
  }
131
131
  exports.CloudFrontOriginAccessIdentity = CloudFrontOriginAccessIdentity;
132
132
  function getLoggingBucket(cloudFrontDistributionProps, scope, cloudFrontLoggingBucketProps) {
133
- const isLoggingDisabled = (cloudFrontDistributionProps === null || cloudFrontDistributionProps === void 0 ? void 0 : cloudFrontDistributionProps.enableLogging) === false;
134
- const userSuppliedLogBucket = cloudFrontDistributionProps === null || cloudFrontDistributionProps === void 0 ? void 0 : cloudFrontDistributionProps.logBucket;
133
+ const isLoggingDisabled = cloudFrontDistributionProps?.enableLogging === false;
134
+ const userSuppliedLogBucket = cloudFrontDistributionProps?.logBucket;
135
135
  if (userSuppliedLogBucket && cloudFrontLoggingBucketProps) {
136
136
  throw Error('Either cloudFrontDistributionProps.logBucket or cloudFrontLoggingBucketProps can be set.');
137
137
  }
138
138
  return isLoggingDisabled
139
139
  ? undefined
140
- : userSuppliedLogBucket !== null && userSuppliedLogBucket !== void 0 ? userSuppliedLogBucket : s3_bucket_helper_1.createLoggingBucket(scope, 'CloudfrontLoggingBucket', cloudFrontLoggingBucketProps ? utils_1.overrideProps(s3_bucket_defaults_1.DefaultS3Props(), cloudFrontLoggingBucketProps) : s3_bucket_defaults_1.DefaultS3Props());
140
+ : userSuppliedLogBucket ?? s3_bucket_helper_1.createLoggingBucket(scope, 'CloudfrontLoggingBucket', cloudFrontLoggingBucketProps ? utils_1.overrideProps(s3_bucket_defaults_1.DefaultS3Props(), cloudFrontLoggingBucketProps) : s3_bucket_defaults_1.DefaultS3Props());
141
141
  }
142
142
  function getCloudfrontFunction(httpSecurityHeaders, scope) {
143
143
  return httpSecurityHeaders ? defaultCloudfrontFunction(scope) : undefined;
144
144
  }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgsc0RBQXNEO0FBRXRELHFDQUFxQztBQUdyQyx5RkFJNEM7QUFDNUMsbUNBQStFO0FBQy9FLHlEQUF5RDtBQUN6RCw2REFBc0Q7QUFJdEQsb0dBQW9HO0FBQ3BHLFNBQVMsb0JBQW9CLENBQUMsY0FBdUM7SUFDbkUsMkJBQW1CLENBQUMsY0FBYyxFQUFFO1FBQ2xDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsc0tBQXNLO1NBQy9LO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELDJHQUEyRztBQUMzRyxzQ0FBc0M7QUFDdEMsU0FBUyx5QkFBeUIsQ0FBQyxLQUFnQjtJQUNqRCxxRUFBcUU7SUFDckUsc0VBQXNFO0lBQ3RFLGdEQUFnRDtJQUNoRCxrREFBa0Q7SUFDbEQsTUFBTSxVQUFVLEdBQUcseUJBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFOUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFO1FBQzlELFlBQVksRUFBRSxVQUFVO1FBQ3hCLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7TUFRdkMsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixtQ0FBbUMsQ0FBQyxLQUFnQixFQUNsRSxXQUF3QixFQUN4QiwyQkFBZ0UsRUFDaEUsc0JBQStCLElBQUksRUFDbkMsNEJBQTZDO0lBRzdDLE1BQU0sa0JBQWtCLEdBQUcscUJBQXFCLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFF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QUM7QUFDTCxDQUFDO0FBSkQsd0VBSUM7QUFFRCxTQUFTLGdCQUFnQixDQUN2QiwyQkFBK0QsRUFBRSxLQUFnQixFQUNqRiw0QkFBNkM7SUFFN0MsTUFBTSxpQkFBaUIsR0FBRyxDQUFBLDJCQUEyQixhQUEzQiwyQkFBMkIsdUJBQTNCLDJCQUEyQixDQUFFLGFBQWEsTUFBSyxLQUFLLENBQUM7SUFDL0UsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsYUFBM0IsMkJBQTJCLHVCQUEzQiwyQkFBMkIsQ0FBRSxTQUFTLENBQUM7SUFFckUsSUFBSSxxQkFBcUIsSUFBSSw0QkFBNEIsRUFBRTtRQUN6RCxNQUFNLEtBQUssQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO0tBQ3pHO0lBRUQsT0FBTyxpQkFBaUI7UUFDdEIsQ0FBQyxDQUFDLFNBQVM7UUFDWCxDQUFDLENBQUMscUJBQXFCLGFBQXJCLHFCQUFxQixjQUFyQixxQkFBcUIsR0FBSSxzQ0FBbUIsQ0FDNUMsS0FBSyxFQUNMLHlCQUF5QixFQUN6Qiw0QkFBNEIsQ0FBQyxDQUFDLENBQUMscUJBQWEsQ0FBQyxtQ0FBYyxFQUFFLEVBQUUsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQWMsRUFBRSxDQUFDLENBQUM7QUFDdkgsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsbUJBQTRCLEVBQUUsS0FBZ0I7SUFDM0UsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ0Bhd3MtY2RrL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgKiBhcyBhcGkgZnJvbSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0ICogYXMgbWVkaWFzdG9yZSBmcm9tICdAYXdzLWNkay9hd3MtbWVkaWFzdG9yZSc7XG5pbXBvcnQge1xuICBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvclMzUHJvcHMsXG4gIERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVByb3BzLFxuICBEZWZhdWx0Q2xvdWRGcm9udERpc3JpYnV0aW9uRm9yTWVkaWFTdG9yZVByb3BzXG59IGZyb20gJy4vY2xvdWRmcm9udC1kaXN0cmlidXRpb24tZGVmYXVsdHMnO1xuaW1wb3J0IHsgb3ZlcnJpZGVQcm9wcywgYWRkQ2ZuU3VwcHJlc3NSdWxlcywgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2luZ0J1Y2tldCB9IGZyb20gJy4vczMtYnVja2V0LWhlbHBlcic7XG5pbXBvcnQgeyBEZWZhdWx0UzNQcm9wcyB9IGZyb20gJy4vczMtYnVja2V0LWRlZmF1bHRzJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuXG4vLyBPdmVycmlkZSBDZm5fTmFnIHJ1bGU6IENsb3VkZnJvbnQgVExTLTEuMiBydWxlIChodHRwczovL2dpdGh1Yi5jb20vc3RlbGxpZ2VudC9jZm5fbmFnL2lzc3Vlcy8zODQpXG5mdW5jdGlvbiB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb24pIHtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhjZkRpc3RyaWJ1dGlvbiwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzcwJyxcbiAgICAgIHJlYXNvbjogYFNpbmNlIHRoZSBkaXN0cmlidXRpb24gdXNlcyB0aGUgQ2xvdWRGcm9udCBkb21haW4gbmFtZSwgQ2xvdWRGcm9udCBhdXRvbWF0aWNhbGx5IHNldHMgdGhlIHNlY3VyaXR5IHBvbGljeSB0byBUTFN2MSByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiBNaW5pbXVtUHJvdG9jb2xWZXJzaW9uYFxuICAgIH1cbiAgXSk7XG5cbiAgcmV0dXJuIGNmRGlzdHJpYnV0aW9uO1xufVxuXG4vLyBDbG91ZGZyb250IGZ1bmN0aW9uIHRvIGluc2VydCB0aGUgSFRUUCBTZWN1cml0eSBIZWFkZXJzIGludG8gdGhlIHJlc3BvbnNlIGNvbWluZyBmcm9tIHRoZSBvcmlnaW4gc2VydmVyc1xuLy8gYW5kIGJlZm9yZSBpdCBpcyBzZW50IHRvIHRoZSBjbGllbnRcbmZ1bmN0aW9uIGRlZmF1bHRDbG91ZGZyb250RnVuY3Rpb24oc2NvcGU6IENvbnN0cnVjdCk6IGNsb3VkZnJvbnQuRnVuY3Rpb24ge1xuICAvLyBnZW5lcmF0ZSBhIHN0YWJsZSB1bmlxdWUgaWQgZm9yIHRoZSBjbG91ZGZyb250IGZ1bmN0aW9uIGFuZCB1c2UgaXRcbiAgLy8gYm90aCBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgYW5kIHRoZSBsb2dpY2FsIGlkIG9mIHRoZSBmdW5jdGlvbiBzbyBpZlxuICAvLyBpdCBpcyBjaGFuZ2VkIHRoZSBmdW5jdGlvbiB3aWxsIGJlIHJlY3JlYXRlZC5cbiAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTU1MjNcbiAgY29uc3QgZnVuY3Rpb25JZCA9IGBTZXRIdHRwU2VjdXJpdHlIZWFkZXJzJHtzY29wZS5ub2RlLmFkZHJ9YDtcblxuICByZXR1cm4gbmV3IGNsb3VkZnJvbnQuRnVuY3Rpb24oc2NvcGUsIFwiU2V0SHR0cFNlY3VyaXR5SGVhZGVyc1wiLCB7XG4gICAgZnVuY3Rpb25OYW1lOiBmdW5jdGlvbklkLFxuICAgIGNvZGU6IGNsb3VkZnJvbnQuRnVuY3Rpb25Db2RlLmZyb21JbmxpbmUoXCJmdW5jdGlvbiBoYW5kbGVyKGV2ZW50KSB7IHZhciByZXNwb25zZSA9IGV2ZW50LnJlc3BvbnNlOyBcXFxuICAgICAgdmFyIGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOyBcXFxuICAgICAgaGVhZGVyc1snc3RyaWN0LXRyYW5zcG9ydC1zZWN1cml0eSddID0geyB2YWx1ZTogJ21heC1hZ2U9NjMwNzIwMDA7IGluY2x1ZGVTdWJkb21haW5zOyBwcmVsb2FkJ307IFxcXG4gICAgICBoZWFkZXJzWydjb250ZW50LXNlY3VyaXR5LXBvbGljeSddID0geyB2YWx1ZTogXFxcImRlZmF1bHQtc3JjICdub25lJzsgaW1nLXNyYyAnc2VsZic7IHNjcmlwdC1zcmMgJ3NlbGYnOyBzdHlsZS1zcmMgJ3NlbGYnOyBvYmplY3Qtc3JjICdub25lJ1xcXCJ9OyBcXFxuICAgICAgaGVhZGVyc1sneC1jb250ZW50LXR5cGUtb3B0aW9ucyddID0geyB2YWx1ZTogJ25vc25pZmYnfTsgXFxcbiAgICAgIGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0ge3ZhbHVlOiAnREVOWSd9OyBcXFxuICAgICAgaGVhZGVyc1sneC14c3MtcHJvdGVjdGlvbiddID0ge3ZhbHVlOiAnMTsgbW9kZT1ibG9jayd9OyBcXFxuICAgICAgcmV0dXJuIHJlc3BvbnNlOyBcXFxuICAgIH1cIilcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheShzY29wZTogQ29uc3RydWN0LFxuICBhcGlFbmRQb2ludDogYXBpLlJlc3RBcGksXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4gPSB0cnVlLFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHNcbik6IFtjbG91ZGZyb250LkRpc3RyaWJ1dGlvbiwgY2xvdWRmcm9udC5GdW5jdGlvbj8sIHMzLkJ1Y2tldD9dIHtcblxuICBjb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVycywgc2NvcGUpO1xuXG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQgPSBnZXRMb2dnaW5nQnVja2V0KGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcywgc2NvcGUsIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yQXBpR2F0ZXdheVByb3BzKGFwaUVuZFBvaW50LCBsb2dnaW5nQnVja2V0LCBodHRwU2VjdXJpdHlIZWFkZXJzLCBjbG91ZGZyb250RnVuY3Rpb24pO1xuXG4gIGNvbnN0IGNmcHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRwcm9wcywgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzKTtcbiAgLy8gQ3JlYXRlIHRoZSBDbG91ZGZyb250IERpc3RyaWJ1dGlvblxuICBjb25zdCBjZkRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbihzY29wZSwgJ0Nsb3VkRnJvbnREaXN0cmlidXRpb24nLCBjZnByb3BzKTtcbiAgdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb24pO1xuXG4gIHJldHVybiBbY2ZEaXN0cmlidXRpb24sIGNsb3VkZnJvbnRGdW5jdGlvbiwgbG9nZ2luZ0J1Y2tldF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzMoc2NvcGU6IENvbnN0cnVjdCxcbiAgc291cmNlQnVja2V0OiBzMy5JQnVja2V0LFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/OiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvblByb3BzIHwgYW55LFxuICBodHRwU2VjdXJpdHlIZWFkZXJzOiBib29sZWFuID0gdHJ1ZSxcbiAgb3JpZ2luUGF0aD86IHN0cmluZyxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzKTogW2Nsb3VkZnJvbnQuRGlzdHJpYnV0aW9uLFxuICAgIGNsb3VkZnJvbnQuRnVuY3Rpb24/LCBzMy5CdWNrZXQ/XSB7XG5cbiAgY29uc3QgY2xvdWRmcm9udEZ1bmN0aW9uID0gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnMsIHNjb3BlKTtcblxuICBjb25zdCBsb2dnaW5nQnVja2V0ID0gZ2V0TG9nZ2luZ0J1Y2tldChjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMsIHNjb3BlLCBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICBjb25zdCBkZWZhdWx0cHJvcHMgPSBEZWZhdWx0Q2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbkZvclMzUHJvcHMoc291cmNlQnVja2V0LCBsb2dnaW5nQnVja2V0LCBodHRwU2VjdXJpdHlIZWFkZXJzLCBvcmlnaW5QYXRoLCBjbG91ZGZyb250RnVuY3Rpb24pO1xuXG4gIGNvbnN0IGNmcHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRwcm9wcywgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzKTtcbiAgLy8gQ3JlYXRlIHRoZSBDbG91ZGZyb250IERpc3RyaWJ1dGlvblxuICBjb25zdCBjZkRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbihzY29wZSwgJ0Nsb3VkRnJvbnREaXN0cmlidXRpb24nLCBjZnByb3BzKTtcbiAgdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb24pO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkJ1Y2tldFBvbGljeSBmcm9tIHRoZSBzb3VyY2VCdWNrZXRcbiAgY29uc3QgYnVja2V0UG9saWN5ID0gc291cmNlQnVja2V0LnBvbGljeSBhcyBzMy5CdWNrZXRQb2xpY3k7XG4gIC8vIHRoZSBsYWNrIG9mIGEgYnVja2V0UG9saWN5IG1lYW5zIHRoZSBidWNrZXQgd2FzIGltcG9ydGVkIGZyb20gb3V0c2lkZSB0aGUgc3RhY2sgc28gdGhlIGxhY2sgb2YgY2ZuX25hZyBzdXBwcmVzc2lvbiBpcyBub3QgYW4gaXNzdWVcbiAgaWYgKGJ1Y2tldFBvbGljeSkge1xuICAgIGFkZENmblN1cHByZXNzUnVsZXMoYnVja2V0UG9saWN5LCBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnRjE2JyxcbiAgICAgICAgcmVhc29uOiBgUHVibGljIHdlYnNpdGUgYnVja2V0IHBvbGljeSByZXF1aXJlcyBhIHdpbGRjYXJkIHByaW5jaXBhbGBcbiAgICAgIH1cbiAgICBdKTtcbiAgfVxuICByZXR1cm4gW2NmRGlzdHJpYnV0aW9uLCBjbG91ZGZyb250RnVuY3Rpb24sIGxvZ2dpbmdCdWNrZXRdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2xvdWRGcm9udERpc3RyaWJ1dGlvbkZvck1lZGlhU3RvcmUoc2NvcGU6IENvbnN0cnVjdCxcbiAgbWVkaWFTdG9yZUNvbnRhaW5lcjogbWVkaWFzdG9yZS5DZm5Db250YWluZXIsXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4gPSB0cnVlLFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMpOiBbY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gICAgczMuQnVja2V0IHwgdW5kZWZpbmVkLCBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3ksIGNsb3VkZnJvbnQuRnVuY3Rpb24/XSB7XG5cbiAgbGV0IG9yaWdpblJlcXVlc3RQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeTtcblxuICBjb25zdCBsb2dnaW5nQnVja2V0ID0gZ2V0TG9nZ2luZ0J1Y2tldChjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMsIHNjb3BlLCBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICBpZiAoY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzXG4gICAgJiYgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmRlZmF1bHRCZWhhdmlvclxuICAgICYmIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5kZWZhdWx0QmVoYXZpb3Iub3JpZ2luUmVxdWVzdFBvbGljeSkge1xuICAgIG9yaWdpblJlcXVlc3RQb2xpY3kgPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMuZGVmYXVsdEJlaGF2aW9yLm9yaWdpblJlcXVlc3RQb2xpY3k7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgb3JpZ2luUmVxdWVzdFBvbGljeVByb3BzOiBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGhlYWRlckJlaGF2aW9yOiB7XG4gICAgICAgIGJlaGF2aW9yOiAnd2hpdGVsaXN0JyxcbiAgICAgICAgaGVhZGVyczogW1xuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLFxuICAgICAgICAgICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZCcsXG4gICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVyJyxcbiAgICAgICAgICAnT3JpZ2luJ1xuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ2FsbCdcbiAgICAgIH0sXG4gICAgICBjb29raWVCZWhhdmlvcjoge1xuICAgICAgICBiZWhhdmlvcjogJ25vbmUnXG4gICAgICB9LFxuICAgICAgY29tbWVudDogJ1BvbGljeSBmb3IgQ29uc3RydWN0cyBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZScsXG4gICAgICBvcmlnaW5SZXF1ZXN0UG9saWN5TmFtZTogYCR7Y2RrLkF3cy5TVEFDS19OQU1FfS0ke2Nkay5Bd3MuUkVHSU9OfS1DbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZWBcbiAgICB9O1xuXG4gICAgb3JpZ2luUmVxdWVzdFBvbGljeSA9IG5ldyBjbG91ZGZyb250Lk9yaWdpblJlcXVlc3RQb2xpY3koc2NvcGUsICdDbG91ZGZyb250T3JpZ2luUmVxdWVzdFBvbGljeScsIG9yaWdpblJlcXVlc3RQb2xpY3lQcm9wcyk7XG4gIH1cblxuICBjb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVycywgc2NvcGUpO1xuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250RGlzcmlidXRpb25Gb3JNZWRpYVN0b3JlUHJvcHMoXG4gICAgbWVkaWFTdG9yZUNvbnRhaW5lcixcbiAgICBsb2dnaW5nQnVja2V0LFxuICAgIG9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgaHR0cFNlY3VyaXR5SGVhZGVycyxcbiAgICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmN1c3RvbUhlYWRlcnMsXG4gICAgY2xvdWRmcm9udEZ1bmN0aW9uXG4gICk7XG5cbiAgbGV0IGNmcHJvcHM6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHM7XG5cbiAgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgQ2xvdWRGcm9udCBEaXN0cmlidXRpb25cbiAgY29uc3QgY2ZEaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24oc2NvcGUsICdDbG91ZEZyb250RGlzdHJpYnV0aW9uJywgY2Zwcm9wcyk7XG4gIHVwZGF0ZVNlY3VyaXR5UG9saWN5KGNmRGlzdHJpYnV0aW9uKTtcblxuICByZXR1cm4gW2NmRGlzdHJpYnV0aW9uLCBsb2dnaW5nQnVja2V0LCBvcmlnaW5SZXF1ZXN0UG9saWN5LCBjbG91ZGZyb250RnVuY3Rpb25dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHNjb3BlOiBDb25zdHJ1Y3QsIGNvbW1lbnQ/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5ldyBjbG91ZGZyb250Lk9yaWdpbkFjY2Vzc0lkZW50aXR5KHNjb3BlLCAnQ2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5Jywge1xuICAgIGNvbW1lbnQ6IGNvbW1lbnQgPyBjb21tZW50IDogYGFjY2Vzcy1pZGVudGl0eS0ke2Nkay5Bd3MuUkVHSU9OfS0ke2Nkay5Bd3MuU1RBQ0tfTkFNRX1gXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRMb2dnaW5nQnVja2V0KFxuICBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM6IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wc1xuKTogczMuQnVja2V0IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgaXNMb2dnaW5nRGlzYWJsZWQgPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmVuYWJsZUxvZ2dpbmcgPT09IGZhbHNlO1xuICBjb25zdCB1c2VyU3VwcGxpZWRMb2dCdWNrZXQgPSBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHM/LmxvZ0J1Y2tldDtcblxuICBpZiAodXNlclN1cHBsaWVkTG9nQnVja2V0ICYmIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMpIHtcbiAgICB0aHJvdyBFcnJvcignRWl0aGVyIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5sb2dCdWNrZXQgb3IgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyBjYW4gYmUgc2V0LicpO1xuICB9XG5cbiAgcmV0dXJuIGlzTG9nZ2luZ0Rpc2FibGVkXG4gICAgPyB1bmRlZmluZWRcbiAgICA6IHVzZXJTdXBwbGllZExvZ0J1Y2tldCA/PyBjcmVhdGVMb2dnaW5nQnVja2V0KFxuICAgICAgc2NvcGUsXG4gICAgICAnQ2xvdWRmcm9udExvZ2dpbmdCdWNrZXQnLFxuICAgICAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyA/IG92ZXJyaWRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcykgOiBEZWZhdWx0UzNQcm9wcygpKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2xvdWRmcm9udEZ1bmN0aW9uKGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4sIHNjb3BlOiBDb25zdHJ1Y3QpIHtcbiAgcmV0dXJuIGh0dHBTZWN1cml0eUhlYWRlcnMgPyBkZWZhdWx0Q2xvdWRmcm9udEZ1bmN0aW9uKHNjb3BlKSA6IHVuZGVmaW5lZDtcbn1cbiJdfQ==
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2xvdWRmcm9udC1kaXN0cmlidXRpb24taGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgsc0RBQXNEO0FBRXRELHFDQUFxQztBQUdyQyx5RkFJNEM7QUFDNUMsbUNBQStFO0FBQy9FLHlEQUF5RDtBQUN6RCw2REFBc0Q7QUFJdEQsb0dBQW9HO0FBQ3BHLFNBQVMsb0JBQW9CLENBQUMsY0FBdUM7SUFDbkUsMkJBQW1CLENBQUMsY0FBYyxFQUFFO1FBQ2xDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsc0tBQXNLO1NBQy9LO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELDJHQUEyRztBQUMzRyxzQ0FBc0M7QUFDdEMsU0FBUyx5QkFBeUIsQ0FBQyxLQUFnQjtJQUNqRCxxRUFBcUU7SUFDckUsc0VBQXNFO0lBQ3RFLGdEQUFnRDtJQUNoRCxrREFBa0Q7SUFDbEQsTUFBTSxVQUFVLEdBQUcseUJBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFOUQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFO1FBQzlELFlBQVksRUFBRSxVQUFVO1FBQ3hCLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7TUFRdkMsQ0FBQztLQUNKLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxTQUFnQixtQ0FBbUMsQ0FBQyxLQUFnQixFQUNsRSxXQUF3QixFQUN4QiwyQkFBZ0UsRUFDaEUsc0JBQStCLElBQUksRUFDbkMsNEJBQTZDO0lBRzdDLE1BQU0sa0JBQWtCLEdBQUcscUJBQXFCLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFF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RCxTQUFTLGdCQUFnQixDQUN2QiwyQkFBK0QsRUFBRSxLQUFnQixFQUNqRiw0QkFBNkM7SUFFN0MsTUFBTSxpQkFBaUIsR0FBRywyQkFBMkIsRUFBRSxhQUFhLEtBQUssS0FBSyxDQUFDO0lBQy9FLE1BQU0scUJBQXFCLEdBQUcsMkJBQTJCLEVBQUUsU0FBUyxDQUFDO0lBRXJFLElBQUkscUJBQXFCLElBQUksNEJBQTRCLEVBQUU7UUFDekQsTUFBTSxLQUFLLENBQUMsMEZBQTBGLENBQUMsQ0FBQztLQUN6RztJQUVELE9BQU8saUJBQWlCO1FBQ3RCLENBQUMsQ0FBQyxTQUFTO1FBQ1gsQ0FBQyxDQUFDLHFCQUFxQixJQUFJLHNDQUFtQixDQUM1QyxLQUFLLEVBQ0wseUJBQXlCLEVBQ3pCLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxxQkFBYSxDQUFDLG1DQUFjLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBYyxFQUFFLENBQUMsQ0FBQztBQUN2SCxDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxtQkFBNEIsRUFBRSxLQUFnQjtJQUMzRSxPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnQGF3cy1jZGsvYXdzLXMzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIGFwaSBmcm9tICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgKiBhcyBtZWRpYXN0b3JlIGZyb20gJ0Bhd3MtY2RrL2F3cy1tZWRpYXN0b3JlJztcbmltcG9ydCB7XG4gIERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yUzNQcm9wcyxcbiAgRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JBcGlHYXRld2F5UHJvcHMsXG4gIERlZmF1bHRDbG91ZEZyb250RGlzcmlidXRpb25Gb3JNZWRpYVN0b3JlUHJvcHNcbn0gZnJvbSAnLi9jbG91ZGZyb250LWRpc3RyaWJ1dGlvbi1kZWZhdWx0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzLCBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVMb2dnaW5nQnVja2V0IH0gZnJvbSAnLi9zMy1idWNrZXQtaGVscGVyJztcbmltcG9ydCB7IERlZmF1bHRTM1Byb3BzIH0gZnJvbSAnLi9zMy1idWNrZXQtZGVmYXVsdHMnO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbi8vIE92ZXJyaWRlIENmbl9OYWcgcnVsZTogQ2xvdWRmcm9udCBUTFMtMS4yIHJ1bGUgKGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVsbGlnZW50L2Nmbl9uYWcvaXNzdWVzLzM4NClcbmZ1bmN0aW9uIHVwZGF0ZVNlY3VyaXR5UG9saWN5KGNmRGlzdHJpYnV0aW9uOiBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbikge1xuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGNmRGlzdHJpYnV0aW9uLCBbXG4gICAge1xuICAgICAgaWQ6ICdXNzAnLFxuICAgICAgcmVhc29uOiBgU2luY2UgdGhlIGRpc3RyaWJ1dGlvbiB1c2VzIHRoZSBDbG91ZEZyb250IGRvbWFpbiBuYW1lLCBDbG91ZEZyb250IGF1dG9tYXRpY2FsbHkgc2V0cyB0aGUgc2VjdXJpdHkgcG9saWN5IHRvIFRMU3YxIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIE1pbmltdW1Qcm90b2NvbFZlcnNpb25gXG4gICAgfVxuICBdKTtcblxuICByZXR1cm4gY2ZEaXN0cmlidXRpb247XG59XG5cbi8vIENsb3VkZnJvbnQgZnVuY3Rpb24gdG8gaW5zZXJ0IHRoZSBIVFRQIFNlY3VyaXR5IEhlYWRlcnMgaW50byB0aGUgcmVzcG9uc2UgY29taW5nIGZyb20gdGhlIG9yaWdpbiBzZXJ2ZXJzXG4vLyBhbmQgYmVmb3JlIGl0IGlzIHNlbnQgdG8gdGhlIGNsaWVudFxuZnVuY3Rpb24gZGVmYXVsdENsb3VkZnJvbnRGdW5jdGlvbihzY29wZTogQ29uc3RydWN0KTogY2xvdWRmcm9udC5GdW5jdGlvbiB7XG4gIC8vIGdlbmVyYXRlIGEgc3RhYmxlIHVuaXF1ZSBpZCBmb3IgdGhlIGNsb3VkZnJvbnQgZnVuY3Rpb24gYW5kIHVzZSBpdFxuICAvLyBib3RoIGZvciB0aGUgZnVuY3Rpb24gbmFtZSBhbmQgdGhlIGxvZ2ljYWwgaWQgb2YgdGhlIGZ1bmN0aW9uIHNvIGlmXG4gIC8vIGl0IGlzIGNoYW5nZWQgdGhlIGZ1bmN0aW9uIHdpbGwgYmUgcmVjcmVhdGVkLlxuICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy8xNTUyM1xuICBjb25zdCBmdW5jdGlvbklkID0gYFNldEh0dHBTZWN1cml0eUhlYWRlcnMke3Njb3BlLm5vZGUuYWRkcn1gO1xuXG4gIHJldHVybiBuZXcgY2xvdWRmcm9udC5GdW5jdGlvbihzY29wZSwgXCJTZXRIdHRwU2VjdXJpdHlIZWFkZXJzXCIsIHtcbiAgICBmdW5jdGlvbk5hbWU6IGZ1bmN0aW9uSWQsXG4gICAgY29kZTogY2xvdWRmcm9udC5GdW5jdGlvbkNvZGUuZnJvbUlubGluZShcImZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHsgdmFyIHJlc3BvbnNlID0gZXZlbnQucmVzcG9uc2U7IFxcXG4gICAgICB2YXIgaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnM7IFxcXG4gICAgICBoZWFkZXJzWydzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5J10gPSB7IHZhbHVlOiAnbWF4LWFnZT02MzA3MjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWQnfTsgXFxcbiAgICAgIGhlYWRlcnNbJ2NvbnRlbnQtc2VjdXJpdHktcG9saWN5J10gPSB7IHZhbHVlOiBcXFwiZGVmYXVsdC1zcmMgJ25vbmUnOyBpbWctc3JjICdzZWxmJzsgc2NyaXB0LXNyYyAnc2VsZic7IHN0eWxlLXNyYyAnc2VsZic7IG9iamVjdC1zcmMgJ25vbmUnXFxcIn07IFxcXG4gICAgICBoZWFkZXJzWyd4LWNvbnRlbnQtdHlwZS1vcHRpb25zJ10gPSB7IHZhbHVlOiAnbm9zbmlmZid9OyBcXFxuICAgICAgaGVhZGVyc1sneC1mcmFtZS1vcHRpb25zJ10gPSB7dmFsdWU6ICdERU5ZJ307IFxcXG4gICAgICBoZWFkZXJzWyd4LXhzcy1wcm90ZWN0aW9uJ10gPSB7dmFsdWU6ICcxOyBtb2RlPWJsb2NrJ307IFxcXG4gICAgICByZXR1cm4gcmVzcG9uc2U7IFxcXG4gICAgfVwiKVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JBcGlHYXRld2F5KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGFwaUVuZFBvaW50OiBhcGkuUmVzdEFwaSxcbiAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPzogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgaHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbiA9IHRydWUsXG4gIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wc1xuKTogW2Nsb3VkZnJvbnQuRGlzdHJpYnV0aW9uLCBjbG91ZGZyb250LkZ1bmN0aW9uPywgczMuQnVja2V0P10ge1xuXG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzLCBzY29wZSk7XG5cbiAgY29uc3QgbG9nZ2luZ0J1Y2tldCA9IGdldExvZ2dpbmdCdWNrZXQoY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLCBzY29wZSwgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcyk7XG5cbiAgY29uc3QgZGVmYXVsdHByb3BzID0gRGVmYXVsdENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb25Gb3JBcGlHYXRld2F5UHJvcHMoYXBpRW5kUG9pbnQsIGxvZ2dpbmdCdWNrZXQsIGh0dHBTZWN1cml0eUhlYWRlcnMsIGNsb3VkZnJvbnRGdW5jdGlvbik7XG5cbiAgY29uc3QgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuICAvLyBDcmVhdGUgdGhlIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgcmV0dXJuIFtjZkRpc3RyaWJ1dGlvbiwgY2xvdWRmcm9udEZ1bmN0aW9uLCBsb2dnaW5nQnVja2V0XTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JTMyhzY29wZTogQ29uc3RydWN0LFxuICBzb3VyY2VCdWNrZXQ6IHMzLklCdWNrZXQsXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gIGh0dHBTZWN1cml0eUhlYWRlcnM6IGJvb2xlYW4gPSB0cnVlLFxuICBvcmlnaW5QYXRoPzogc3RyaW5nLFxuICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMpOiBbY2xvdWRmcm9udC5EaXN0cmlidXRpb24sXG4gICAgY2xvdWRmcm9udC5GdW5jdGlvbj8sIHMzLkJ1Y2tldD9dIHtcblxuICBjb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVycywgc2NvcGUpO1xuXG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQgPSBnZXRMb2dnaW5nQnVja2V0KGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcywgc2NvcGUsIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIGNvbnN0IGRlZmF1bHRwcm9wcyA9IERlZmF1bHRDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uRm9yUzNQcm9wcyhzb3VyY2VCdWNrZXQsIGxvZ2dpbmdCdWNrZXQsIGh0dHBTZWN1cml0eUhlYWRlcnMsIG9yaWdpblBhdGgsIGNsb3VkZnJvbnRGdW5jdGlvbik7XG5cbiAgY29uc3QgY2Zwcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHByb3BzLCBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMpO1xuICAvLyBDcmVhdGUgdGhlIENsb3VkZnJvbnQgRGlzdHJpYnV0aW9uXG4gIGNvbnN0IGNmRGlzdHJpYnV0aW9uID0gbmV3IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uKHNjb3BlLCAnQ2xvdWRGcm9udERpc3RyaWJ1dGlvbicsIGNmcHJvcHMpO1xuICB1cGRhdGVTZWN1cml0eVBvbGljeShjZkRpc3RyaWJ1dGlvbik7XG5cbiAgLy8gRXh0cmFjdCB0aGUgQ2ZuQnVja2V0UG9saWN5IGZyb20gdGhlIHNvdXJjZUJ1Y2tldFxuICBjb25zdCBidWNrZXRQb2xpY3kgPSBzb3VyY2VCdWNrZXQucG9saWN5IGFzIHMzLkJ1Y2tldFBvbGljeTtcbiAgLy8gdGhlIGxhY2sgb2YgYSBidWNrZXRQb2xpY3kgbWVhbnMgdGhlIGJ1Y2tldCB3YXMgaW1wb3J0ZWQgZnJvbSBvdXRzaWRlIHRoZSBzdGFjayBzbyB0aGUgbGFjayBvZiBjZm5fbmFnIHN1cHByZXNzaW9uIGlzIG5vdCBhbiBpc3N1ZVxuICBpZiAoYnVja2V0UG9saWN5KSB7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhidWNrZXRQb2xpY3ksIFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdGMTYnLFxuICAgICAgICByZWFzb246IGBQdWJsaWMgd2Vic2l0ZSBidWNrZXQgcG9saWN5IHJlcXVpcmVzIGEgd2lsZGNhcmQgcHJpbmNpcGFsYFxuICAgICAgfVxuICAgIF0pO1xuICB9XG4gIHJldHVybiBbY2ZEaXN0cmlidXRpb24sIGNsb3VkZnJvbnRGdW5jdGlvbiwgbG9nZ2luZ0J1Y2tldF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yTWVkaWFTdG9yZShzY29wZTogQ29uc3RydWN0LFxuICBtZWRpYVN0b3JlQ29udGFpbmVyOiBtZWRpYXN0b3JlLkNmbkNvbnRhaW5lcixcbiAgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzPzogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSxcbiAgaHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbiA9IHRydWUsXG4gIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyk6IFtjbG91ZGZyb250LkRpc3RyaWJ1dGlvbixcbiAgICBzMy5CdWNrZXQgfCB1bmRlZmluZWQsIGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeSwgY2xvdWRmcm9udC5GdW5jdGlvbj9dIHtcblxuICBsZXQgb3JpZ2luUmVxdWVzdFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5O1xuXG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQgPSBnZXRMb2dnaW5nQnVja2V0KGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcywgc2NvcGUsIGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIGlmIChjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHNcbiAgICAmJiBjbG91ZEZyb250RGlzdHJpYnV0aW9uUHJvcHMuZGVmYXVsdEJlaGF2aW9yXG4gICAgJiYgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmRlZmF1bHRCZWhhdmlvci5vcmlnaW5SZXF1ZXN0UG9saWN5KSB7XG4gICAgb3JpZ2luUmVxdWVzdFBvbGljeSA9IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcy5kZWZhdWx0QmVoYXZpb3Iub3JpZ2luUmVxdWVzdFBvbGljeTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBvcmlnaW5SZXF1ZXN0UG9saWN5UHJvcHM6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeVByb3BzID0ge1xuICAgICAgaGVhZGVyQmVoYXZpb3I6IHtcbiAgICAgICAgYmVoYXZpb3I6ICd3aGl0ZWxpc3QnLFxuICAgICAgICBoZWFkZXJzOiBbXG4gICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsXG4gICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kJyxcbiAgICAgICAgICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXInLFxuICAgICAgICAgICdPcmlnaW4nXG4gICAgICAgIF1cbiAgICAgIH0sXG4gICAgICBxdWVyeVN0cmluZ0JlaGF2aW9yOiB7XG4gICAgICAgIGJlaGF2aW9yOiAnYWxsJ1xuICAgICAgfSxcbiAgICAgIGNvb2tpZUJlaGF2aW9yOiB7XG4gICAgICAgIGJlaGF2aW9yOiAnbm9uZSdcbiAgICAgIH0sXG4gICAgICBjb21tZW50OiAnUG9saWN5IGZvciBDb25zdHJ1Y3RzIENsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlJyxcbiAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3lOYW1lOiBgJHtjZGsuQXdzLlNUQUNLX05BTUV9LSR7Y2RrLkF3cy5SRUdJT059LUNsb3VkRnJvbnREaXN0cmlidXRpb25Gb3JNZWRpYVN0b3JlYFxuICAgIH07XG5cbiAgICBvcmlnaW5SZXF1ZXN0UG9saWN5ID0gbmV3IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeShzY29wZSwgJ0Nsb3VkZnJvbnRPcmlnaW5SZXF1ZXN0UG9saWN5Jywgb3JpZ2luUmVxdWVzdFBvbGljeVByb3BzKTtcbiAgfVxuXG4gIGNvbnN0IGNsb3VkZnJvbnRGdW5jdGlvbiA9IGdldENsb3VkZnJvbnRGdW5jdGlvbihodHRwU2VjdXJpdHlIZWFkZXJzLCBzY29wZSk7XG5cbiAgY29uc3QgZGVmYXVsdHByb3BzID0gRGVmYXVsdENsb3VkRnJvbnREaXNyaWJ1dGlvbkZvck1lZGlhU3RvcmVQcm9wcyhcbiAgICBtZWRpYVN0b3JlQ29udGFpbmVyLFxuICAgIGxvZ2dpbmdCdWNrZXQsXG4gICAgb3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICBodHRwU2VjdXJpdHlIZWFkZXJzLFxuICAgIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz8uY3VzdG9tSGVhZGVycyxcbiAgICBjbG91ZGZyb250RnVuY3Rpb25cbiAgKTtcblxuICBsZXQgY2Zwcm9wczogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcztcblxuICBjZnByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cHJvcHMsIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcyk7XG5cbiAgLy8gQ3JlYXRlIHRoZSBDbG91ZEZyb250IERpc3RyaWJ1dGlvblxuICBjb25zdCBjZkRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbihzY29wZSwgJ0Nsb3VkRnJvbnREaXN0cmlidXRpb24nLCBjZnByb3BzKTtcbiAgdXBkYXRlU2VjdXJpdHlQb2xpY3koY2ZEaXN0cmlidXRpb24pO1xuXG4gIHJldHVybiBbY2ZEaXN0cmlidXRpb24sIGxvZ2dpbmdCdWNrZXQsIG9yaWdpblJlcXVlc3RQb2xpY3ksIGNsb3VkZnJvbnRGdW5jdGlvbl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHkoc2NvcGU6IENvbnN0cnVjdCwgY29tbWVudD86IHN0cmluZykge1xuICByZXR1cm4gbmV3IGNsb3VkZnJvbnQuT3JpZ2luQWNjZXNzSWRlbnRpdHkoc2NvcGUsICdDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLCB7XG4gICAgY29tbWVudDogY29tbWVudCA/IGNvbW1lbnQgOiBgYWNjZXNzLWlkZW50aXR5LSR7Y2RrLkF3cy5SRUdJT059LSR7Y2RrLkF3cy5TVEFDS19OQU1FfWBcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldExvZ2dpbmdCdWNrZXQoXG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczogY2xvdWRmcm9udC5EaXN0cmlidXRpb25Qcm9wcyB8IGFueSwgc2NvcGU6IENvbnN0cnVjdCxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzXG4pOiBzMy5CdWNrZXQgfCB1bmRlZmluZWQge1xuICBjb25zdCBpc0xvZ2dpbmdEaXNhYmxlZCA9IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz8uZW5hYmxlTG9nZ2luZyA9PT0gZmFsc2U7XG4gIGNvbnN0IHVzZXJTdXBwbGllZExvZ0J1Y2tldCA9IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz8ubG9nQnVja2V0O1xuXG4gIGlmICh1c2VyU3VwcGxpZWRMb2dCdWNrZXQgJiYgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgIHRocm93IEVycm9yKCdFaXRoZXIgY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLmxvZ0J1Y2tldCBvciBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzIGNhbiBiZSBzZXQuJyk7XG4gIH1cblxuICByZXR1cm4gaXNMb2dnaW5nRGlzYWJsZWRcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogdXNlclN1cHBsaWVkTG9nQnVja2V0ID8/IGNyZWF0ZUxvZ2dpbmdCdWNrZXQoXG4gICAgICBzY29wZSxcbiAgICAgICdDbG91ZGZyb250TG9nZ2luZ0J1Y2tldCcsXG4gICAgICBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzID8gb3ZlcnJpZGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBjbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKSA6IERlZmF1bHRTM1Byb3BzKCkpO1xufVxuXG5mdW5jdGlvbiBnZXRDbG91ZGZyb250RnVuY3Rpb24oaHR0cFNlY3VyaXR5SGVhZGVyczogYm9vbGVhbiwgc2NvcGU6IENvbnN0cnVjdCkge1xuICByZXR1cm4gaHR0cFNlY3VyaXR5SGVhZGVycyA/IGRlZmF1bHRDbG91ZGZyb250RnVuY3Rpb24oc2NvcGUpIDogdW5kZWZpbmVkO1xufVxuIl19
@@ -12,4 +12,3 @@
12
12
  */
13
13
  import * as logs from '@aws-cdk/aws-logs';
14
14
  export declare function DefaultLogGroupProps(): logs.LogGroupProps;
15
- //# sourceMappingURL=cloudwatch-log-group-defaults.d.ts.map
@@ -13,4 +13,3 @@
13
13
  import * as logs from '@aws-cdk/aws-logs';
14
14
  import { Construct } from '@aws-cdk/core';
15
15
  export declare function buildLogGroup(scope: Construct, logGroupId?: string, logGroupProps?: logs.LogGroupProps): logs.LogGroup;
16
- //# sourceMappingURL=cloudwatch-log-group-helper.d.ts.map
@@ -15,4 +15,3 @@ declare const DefaultUserPoolProps: cognito.UserPoolProps;
15
15
  export declare function DefaultIdentityPoolProps(userPoolClientId: string, userPoolProviderName: string): cognito.CfnIdentityPoolProps;
16
16
  export declare function DefaultUserPoolClientProps(userpool: cognito.UserPool): cognito.UserPoolClientProps;
17
17
  export { DefaultUserPoolProps };
18
- //# sourceMappingURL=cognito-defaults.d.ts.map
@@ -22,4 +22,3 @@ export declare function buildUserPool(scope: Construct, userPoolProps?: cognito.
22
22
  export declare function buildUserPoolClient(scope: Construct, userPool: cognito.UserPool, cognitoUserPoolClientProps?: cognito.UserPoolClientProps): cognito.UserPoolClient;
23
23
  export declare function buildIdentityPool(scope: Construct, userpool: cognito.UserPool, userpoolclient: cognito.UserPoolClient, identityPoolProps?: cognito.CfnIdentityPoolProps): cognito.CfnIdentityPool;
24
24
  export declare function setupCognitoForElasticSearch(scope: Construct, domainName: string, options: CognitoOptions): iam.Role;
25
- //# sourceMappingURL=cognito-helper.d.ts.map
@@ -14,4 +14,3 @@ import * as dynamodb from '@aws-cdk/aws-dynamodb';
14
14
  declare const DefaultTableProps: dynamodb.TableProps;
15
15
  declare const DefaultTableWithStreamProps: dynamodb.TableProps;
16
16
  export { DefaultTableProps, DefaultTableWithStreamProps };
17
- //# sourceMappingURL=dynamodb-table-defaults.d.ts.map
@@ -53,4 +53,3 @@ export declare function buildDynamoDBTable(scope: Construct, props: BuildDynamoD
53
53
  export declare function checkTableProps(props: BuildDynamoDBTableProps): void;
54
54
  export declare function buildDynamoDBTableWithStream(scope: Construct, props: BuildDynamoDBTableWithStreamProps): [dynamodb.ITable, dynamodb.Table?];
55
55
  export declare function getPartitionKeyNameFromTable(table: dynamodb.Table): string;
56
- //# sourceMappingURL=dynamodb-table-helper.d.ts.map
@@ -19,4 +19,3 @@ export declare function GetMemcachedDefaults(id: string, port: number): {
19
19
  port: number;
20
20
  azMode: string;
21
21
  };
22
- //# sourceMappingURL=elasticache-defaults.d.ts.map
@@ -23,4 +23,3 @@ export interface ObtainMemcachedClusterProps {
23
23
  export declare function obtainMemcachedCluster(scope: Construct, id: string, props: ObtainMemcachedClusterProps): cache.CfnCacheCluster;
24
24
  export declare function createCacheSubnetGroup(construct: Construct, vpc: ec2.IVpc, id: string): cache.CfnSubnetGroup;
25
25
  export declare function getCachePort(clientCacheProps?: cache.CfnCacheClusterProps | any, existingCache?: cache.CfnCacheCluster): any;
26
- //# sourceMappingURL=elasticache-helper.d.ts.map
@@ -17,9 +17,8 @@ const cache = require("@aws-cdk/aws-elasticache");
17
17
  const elasticache_defaults_1 = require("./elasticache-defaults");
18
18
  const utils_1 = require("./utils");
19
19
  function obtainMemcachedCluster(scope, id, props) {
20
- var _a;
21
20
  if (props.existingCache) {
22
- (_a = props.existingCache.vpcSecurityGroupIds) === null || _a === void 0 ? void 0 : _a.push(props.cacheSecurityGroupId);
21
+ props.existingCache.vpcSecurityGroupIds?.push(props.cacheSecurityGroupId);
23
22
  return props.existingCache;
24
23
  }
25
24
  else {
@@ -59,7 +58,7 @@ function getCachePort(clientCacheProps, existingCache) {
59
58
  if (existingCache) {
60
59
  return existingCache.attrConfigurationEndpointPort;
61
60
  }
62
- else if (clientCacheProps === null || clientCacheProps === void 0 ? void 0 : clientCacheProps.port) {
61
+ else if (clientCacheProps?.port) {
63
62
  return clientCacheProps.port;
64
63
  }
65
64
  else {
@@ -67,4 +66,4 @@ function getCachePort(clientCacheProps, existingCache) {
67
66
  }
68
67
  }
69
68
  exports.getCachePort = getCachePort;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY2FjaGUtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWxhc3RpY2FjaGUtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBR0gsa0RBQWtEO0FBRWxELGlFQUFtRjtBQUNuRixtQ0FBMkM7QUFVM0MsU0FBZ0Isc0JBQXNCLENBQ3BDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQzs7SUFHbEMsSUFBSSxLQUFLLENBQUMsYUFBYSxFQUFFO1FBQ3ZCLE1BQUEsS0FBSyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsMENBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtRQUMxRSxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUM7S0FDNUI7U0FBTTtRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3BCLE1BQU0sS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxtRUFBbUU7UUFDbkUsTUFBTSxXQUFXLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFbEUsTUFBTSxZQUFZLEdBQUcsMkNBQW9CLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLHNCQUFzQixHQUFHO1lBQzdCLG1CQUFtQixFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO1lBQ2pELG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxvQkFBb0I7U0FDdkQsQ0FBQztRQUNGLE1BQU0saUJBQWlCLEdBQUcsd0JBQWdCLENBQ3hDLFlBQVksRUFDWixLQUFLLENBQUMsVUFBVSxFQUNoQixzQkFBc0IsRUFDdEIsSUFBSSxDQUNMLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQ3hDLEtBQUssRUFDTCxHQUFHLEVBQUUsVUFBVSxFQUNmLGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyxPQUFPLFFBQVEsQ0FBQztLQUNqQjtBQUVILENBQUM7QUF0Q0Qsd0RBc0NDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQ3BDLFNBQW9CLEVBQ3BCLEdBQWEsRUFDYixFQUFVO0lBR1YsK0NBQStDO0lBQy9DLGlEQUFpRDtJQUNqRCxzQ0FBc0M7SUFDdEMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBQy9CLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDckMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFO1FBQ2pFLFdBQVcsRUFBRSxtREFBbUQ7UUFDaEUsU0FBUztRQUNULG9CQUFvQixFQUFFLEdBQUcsRUFBRSxlQUFlO0tBQzNDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFuQkQsd0RBbUJDO0FBRUQsU0FBZ0IsWUFBWSxDQUMxQixnQkFBbUQsRUFDbkQsYUFBcUM7SUFFckMsSUFBSSxhQUFhLEVBQUU7UUFDakIsT0FBTyxhQUFhLENBQUMsNkJBQThCLENBQUM7S0FDckQ7U0FBTSxJQUFJLGdCQUFnQixhQUFoQixnQkFBZ0IsdUJBQWhCLGdCQUFnQixDQUFFLElBQUksRUFBRTtRQUNqQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQztLQUM5QjtTQUFNO1FBQ0wsT0FBTywwQ0FBbUIsRUFBRSxDQUFDO0tBQzlCO0FBQ0gsQ0FBQztBQVhELG9DQVdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcIkBhd3MtY2RrL2F3cy1lYzJcIjtcbmltcG9ydCAqIGFzIGNhY2hlIGZyb20gXCJAYXdzLWNkay9hd3MtZWxhc3RpY2FjaGVcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJAYXdzLWNkay9jb3JlXCI7XG5pbXBvcnQgeyBHZXREZWZhdWx0Q2FjaGVQb3J0LCBHZXRNZW1jYWNoZWREZWZhdWx0cyB9IGZyb20gJy4vZWxhc3RpY2FjaGUtZGVmYXVsdHMnO1xuaW1wb3J0IHsgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9idGFpbk1lbWNhY2hlZENsdXN0ZXJQcm9wcyB7XG4gIHJlYWRvbmx5IGNhY2hlUG9ydD86IGFueSxcbiAgcmVhZG9ubHkgY2FjaGVTZWN1cml0eUdyb3VwSWQ6IHN0cmluZyxcbiAgcmVhZG9ubHkgY2FjaGVQcm9wcz86IGNhY2hlLkNmbkNhY2hlQ2x1c3RlclByb3BzIHwgYW55LFxuICByZWFkb25seSBleGlzdGluZ0NhY2hlPzogY2FjaGUuQ2ZuQ2FjaGVDbHVzdGVyLFxuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9idGFpbk1lbWNhY2hlZENsdXN0ZXIoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzOiBPYnRhaW5NZW1jYWNoZWRDbHVzdGVyUHJvcHNcbikge1xuXG4gIGlmIChwcm9wcy5leGlzdGluZ0NhY2hlKSB7XG4gICAgcHJvcHMuZXhpc3RpbmdDYWNoZS52cGNTZWN1cml0eUdyb3VwSWRzPy5wdXNoKHByb3BzLmNhY2hlU2VjdXJpdHlHcm91cElkKTtcbiAgICByZXR1cm4gcHJvcHMuZXhpc3RpbmdDYWNoZTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoIXByb3BzLmNhY2hlUG9ydCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ3Byb3BzLmNhY2hlUG9ydCByZXF1aXJlZCBmb3IgbmV3IGNhY2hlcycpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSB0aGUgc3VibmV0IGdyb3VwIGZyb20gYWxsIHRoZSBpc29sYXRlZCBzdWJuZXRzIGluIHRoZSBWUENcbiAgICBjb25zdCBzdWJuZXRHcm91cCA9IGNyZWF0ZUNhY2hlU3VibmV0R3JvdXAoc2NvcGUsIHByb3BzLnZwYyEsIGlkKTtcblxuICAgIGNvbnN0IGRlZmF1bHRQcm9wcyA9IEdldE1lbWNhY2hlZERlZmF1bHRzKGlkLCBwcm9wcy5jYWNoZVBvcnQpO1xuICAgIGNvbnN0IHJlcXVpcmVkQ29uc3RydWN0UHJvcHMgPSB7XG4gICAgICB2cGNTZWN1cml0eUdyb3VwSWRzOiBbcHJvcHMuY2FjaGVTZWN1cml0eUdyb3VwSWRdLFxuICAgICAgY2FjaGVTdWJuZXRHcm91cE5hbWU6IHN1Ym5ldEdyb3VwLmNhY2hlU3VibmV0R3JvdXBOYW1lLFxuICAgIH07XG4gICAgY29uc3QgY29uc29saWRhdGVkUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKFxuICAgICAgZGVmYXVsdFByb3BzLFxuICAgICAgcHJvcHMuY2FjaGVQcm9wcyxcbiAgICAgIHJlcXVpcmVkQ29uc3RydWN0UHJvcHMsXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIGNvbnN0IG5ld0NhY2hlID0gbmV3IGNhY2hlLkNmbkNhY2hlQ2x1c3RlcihcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7aWR9LWNsdXN0ZXJgLFxuICAgICAgY29uc29saWRhdGVkUHJvcHNcbiAgICApO1xuICAgIG5ld0NhY2hlLmFkZERlcGVuZHNPbihzdWJuZXRHcm91cCk7XG4gICAgcmV0dXJuIG5ld0NhY2hlO1xuICB9XG5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNhY2hlU3VibmV0R3JvdXAoXG4gIGNvbnN0cnVjdDogQ29uc3RydWN0LFxuICB2cGM6IGVjMi5JVnBjLFxuICBpZDogc3RyaW5nXG4pOiBjYWNoZS5DZm5TdWJuZXRHcm91cCB7XG5cbiAgLy8gTWVtY2FjaGVkIGhhcyBubyBhdXRoLCBhbGwgYWNjZXNzIGNvbnRyb2wgaXNcbiAgLy8gbmV0d29yayBiYXNlZCwgc28sIGF0IGxlYXN0IGluaXRpYWxseSwgd2Ugd2lsbFxuICAvLyBvbmx5IGxhdW5jaCBpdCBpbiBpc29sYXRlZCBzdWJuZXRzLlxuICBjb25zdCBzdWJuZXRJZHM6IHN0cmluZ1tdID0gW107XG4gIHZwYy5pc29sYXRlZFN1Ym5ldHMuZm9yRWFjaCgoc3VibmV0KSA9PiB7XG4gICAgc3VibmV0SWRzLnB1c2goc3VibmV0LnN1Ym5ldElkKTtcbiAgfSk7XG5cbiAgcmV0dXJuIG5ldyBjYWNoZS5DZm5TdWJuZXRHcm91cChjb25zdHJ1Y3QsIGBlYy1zdWJuZXRncm91cC0ke2lkfWAsIHtcbiAgICBkZXNjcmlwdGlvbjogXCJTb2x1dGlvbnMgQ29uc3RydWN0cyBnZW5lcmF0ZWQgQ2FjaGUgU3VibmV0IEdyb3VwXCIsXG4gICAgc3VibmV0SWRzLFxuICAgIGNhY2hlU3VibmV0R3JvdXBOYW1lOiBgJHtpZH0tc3VibmV0LWdyb3VwYCxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWNoZVBvcnQoXG4gIGNsaWVudENhY2hlUHJvcHM/OiBjYWNoZS5DZm5DYWNoZUNsdXN0ZXJQcm9wcyB8IGFueSxcbiAgZXhpc3RpbmdDYWNoZT86IGNhY2hlLkNmbkNhY2hlQ2x1c3RlclxuKTogYW55IHtcbiAgaWYgKGV4aXN0aW5nQ2FjaGUpIHtcbiAgICByZXR1cm4gZXhpc3RpbmdDYWNoZS5hdHRyQ29uZmlndXJhdGlvbkVuZHBvaW50UG9ydCE7XG4gIH0gZWxzZSBpZiAoY2xpZW50Q2FjaGVQcm9wcz8ucG9ydCkge1xuICAgIHJldHVybiBjbGllbnRDYWNoZVByb3BzLnBvcnQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIEdldERlZmF1bHRDYWNoZVBvcnQoKTtcbiAgfVxufVxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY2FjaGUtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZWxhc3RpY2FjaGUtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBR0gsa0RBQWtEO0FBRWxELGlFQUFtRjtBQUNuRixtQ0FBMkM7QUFVM0MsU0FBZ0Isc0JBQXNCLENBQ3BDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQztJQUdsQyxJQUFJLEtBQUssQ0FBQyxhQUFhLEVBQUU7UUFDdkIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUUsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDO0tBQzVCO1NBQU07UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTtZQUNwQixNQUFNLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQ3hEO1FBRUQsbUVBQW1FO1FBQ25FLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWxFLE1BQU0sWUFBWSxHQUFHLDJDQUFvQixDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0QsTUFBTSxzQkFBc0IsR0FBRztZQUM3QixtQkFBbUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztZQUNqRCxvQkFBb0IsRUFBRSxXQUFXLENBQUMsb0JBQW9CO1NBQ3ZELENBQUM7UUFDRixNQUFNLGlCQUFpQixHQUFHLHdCQUFnQixDQUN4QyxZQUFZLEVBQ1osS0FBSyxDQUFDLFVBQVUsRUFDaEIsc0JBQXNCLEVBQ3RCLElBQUksQ0FDTCxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUN4QyxLQUFLLEVBQ0wsR0FBRyxFQUFFLFVBQVUsRUFDZixpQkFBaUIsQ0FDbEIsQ0FBQztRQUNGLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkMsT0FBTyxRQUFRLENBQUM7S0FDakI7QUFFSCxDQUFDO0FBdENELHdEQXNDQztBQUVELFNBQWdCLHNCQUFzQixDQUNwQyxTQUFvQixFQUNwQixHQUFhLEVBQ2IsRUFBVTtJQUdWLCtDQUErQztJQUMvQyxpREFBaUQ7SUFDakQsc0NBQXNDO0lBQ3RDLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztJQUMvQixHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsRUFBRTtRQUNqRSxXQUFXLEVBQUUsbURBQW1EO1FBQ2hFLFNBQVM7UUFDVCxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsZUFBZTtLQUMzQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBbkJELHdEQW1CQztBQUVELFNBQWdCLFlBQVksQ0FDMUIsZ0JBQW1ELEVBQ25ELGFBQXFDO0lBRXJDLElBQUksYUFBYSxFQUFFO1FBQ2pCLE9BQU8sYUFBYSxDQUFDLDZCQUE4QixDQUFDO0tBQ3JEO1NBQU0sSUFBSSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUU7UUFDakMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7S0FDOUI7U0FBTTtRQUNMLE9BQU8sMENBQW1CLEVBQUUsQ0FBQztLQUM5QjtBQUNILENBQUM7QUFYRCxvQ0FXQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCAyMDIyIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJAYXdzLWNkay9hd3MtZWMyXCI7XG5pbXBvcnQgKiBhcyBjYWNoZSBmcm9tIFwiQGF3cy1jZGsvYXdzLWVsYXN0aWNhY2hlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiQGF3cy1jZGsvY29yZVwiO1xuaW1wb3J0IHsgR2V0RGVmYXVsdENhY2hlUG9ydCwgR2V0TWVtY2FjaGVkRGVmYXVsdHMgfSBmcm9tICcuL2VsYXN0aWNhY2hlLWRlZmF1bHRzJztcbmltcG9ydCB7IGNvbnNvbGlkYXRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBPYnRhaW5NZW1jYWNoZWRDbHVzdGVyUHJvcHMge1xuICByZWFkb25seSBjYWNoZVBvcnQ/OiBhbnksXG4gIHJlYWRvbmx5IGNhY2hlU2VjdXJpdHlHcm91cElkOiBzdHJpbmcsXG4gIHJlYWRvbmx5IGNhY2hlUHJvcHM/OiBjYWNoZS5DZm5DYWNoZUNsdXN0ZXJQcm9wcyB8IGFueSxcbiAgcmVhZG9ubHkgZXhpc3RpbmdDYWNoZT86IGNhY2hlLkNmbkNhY2hlQ2x1c3RlcixcbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGMsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnRhaW5NZW1jYWNoZWRDbHVzdGVyKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBwcm9wczogT2J0YWluTWVtY2FjaGVkQ2x1c3RlclByb3BzXG4pIHtcblxuICBpZiAocHJvcHMuZXhpc3RpbmdDYWNoZSkge1xuICAgIHByb3BzLmV4aXN0aW5nQ2FjaGUudnBjU2VjdXJpdHlHcm91cElkcz8ucHVzaChwcm9wcy5jYWNoZVNlY3VyaXR5R3JvdXBJZCk7XG4gICAgcmV0dXJuIHByb3BzLmV4aXN0aW5nQ2FjaGU7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCFwcm9wcy5jYWNoZVBvcnQpIHtcbiAgICAgIHRocm93IEVycm9yKCdwcm9wcy5jYWNoZVBvcnQgcmVxdWlyZWQgZm9yIG5ldyBjYWNoZXMnKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIHN1Ym5ldCBncm91cCBmcm9tIGFsbCB0aGUgaXNvbGF0ZWQgc3VibmV0cyBpbiB0aGUgVlBDXG4gICAgY29uc3Qgc3VibmV0R3JvdXAgPSBjcmVhdGVDYWNoZVN1Ym5ldEdyb3VwKHNjb3BlLCBwcm9wcy52cGMhLCBpZCk7XG5cbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSBHZXRNZW1jYWNoZWREZWZhdWx0cyhpZCwgcHJvcHMuY2FjaGVQb3J0KTtcbiAgICBjb25zdCByZXF1aXJlZENvbnN0cnVjdFByb3BzID0ge1xuICAgICAgdnBjU2VjdXJpdHlHcm91cElkczogW3Byb3BzLmNhY2hlU2VjdXJpdHlHcm91cElkXSxcbiAgICAgIGNhY2hlU3VibmV0R3JvdXBOYW1lOiBzdWJuZXRHcm91cC5jYWNoZVN1Ym5ldEdyb3VwTmFtZSxcbiAgICB9O1xuICAgIGNvbnN0IGNvbnNvbGlkYXRlZFByb3BzID0gY29uc29saWRhdGVQcm9wcyhcbiAgICAgIGRlZmF1bHRQcm9wcyxcbiAgICAgIHByb3BzLmNhY2hlUHJvcHMsXG4gICAgICByZXF1aXJlZENvbnN0cnVjdFByb3BzLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBuZXdDYWNoZSA9IG5ldyBjYWNoZS5DZm5DYWNoZUNsdXN0ZXIoXG4gICAgICBzY29wZSxcbiAgICAgIGAke2lkfS1jbHVzdGVyYCxcbiAgICAgIGNvbnNvbGlkYXRlZFByb3BzXG4gICAgKTtcbiAgICBuZXdDYWNoZS5hZGREZXBlbmRzT24oc3VibmV0R3JvdXApO1xuICAgIHJldHVybiBuZXdDYWNoZTtcbiAgfVxuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDYWNoZVN1Ym5ldEdyb3VwKFxuICBjb25zdHJ1Y3Q6IENvbnN0cnVjdCxcbiAgdnBjOiBlYzIuSVZwYyxcbiAgaWQ6IHN0cmluZ1xuKTogY2FjaGUuQ2ZuU3VibmV0R3JvdXAge1xuXG4gIC8vIE1lbWNhY2hlZCBoYXMgbm8gYXV0aCwgYWxsIGFjY2VzcyBjb250cm9sIGlzXG4gIC8vIG5ldHdvcmsgYmFzZWQsIHNvLCBhdCBsZWFzdCBpbml0aWFsbHksIHdlIHdpbGxcbiAgLy8gb25seSBsYXVuY2ggaXQgaW4gaXNvbGF0ZWQgc3VibmV0cy5cbiAgY29uc3Qgc3VibmV0SWRzOiBzdHJpbmdbXSA9IFtdO1xuICB2cGMuaXNvbGF0ZWRTdWJuZXRzLmZvckVhY2goKHN1Ym5ldCkgPT4ge1xuICAgIHN1Ym5ldElkcy5wdXNoKHN1Ym5ldC5zdWJuZXRJZCk7XG4gIH0pO1xuXG4gIHJldHVybiBuZXcgY2FjaGUuQ2ZuU3VibmV0R3JvdXAoY29uc3RydWN0LCBgZWMtc3VibmV0Z3JvdXAtJHtpZH1gLCB7XG4gICAgZGVzY3JpcHRpb246IFwiU29sdXRpb25zIENvbnN0cnVjdHMgZ2VuZXJhdGVkIENhY2hlIFN1Ym5ldCBHcm91cFwiLFxuICAgIHN1Ym5ldElkcyxcbiAgICBjYWNoZVN1Ym5ldEdyb3VwTmFtZTogYCR7aWR9LXN1Ym5ldC1ncm91cGAsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FjaGVQb3J0KFxuICBjbGllbnRDYWNoZVByb3BzPzogY2FjaGUuQ2ZuQ2FjaGVDbHVzdGVyUHJvcHMgfCBhbnksXG4gIGV4aXN0aW5nQ2FjaGU/OiBjYWNoZS5DZm5DYWNoZUNsdXN0ZXJcbik6IGFueSB7XG4gIGlmIChleGlzdGluZ0NhY2hlKSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nQ2FjaGUuYXR0ckNvbmZpZ3VyYXRpb25FbmRwb2ludFBvcnQhO1xuICB9IGVsc2UgaWYgKGNsaWVudENhY2hlUHJvcHM/LnBvcnQpIHtcbiAgICByZXR1cm4gY2xpZW50Q2FjaGVQcm9wcy5wb3J0O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBHZXREZWZhdWx0Q2FjaGVQb3J0KCk7XG4gIH1cbn1cbiJdfQ==
@@ -11,13 +11,6 @@
11
11
  * and limitations under the License.
12
12
  */
13
13
  import * as elasticsearch from '@aws-cdk/aws-elasticsearch';
14
- import * as cognito from '@aws-cdk/aws-cognito';
15
14
  import * as iam from '@aws-cdk/aws-iam';
16
- export interface CfnDomainOptions {
17
- readonly identitypool: cognito.CfnIdentityPool;
18
- readonly userpool: cognito.UserPool;
19
- readonly cognitoAuthorizedRoleARN: string;
20
- readonly serviceRoleARN?: string;
21
- }
22
- export declare function DefaultCfnDomainProps(domainName: string, cognitoKibanaConfigureRole: iam.Role, options: CfnDomainOptions): elasticsearch.CfnDomainProps;
23
- //# sourceMappingURL=elasticsearch-defaults.d.ts.map
15
+ import { BuildElasticSearchProps } from './elasticsearch-helper';
16
+ export declare function DefaultCfnDomainProps(domainName: string, cognitoKibanaConfigureRole: iam.Role, props: BuildElasticSearchProps): elasticsearch.CfnDomainProps;
@@ -15,11 +15,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DefaultCfnDomainProps = void 0;
16
16
  const iam = require("@aws-cdk/aws-iam");
17
17
  const cdk = require("@aws-cdk/core");
18
- function DefaultCfnDomainProps(domainName, cognitoKibanaConfigureRole, options) {
18
+ function DefaultCfnDomainProps(domainName, cognitoKibanaConfigureRole, props) {
19
19
  const roleARNs = [];
20
- roleARNs.push(new iam.ArnPrincipal(options.cognitoAuthorizedRoleARN));
21
- if (options.serviceRoleARN) {
22
- roleARNs.push(new iam.ArnPrincipal(options.serviceRoleARN));
20
+ roleARNs.push(new iam.ArnPrincipal(props.cognitoAuthorizedRoleARN));
21
+ if (props.serviceRoleARN) {
22
+ roleARNs.push(new iam.ArnPrincipal(props.serviceRoleARN));
23
23
  }
24
24
  return {
25
25
  domainName,
@@ -30,15 +30,6 @@ function DefaultCfnDomainProps(domainName, cognitoKibanaConfigureRole, options)
30
30
  nodeToNodeEncryptionOptions: {
31
31
  enabled: true
32
32
  },
33
- elasticsearchClusterConfig: {
34
- dedicatedMasterEnabled: true,
35
- dedicatedMasterCount: 3,
36
- instanceCount: 3,
37
- zoneAwarenessEnabled: true,
38
- zoneAwarenessConfig: {
39
- availabilityZoneCount: 3
40
- }
41
- },
42
33
  snapshotOptions: {
43
34
  automatedSnapshotStartHour: 1
44
35
  },
@@ -48,8 +39,8 @@ function DefaultCfnDomainProps(domainName, cognitoKibanaConfigureRole, options)
48
39
  },
49
40
  cognitoOptions: {
50
41
  enabled: true,
51
- identityPoolId: options.identitypool.ref,
52
- userPoolId: options.userpool.userPoolId,
42
+ identityPoolId: props.identitypool.ref,
43
+ userPoolId: props.userpool.userPoolId,
53
44
  roleArn: cognitoKibanaConfigureRole.roleArn
54
45
  },
55
46
  accessPolicies: new iam.PolicyDocument({
@@ -68,4 +59,4 @@ function DefaultCfnDomainProps(domainName, cognitoKibanaConfigureRole, options)
68
59
  };
69
60
  }
70
61
  exports.DefaultCfnDomainProps = DefaultCfnDomainProps;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVsYXN0aWNzZWFyY2gtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFJSCx3Q0FBd0M7QUFDeEMscUNBQXFDO0FBU3JDLFNBQWdCLHFCQUFxQixDQUFDLFVBQWtCLEVBQUUsMEJBQW9DLEVBQUUsT0FBeUI7SUFDdkgsTUFBTSxRQUFRLEdBQXFCLEVBQUUsQ0FBQztJQUV0QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBRXRFLElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRTtRQUMxQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztLQUM3RDtJQUVELE9BQU87UUFDTCxVQUFVO1FBQ1Ysb0JBQW9CLEVBQUUsS0FBSztRQUMzQix1QkFBdUIsRUFBRTtZQUN2QixPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0QsMkJBQTJCLEVBQUU7WUFDM0IsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNELDBCQUEwQixFQUFFO1lBQzFCLHNCQUFzQixFQUFFLElBQUk7WUFDNUIsb0JBQW9CLEVBQUUsQ0FBQztZQUN2QixhQUFhLEVBQUUsQ0FBQztZQUNoQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLG1CQUFtQixFQUFFO2dCQUNuQixxQkFBcUIsRUFBRSxDQUFDO2FBQ3pCO1NBQ0Y7UUFDRCxlQUFlLEVBQUU7WUFDZiwwQkFBMEIsRUFBRSxDQUFDO1NBQzlCO1FBQ0QsVUFBVSxFQUFFO1lBQ1YsVUFBVSxFQUFFLElBQUk7WUFDaEIsVUFBVSxFQUFFLEVBQUU7U0FDZjtRQUNELGNBQWMsRUFBRTtZQUNkLE9BQU8sRUFBRSxJQUFJO1lBQ2IsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRztZQUN4QyxVQUFVLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVO1lBQ3ZDLE9BQU8sRUFBRSwwQkFBMEIsQ0FBQyxPQUFPO1NBQzVDO1FBQ0QsY0FBYyxFQUFFLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQztZQUNyQyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO29CQUN0QixVQUFVLEVBQUUsUUFBUTtvQkFDcEIsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULGNBQWMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLFdBQVcsVUFBVSxJQUFJO3FCQUM1RTtpQkFDRixDQUFDO2FBQ0g7U0FDRixDQUFDO0tBQzZCLENBQUM7QUFDcEMsQ0FBQztBQXRERCxzREFzREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGVsYXN0aWNzZWFyY2ggZnJvbSAnQGF3cy1jZGsvYXdzLWVsYXN0aWNzZWFyY2gnO1xuaW1wb3J0ICogYXMgY29nbml0byBmcm9tICdAYXdzLWNkay9hd3MtY29nbml0byc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2ZuRG9tYWluT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGlkZW50aXR5cG9vbDogY29nbml0by5DZm5JZGVudGl0eVBvb2wsXG4gIHJlYWRvbmx5IHVzZXJwb29sOiBjb2duaXRvLlVzZXJQb29sLFxuICByZWFkb25seSBjb2duaXRvQXV0aG9yaXplZFJvbGVBUk46IHN0cmluZyxcbiAgcmVhZG9ubHkgc2VydmljZVJvbGVBUk4/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRDZm5Eb21haW5Qcm9wcyhkb21haW5OYW1lOiBzdHJpbmcsIGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlOiBpYW0uUm9sZSwgb3B0aW9uczogQ2ZuRG9tYWluT3B0aW9ucykge1xuICBjb25zdCByb2xlQVJOczogaWFtLklQcmluY2lwYWxbXSA9IFtdO1xuXG4gIHJvbGVBUk5zLnB1c2gobmV3IGlhbS5Bcm5QcmluY2lwYWwob3B0aW9ucy5jb2duaXRvQXV0aG9yaXplZFJvbGVBUk4pKTtcblxuICBpZiAob3B0aW9ucy5zZXJ2aWNlUm9sZUFSTikge1xuICAgIHJvbGVBUk5zLnB1c2gobmV3IGlhbS5Bcm5QcmluY2lwYWwob3B0aW9ucy5zZXJ2aWNlUm9sZUFSTikpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkb21haW5OYW1lLFxuICAgIGVsYXN0aWNzZWFyY2hWZXJzaW9uOiAnNi4zJyxcbiAgICBlbmNyeXB0aW9uQXRSZXN0T3B0aW9uczoge1xuICAgICAgZW5hYmxlZDogdHJ1ZVxuICAgIH0sXG4gICAgbm9kZVRvTm9kZUVuY3J5cHRpb25PcHRpb25zOiB7XG4gICAgICBlbmFibGVkOiB0cnVlXG4gICAgfSxcbiAgICBlbGFzdGljc2VhcmNoQ2x1c3RlckNvbmZpZzoge1xuICAgICAgZGVkaWNhdGVkTWFzdGVyRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGRlZGljYXRlZE1hc3RlckNvdW50OiAzLFxuICAgICAgaW5zdGFuY2VDb3VudDogMyxcbiAgICAgIHpvbmVBd2FyZW5lc3NFbmFibGVkOiB0cnVlLFxuICAgICAgem9uZUF3YXJlbmVzc0NvbmZpZzoge1xuICAgICAgICBhdmFpbGFiaWxpdHlab25lQ291bnQ6IDNcbiAgICAgIH1cbiAgICB9LFxuICAgIHNuYXBzaG90T3B0aW9uczoge1xuICAgICAgYXV0b21hdGVkU25hcHNob3RTdGFydEhvdXI6IDFcbiAgICB9LFxuICAgIGVic09wdGlvbnM6IHtcbiAgICAgIGVic0VuYWJsZWQ6IHRydWUsXG4gICAgICB2b2x1bWVTaXplOiAxMFxuICAgIH0sXG4gICAgY29nbml0b09wdGlvbnM6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBpZGVudGl0eVBvb2xJZDogb3B0aW9ucy5pZGVudGl0eXBvb2wucmVmLFxuICAgICAgdXNlclBvb2xJZDogb3B0aW9ucy51c2VycG9vbC51c2VyUG9vbElkLFxuICAgICAgcm9sZUFybjogY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGUucm9sZUFyblxuICAgIH0sXG4gICAgYWNjZXNzUG9saWNpZXM6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcHJpbmNpcGFsczogcm9sZUFSTnMsXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ2VzOkVTSHR0cConXG4gICAgICAgICAgXSxcbiAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgIGBhcm46YXdzOmVzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTpkb21haW4vJHtkb21haW5OYW1lfS8qYFxuICAgICAgICAgIF1cbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KVxuICB9IGFzIGVsYXN0aWNzZWFyY2guQ2ZuRG9tYWluUHJvcHM7XG59Il19
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhc3RpY3NlYXJjaC1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVsYXN0aWNzZWFyY2gtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFHSCx3Q0FBd0M7QUFDeEMscUNBQXFDO0FBR3JDLFNBQWdCLHFCQUFxQixDQUFDLFVBQWtCLEVBQUUsMEJBQW9DLEVBQUUsS0FBOEI7SUFFNUgsTUFBTSxRQUFRLEdBQXFCLEVBQUUsQ0FBQztJQUV0QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBRXBFLElBQUksS0FBSyxDQUFDLGNBQWMsRUFBRTtRQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztLQUMzRDtJQUVELE9BQU87UUFDTCxVQUFVO1FBQ1Ysb0JBQW9CLEVBQUUsS0FBSztRQUMzQix1QkFBdUIsRUFBRTtZQUN2QixPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0QsMkJBQTJCLEVBQUU7WUFDM0IsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNELGVBQWUsRUFBRTtZQUNmLDBCQUEwQixFQUFFLENBQUM7U0FDOUI7UUFDRCxVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUUsSUFBSTtZQUNoQixVQUFVLEVBQUUsRUFBRTtTQUNmO1FBQ0QsY0FBYyxFQUFFO1lBQ2QsT0FBTyxFQUFFLElBQUk7WUFDYixjQUFjLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHO1lBQ3RDLFVBQVUsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVU7WUFDckMsT0FBTyxFQUFFLDBCQUEwQixDQUFDLE9BQU87U0FDNUM7UUFDRCxjQUFjLEVBQUUsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQ3JDLFVBQVUsRUFBRTtnQkFDVixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7b0JBQ3RCLFVBQVUsRUFBRSxRQUFRO29CQUNwQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsY0FBYyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsV0FBVyxVQUFVLElBQUk7cUJBQzVFO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUM7S0FDNkIsQ0FBQztBQUNwQyxDQUFDO0FBOUNELHNEQThDQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCAyMDIyIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgZWxhc3RpY3NlYXJjaCBmcm9tICdAYXdzLWNkay9hd3MtZWxhc3RpY3NlYXJjaCc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnQGF3cy1jZGsvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5pbXBvcnQgeyBCdWlsZEVsYXN0aWNTZWFyY2hQcm9wcyB9IGZyb20gJy4vZWxhc3RpY3NlYXJjaC1oZWxwZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdENmbkRvbWFpblByb3BzKGRvbWFpbk5hbWU6IHN0cmluZywgY29nbml0b0tpYmFuYUNvbmZpZ3VyZVJvbGU6IGlhbS5Sb2xlLCBwcm9wczogQnVpbGRFbGFzdGljU2VhcmNoUHJvcHMpOlxuICBlbGFzdGljc2VhcmNoLkNmbkRvbWFpblByb3BzIHtcbiAgY29uc3Qgcm9sZUFSTnM6IGlhbS5JUHJpbmNpcGFsW10gPSBbXTtcblxuICByb2xlQVJOcy5wdXNoKG5ldyBpYW0uQXJuUHJpbmNpcGFsKHByb3BzLmNvZ25pdG9BdXRob3JpemVkUm9sZUFSTikpO1xuXG4gIGlmIChwcm9wcy5zZXJ2aWNlUm9sZUFSTikge1xuICAgIHJvbGVBUk5zLnB1c2gobmV3IGlhbS5Bcm5QcmluY2lwYWwocHJvcHMuc2VydmljZVJvbGVBUk4pKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZG9tYWluTmFtZSxcbiAgICBlbGFzdGljc2VhcmNoVmVyc2lvbjogJzYuMycsXG4gICAgZW5jcnlwdGlvbkF0UmVzdE9wdGlvbnM6IHtcbiAgICAgIGVuYWJsZWQ6IHRydWVcbiAgICB9LFxuICAgIG5vZGVUb05vZGVFbmNyeXB0aW9uT3B0aW9uczoge1xuICAgICAgZW5hYmxlZDogdHJ1ZVxuICAgIH0sXG4gICAgc25hcHNob3RPcHRpb25zOiB7XG4gICAgICBhdXRvbWF0ZWRTbmFwc2hvdFN0YXJ0SG91cjogMVxuICAgIH0sXG4gICAgZWJzT3B0aW9uczoge1xuICAgICAgZWJzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIHZvbHVtZVNpemU6IDEwXG4gICAgfSxcbiAgICBjb2duaXRvT3B0aW9uczoge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIGlkZW50aXR5UG9vbElkOiBwcm9wcy5pZGVudGl0eXBvb2wucmVmLFxuICAgICAgdXNlclBvb2xJZDogcHJvcHMudXNlcnBvb2wudXNlclBvb2xJZCxcbiAgICAgIHJvbGVBcm46IGNvZ25pdG9LaWJhbmFDb25maWd1cmVSb2xlLnJvbGVBcm5cbiAgICB9LFxuICAgIGFjY2Vzc1BvbGljaWVzOiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHByaW5jaXBhbHM6IHJvbGVBUk5zLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICdlczpFU0h0dHAqJ1xuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICBgYXJuOmF3czplczoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06ZG9tYWluLyR7ZG9tYWluTmFtZX0vKmBcbiAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSlcbiAgfSBhcyBlbGFzdGljc2VhcmNoLkNmbkRvbWFpblByb3BzO1xufSJdfQ==
@@ -11,10 +11,20 @@
11
11
  * and limitations under the License.
12
12
  */
13
13
  import * as elasticsearch from '@aws-cdk/aws-elasticsearch';
14
- import { CfnDomainOptions } from './elasticsearch-defaults';
15
14
  import * as iam from '@aws-cdk/aws-iam';
16
15
  import * as cloudwatch from '@aws-cdk/aws-cloudwatch';
16
+ import * as cognito from '@aws-cdk/aws-cognito';
17
+ import * as ec2 from '@aws-cdk/aws-ec2';
17
18
  import { Construct } from '@aws-cdk/core';
18
- export declare function buildElasticSearch(scope: Construct, domainName: string, options: CfnDomainOptions, cfnDomainProps?: elasticsearch.CfnDomainProps): [elasticsearch.CfnDomain, iam.Role];
19
+ export interface BuildElasticSearchProps {
20
+ readonly identitypool: cognito.CfnIdentityPool;
21
+ readonly userpool: cognito.UserPool;
22
+ readonly cognitoAuthorizedRoleARN: string;
23
+ readonly serviceRoleARN?: string;
24
+ readonly vpc?: ec2.IVpc;
25
+ readonly domainName: string;
26
+ readonly clientDomainProps?: elasticsearch.CfnDomainProps;
27
+ readonly securityGroupIds?: string[];
28
+ }
29
+ export declare function buildElasticSearch(scope: Construct, props: BuildElasticSearchProps): [elasticsearch.CfnDomain, iam.Role];
19
30
  export declare function buildElasticSearchCWAlarms(scope: Construct): cloudwatch.Alarm[];
20
- //# sourceMappingURL=elasticsearch-helper.d.ts.map