@horietakehiro/aws-cdk-utul 0.35.5 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/lib/assertions.d.ts +219 -12
  2. package/lib/assertions.js +228 -66
  3. package/lib/typed-resource.d.ts +1 -1
  4. package/lib/typed-resource.js +1 -1
  5. package/lib/types/cfn-resource-types/aws-accessanalyzer-analyzer.d.ts +33 -1
  6. package/lib/types/cfn-resource-types/aws-accessanalyzer-analyzer.js +1 -1
  7. package/lib/types/cfn-resource-types/aws-amplify-app.d.ts +4 -0
  8. package/lib/types/cfn-resource-types/aws-amplify-app.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-cleanrooms-collaboration.d.ts +3 -3
  10. package/lib/types/cfn-resource-types/aws-cleanrooms-collaboration.js +1 -1
  11. package/lib/types/cfn-resource-types/aws-connect-evaluationform.d.ts +113 -103
  12. package/lib/types/cfn-resource-types/aws-connect-evaluationform.js +1 -1
  13. package/lib/types/cfn-resource-types/aws-customerprofiles-segmentdefinition.d.ts +20 -0
  14. package/lib/types/cfn-resource-types/aws-customerprofiles-segmentdefinition.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-datazone-projectprofile.d.ts +28 -0
  16. package/lib/types/cfn-resource-types/aws-datazone-projectprofile.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-dynamodb-table.d.ts +2 -2
  18. package/lib/types/cfn-resource-types/aws-dynamodb-table.js +1 -1
  19. package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.d.ts +10 -0
  20. package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.js +1 -1
  21. package/lib/types/cfn-resource-types/aws-ec2-subnet.d.ts +7 -1
  22. package/lib/types/cfn-resource-types/aws-ec2-subnet.js +1 -1
  23. package/lib/types/cfn-resource-types/aws-ec2-trafficmirrorfilter.d.ts +18 -2
  24. package/lib/types/cfn-resource-types/aws-ec2-trafficmirrorfilter.js +1 -1
  25. package/lib/types/cfn-resource-types/aws-inspectorv2-filter.d.ts +22 -1
  26. package/lib/types/cfn-resource-types/aws-inspectorv2-filter.js +1 -1
  27. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.d.ts +38 -0
  28. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.js +1 -1
  29. package/lib/types/cfn-resource-types/aws-mpa-approvalteam.d.ts +54 -0
  30. package/lib/types/cfn-resource-types/aws-mpa-approvalteam.js +3 -0
  31. package/lib/types/cfn-resource-types/aws-mpa-identitysource.d.ts +33 -0
  32. package/lib/types/cfn-resource-types/aws-mpa-identitysource.js +3 -0
  33. package/lib/types/cfn-resource-types/aws-organizations-policy.d.ts +2 -2
  34. package/lib/types/cfn-resource-types/aws-organizations-policy.js +1 -1
  35. package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.d.ts +18 -18
  36. package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.js +1 -1
  37. package/lib/types/cfn-resource-types/aws-securityhub-aggregatorv2.d.ts +38 -0
  38. package/lib/types/cfn-resource-types/aws-securityhub-aggregatorv2.js +3 -0
  39. package/lib/types/cfn-resource-types/aws-securityhub-automationrulev2.d.ts +282 -0
  40. package/lib/types/cfn-resource-types/aws-securityhub-automationrulev2.js +3 -0
  41. package/lib/types/cfn-resource-types/aws-securityhub-hubv2.d.ts +24 -0
  42. package/lib/types/cfn-resource-types/aws-securityhub-hubv2.js +3 -0
  43. package/lib/types/cfn-resource-types/aws-synthetics-canary.d.ts +4 -0
  44. package/lib/types/cfn-resource-types/aws-synthetics-canary.js +1 -1
  45. package/lib/types/cfn-resource-types.d.ts +10 -0
  46. package/lib/types/cfn-resource-types.js +22 -12
  47. package/package.json +1 -1
@@ -14,6 +14,14 @@ export type DateDimensionType = ("BEFORE" | "AFTER" | "BETWEEN" | "NOT_BETWEEN"
14
14
  * The type of segment dimension to use.
15
15
  */
16
16
  export type AttributeDimensionType = ("INCLUSIVE" | "EXCLUSIVE" | "CONTAINS" | "BEGINS_WITH" | "ENDS_WITH" | "BEFORE" | "AFTER" | "BETWEEN" | "NOT_BETWEEN" | "ON" | "GREATER_THAN" | "LESS_THAN" | "GREATER_THAN_OR_EQUAL" | "LESS_THAN_OR_EQUAL" | "EQUAL");
17
+ /**
18
+ * The type of segment dimension to use for a profile type dimension.
19
+ */
20
+ export type ProfileTypeDimensionType = ("INCLUSIVE" | "EXCLUSIVE");
21
+ /**
22
+ * The type of profile.
23
+ */
24
+ export type ProfileType = ("ACCOUNT_PROFILE" | "PROFILE");
17
25
  /**
18
26
  * Specifies the operator on how to handle multiple groups within the same segment.
19
27
  */
@@ -99,6 +107,7 @@ export interface ProfileAttributes1 {
99
107
  MailingAddress?: AddressDimension;
100
108
  BillingAddress?: AddressDimension;
101
109
  Attributes?: CustomAttributes;
110
+ ProfileType?: ProfileTypeDimension;
102
111
  }
103
112
  /**
104
113
  * Specifies profile based criteria for a segment.
@@ -164,6 +173,17 @@ export interface AttributeDimension {
164
173
  */
165
174
  Values: string[];
166
175
  }
176
+ /**
177
+ * Specifies profile type based criteria for a segment.
178
+ */
179
+ export interface ProfileTypeDimension {
180
+ DimensionType: ProfileTypeDimensionType;
181
+ /**
182
+ * @minItems 1
183
+ * @maxItems 1
184
+ */
185
+ Values: ProfileType[];
186
+ }
167
187
  export interface CalculatedAttributes {
168
188
  CalculatedAttributes?: CalculatedCustomAttributes;
169
189
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbWVycHJvZmlsZXMtc2VnbWVudGRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtY3VzdG9tZXJwcm9maWxlcy1zZWdtZW50ZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY3JpdGVyaWEgdGhhdCBkZWZpbmUgdGhlIGRpbWVuc2lvbnMgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgdHlwZSBEaW1lbnNpb24gPSAoUHJvZmlsZUF0dHJpYnV0ZXMgfCBDYWxjdWxhdGVkQXR0cmlidXRlcylcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlIGZvciBhIHN0cmluZyBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ0RpbWVuc2lvblR5cGUgPSAoXCJJTkNMVVNJVkVcIiB8IFwiRVhDTFVTSVZFXCIgfCBcIkNPTlRBSU5TXCIgfCBcIkJFR0lOU19XSVRIXCIgfCBcIkVORFNfV0lUSFwiKVxuLyoqXG4gKiBUaGUgdHlwZSBvZiBzZWdtZW50IGRpbWVuc2lvbiB0byB1c2UgZm9yIGEgZGF0ZSBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIERhdGVEaW1lbnNpb25UeXBlID0gKFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIilcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlLlxuICovXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlID0gKFwiSU5DTFVTSVZFXCIgfCBcIkVYQ0xVU0lWRVwiIHwgXCJDT05UQUlOU1wiIHwgXCJCRUdJTlNfV0lUSFwiIHwgXCJFTkRTX1dJVEhcIiB8IFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIiB8IFwiR1JFQVRFUl9USEFOXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJHUkVBVEVSX1RIQU5fT1JfRVFVQUxcIiB8IFwiTEVTU19USEFOX09SX0VRVUFMXCIgfCBcIkVRVUFMXCIpXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgb3BlcmF0b3Igb24gaG93IHRvIGhhbmRsZSBtdWx0aXBsZSBncm91cHMgd2l0aGluIHRoZSBzYW1lIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIEluY2x1ZGVPcHRpb25zID0gKFwiQUxMXCIgfCBcIkFOWVwiIHwgXCJOT05FXCIpXG5cbi8qKlxuICogQSBzZWdtZW50IGRlZmluaXRpb24gcmVzb3VyY2Ugb2YgQW1hem9uIENvbm5lY3QgQ3VzdG9tZXIgUHJvZmlsZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0NVU1RPTUVSUFJPRklMRVNfU0VHTUVOVERFRklOSVRJT04ge1xuLyoqXG4gKiBUaGUgdGltZSBvZiB0aGlzIHNlZ21lbnQgZGVmaW5pdGlvbiBnb3QgY3JlYXRlZC5cbiAqL1xuQ3JlYXRlZEF0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2VnbWVudCBkZWZpbml0aW9uLlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBzZWdtZW50IGRlZmluaXRpb24uXG4gKi9cbkRpc3BsYXlOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIHVuaXF1ZSBuYW1lIG9mIHRoZSBkb21haW4uXG4gKi9cbkRvbWFpbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIHNlZ21lbnQgZGVmaW5pdGlvbi5cbiAqL1xuU2VnbWVudERlZmluaXRpb25OYW1lOiBzdHJpbmdcblNlZ21lbnRHcm91cHM6IFNlZ21lbnRHcm91cFxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHNlZ21lbnQgZGVmaW5pdGlvbi5cbiAqL1xuU2VnbWVudERlZmluaXRpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZ3MgdXNlZCB0byBvcmdhbml6ZSwgdHJhY2ssIG9yIGNvbnRyb2wgYWNjZXNzIGZvciB0aGlzIHJlc291cmNlLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuLyoqXG4gKiBBbiBhcnJheSB0aGF0IGRlZmluZXMgdGhlIHNldCBvZiBzZWdtZW50IGNyaXRlcmlhIHRvIGV2YWx1YXRlIHdoZW4gaGFuZGxpbmcgc2VnbWVudCBncm91cHMgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlZ21lbnRHcm91cCB7XG5Hcm91cHM/OiBHcm91cFtdXG5JbmNsdWRlPzogSW5jbHVkZU9wdGlvbnNcbn1cbi8qKlxuICogQW4gYXJyYXkgdGhhdCBkZWZpbmVzIHRoZSBzZXQgb2Ygc2VnbWVudCBjcml0ZXJpYSB0byBldmFsdWF0ZSB3aGVuIGhhbmRsaW5nIHNlZ21lbnQgZ3JvdXBzIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG5EaW1lbnNpb25zPzogRGltZW5zaW9uW11cblNvdXJjZVNlZ21lbnRzPzogU291cmNlU2VnbWVudFtdXG5Tb3VyY2VUeXBlPzogSW5jbHVkZU9wdGlvbnNcblR5cGU/OiBJbmNsdWRlT3B0aW9uc1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlQXR0cmlidXRlcyB7XG5Qcm9maWxlQXR0cmlidXRlczogUHJvZmlsZUF0dHJpYnV0ZXMxXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgZGltZW5zaW9uIHNldHRpbmdzIHdpdGhpbiBwcm9maWxlIGF0dHJpYnV0ZXMgZm9yIGEgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlQXR0cmlidXRlczEge1xuQWNjb3VudE51bWJlcj86IFByb2ZpbGVEaW1lbnNpb25cbkFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IEV4dHJhTGVuZ3RoVmFsdWVQcm9maWxlRGltZW5zaW9uXG5GaXJzdE5hbWU/OiBQcm9maWxlRGltZW5zaW9uXG5MYXN0TmFtZT86IFByb2ZpbGVEaW1lbnNpb25cbk1pZGRsZU5hbWU/OiBQcm9maWxlRGltZW5zaW9uXG5HZW5kZXJTdHJpbmc/OiBQcm9maWxlRGltZW5zaW9uXG5QYXJ0eVR5cGVTdHJpbmc/OiBQcm9maWxlRGltZW5zaW9uXG5CaXJ0aERhdGU/OiBEYXRlRGltZW5zaW9uXG5QaG9uZU51bWJlcj86IFByb2ZpbGVEaW1lbnNpb25cbkJ1c2luZXNzTmFtZT86IFByb2ZpbGVEaW1lbnNpb25cbkJ1c2luZXNzUGhvbmVOdW1iZXI/OiBQcm9maWxlRGltZW5zaW9uXG5Ib21lUGhvbmVOdW1iZXI/OiBQcm9maWxlRGltZW5zaW9uXG5Nb2JpbGVQaG9uZU51bWJlcj86IFByb2ZpbGVEaW1lbnNpb25cbkVtYWlsQWRkcmVzcz86IFByb2ZpbGVEaW1lbnNpb25cblBlcnNvbmFsRW1haWxBZGRyZXNzPzogUHJvZmlsZURpbWVuc2lvblxuQnVzaW5lc3NFbWFpbEFkZHJlc3M/OiBQcm9maWxlRGltZW5zaW9uXG5BZGRyZXNzPzogQWRkcmVzc0RpbWVuc2lvblxuU2hpcHBpbmdBZGRyZXNzPzogQWRkcmVzc0RpbWVuc2lvblxuTWFpbGluZ0FkZHJlc3M/OiBBZGRyZXNzRGltZW5zaW9uXG5CaWxsaW5nQWRkcmVzcz86IEFkZHJlc3NEaW1lbnNpb25cbkF0dHJpYnV0ZXM/OiBDdXN0b21BdHRyaWJ1dGVzXG59XG4vKipcbiAqIFNwZWNpZmllcyBwcm9maWxlIGJhc2VkIGNyaXRlcmlhIGZvciBhIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBTdHJpbmdEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgY3JpdGVyaWEgZm9yIGEgc2VnbWVudCB1c2luZyBleHRlbmRlZC1sZW5ndGggc3RyaW5nIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYUxlbmd0aFZhbHVlUHJvZmlsZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBTdHJpbmdEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgZGF0ZSBiYXNlZCBjcml0ZXJpYSBmb3IgYSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGVEaW1lbnNpb24ge1xuRGltZW5zaW9uVHlwZTogRGF0ZURpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIFRoZSBhZGRyZXNzIGJhc2VkIGNyaXRlcmlhIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzRGltZW5zaW9uIHtcbkNpdHk/OiBQcm9maWxlRGltZW5zaW9uXG5Db3VudHJ5PzogUHJvZmlsZURpbWVuc2lvblxuQ291bnR5PzogUHJvZmlsZURpbWVuc2lvblxuUG9zdGFsQ29kZT86IFByb2ZpbGVEaW1lbnNpb25cblByb3ZpbmNlPzogUHJvZmlsZURpbWVuc2lvblxuU3RhdGU/OiBQcm9maWxlRGltZW5zaW9uXG59XG4vKipcbiAqIE9uZSBvciBtb3JlIGN1c3RvbSBhdHRyaWJ1dGVzIHRvIHVzZSBhcyBjcml0ZXJpYSBmb3IgdGhlIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQXR0cmlidXRlcyB7XG5bazogc3RyaW5nXTogQXR0cmlidXRlRGltZW5zaW9uXG59XG4vKipcbiAqIFNwZWNpZmllcyBhdHRyaWJ1dGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqIFxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYEN1c3RvbUF0dHJpYnV0ZXNgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl5bYS16QS1aX11bYS16QS1aXzAtOS1dKiRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVEaW1lbnNpb24ge1xuRGltZW5zaW9uVHlwZTogQXR0cmlidXRlRGltZW5zaW9uVHlwZVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblZhbHVlczogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZEF0dHJpYnV0ZXMge1xuQ2FsY3VsYXRlZEF0dHJpYnV0ZXM/OiBDYWxjdWxhdGVkQ3VzdG9tQXR0cmlidXRlc1xufVxuLyoqXG4gKiBPbmUgb3IgbW9yZSBjYWxjdWxhdGVkIGF0dHJpYnV0ZXMgdG8gdXNlIGFzIGNyaXRlcmlhIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGVkQ3VzdG9tQXR0cmlidXRlcyB7XG5bazogc3RyaW5nXTogQ2FsY3VsYXRlZEF0dHJpYnV0ZURpbWVuc2lvblxufVxuLyoqXG4gKiBTcGVjaWZpZXMgY2FsY3VsYXRlZCBhdHRyaWJ1dGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqIFxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYENhbGN1bGF0ZWRDdXN0b21BdHRyaWJ1dGVzYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeW2EtekEtWl9dW2EtekEtWl8wLTktXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZEF0dHJpYnV0ZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxuQ29uZGl0aW9uT3ZlcnJpZGVzPzogQ29uZGl0aW9uT3ZlcnJpZGVzXG59XG4vKipcbiAqIE92ZXJyaWRlcyB0aGUgY29uZGl0aW9uIGJsb2NrIHdpdGhpbiB0aGUgb3JpZ2luYWwgY2FsY3VsYXRlZCBhdHRyaWJ1dGUgZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25PdmVycmlkZXMge1xuUmFuZ2U/OiBSYW5nZU92ZXJyaWRlXG59XG4vKipcbiAqIERlZmluZXMgdGhlIHJhbmdlIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGNhbGN1bGF0ZWQgYXR0cmlidXRlIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VPdmVycmlkZSB7XG4vKipcbiAqIFRoZSBzdGFydGluZyBwb2ludCBmb3IgdGhpcyBvdmVycmlkZGVuIHJhbmdlLiBQb3NpdGl2ZSBudW1iZXJzIGluZGljYXRlIGhvdyBtYW55IGRheXMgaW4gdGhlIHBhc3QgZGF0YSBzaG91bGQgYmUgaW5jbHVkZWQsIGFuZCBuZWdhdGl2ZSBudW1iZXJzIGluZGljYXRlIGhvdyBtYW55IGRheXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuU3RhcnQ6IG51bWJlclxuLyoqXG4gKiBUaGUgZW5kaW5nIHBvaW50IGZvciB0aGlzIG92ZXJyaWRkZW4gcmFuZ2UuIFBvc2l0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgcGFzdCBkYXRhIHNob3VsZCBiZSBpbmNsdWRlZCwgYW5kIG5lZ2F0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgZnV0dXJlLlxuICovXG5FbmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIHVuaXQgdG8gYmUgYXBwbGllZCB0byB0aGUgcmFuZ2UuXG4gKi9cblVuaXQ6IFwiREFZU1wiXG59XG4vKipcbiAqIFRoZSBiYXNlIHNlZ21lbnQgdG8gYnVpbGQgdGhlIHNlZ21lbnQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VnbWVudCB7XG5TZWdtZW50RGVmaW5pdGlvbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWN1c3RvbWVycHJvZmlsZXMtc2VnbWVudGRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtY3VzdG9tZXJwcm9maWxlcy1zZWdtZW50ZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY3JpdGVyaWEgdGhhdCBkZWZpbmUgdGhlIGRpbWVuc2lvbnMgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgdHlwZSBEaW1lbnNpb24gPSAoUHJvZmlsZUF0dHJpYnV0ZXMgfCBDYWxjdWxhdGVkQXR0cmlidXRlcylcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlIGZvciBhIHN0cmluZyBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ0RpbWVuc2lvblR5cGUgPSAoXCJJTkNMVVNJVkVcIiB8IFwiRVhDTFVTSVZFXCIgfCBcIkNPTlRBSU5TXCIgfCBcIkJFR0lOU19XSVRIXCIgfCBcIkVORFNfV0lUSFwiKVxuLyoqXG4gKiBUaGUgdHlwZSBvZiBzZWdtZW50IGRpbWVuc2lvbiB0byB1c2UgZm9yIGEgZGF0ZSBkaW1lbnNpb24uXG4gKi9cbmV4cG9ydCB0eXBlIERhdGVEaW1lbnNpb25UeXBlID0gKFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIilcbi8qKlxuICogVGhlIHR5cGUgb2Ygc2VnbWVudCBkaW1lbnNpb24gdG8gdXNlLlxuICovXG5leHBvcnQgdHlwZSBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlID0gKFwiSU5DTFVTSVZFXCIgfCBcIkVYQ0xVU0lWRVwiIHwgXCJDT05UQUlOU1wiIHwgXCJCRUdJTlNfV0lUSFwiIHwgXCJFTkRTX1dJVEhcIiB8IFwiQkVGT1JFXCIgfCBcIkFGVEVSXCIgfCBcIkJFVFdFRU5cIiB8IFwiTk9UX0JFVFdFRU5cIiB8IFwiT05cIiB8IFwiR1JFQVRFUl9USEFOXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJHUkVBVEVSX1RIQU5fT1JfRVFVQUxcIiB8IFwiTEVTU19USEFOX09SX0VRVUFMXCIgfCBcIkVRVUFMXCIpXG4vKipcbiAqIFRoZSB0eXBlIG9mIHNlZ21lbnQgZGltZW5zaW9uIHRvIHVzZSBmb3IgYSBwcm9maWxlIHR5cGUgZGltZW5zaW9uLlxuICovXG5leHBvcnQgdHlwZSBQcm9maWxlVHlwZURpbWVuc2lvblR5cGUgPSAoXCJJTkNMVVNJVkVcIiB8IFwiRVhDTFVTSVZFXCIpXG4vKipcbiAqIFRoZSB0eXBlIG9mIHByb2ZpbGUuXG4gKi9cbmV4cG9ydCB0eXBlIFByb2ZpbGVUeXBlID0gKFwiQUNDT1VOVF9QUk9GSUxFXCIgfCBcIlBST0ZJTEVcIilcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBvcGVyYXRvciBvbiBob3cgdG8gaGFuZGxlIG11bHRpcGxlIGdyb3VwcyB3aXRoaW4gdGhlIHNhbWUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IHR5cGUgSW5jbHVkZU9wdGlvbnMgPSAoXCJBTExcIiB8IFwiQU5ZXCIgfCBcIk5PTkVcIilcblxuLyoqXG4gKiBBIHNlZ21lbnQgZGVmaW5pdGlvbiByZXNvdXJjZSBvZiBBbWF6b24gQ29ubmVjdCBDdXN0b21lciBQcm9maWxlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQ1VTVE9NRVJQUk9GSUxFU19TRUdNRU5UREVGSU5JVElPTiB7XG4vKipcbiAqIFRoZSB0aW1lIG9mIHRoaXMgc2VnbWVudCBkZWZpbml0aW9uIGdvdCBjcmVhdGVkLlxuICovXG5DcmVhdGVkQXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzZWdtZW50IGRlZmluaXRpb24uXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHNlZ21lbnQgZGVmaW5pdGlvbi5cbiAqL1xuRGlzcGxheU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdW5pcXVlIG5hbWUgb2YgdGhlIGRvbWFpbi5cbiAqL1xuRG9tYWluTmFtZTogc3RyaW5nXG4vKipcbiAqIFRoZSB1bmlxdWUgbmFtZSBvZiB0aGUgc2VnbWVudCBkZWZpbml0aW9uLlxuICovXG5TZWdtZW50RGVmaW5pdGlvbk5hbWU6IHN0cmluZ1xuU2VnbWVudEdyb3VwczogU2VnbWVudEdyb3VwXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VnbWVudCBkZWZpbml0aW9uLlxuICovXG5TZWdtZW50RGVmaW5pdGlvbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyB1c2VkIHRvIG9yZ2FuaXplLCB0cmFjaywgb3IgY29udHJvbCBhY2Nlc3MgZm9yIHRoaXMgcmVzb3VyY2UuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIEFuIGFycmF5IHRoYXQgZGVmaW5lcyB0aGUgc2V0IG9mIHNlZ21lbnQgY3JpdGVyaWEgdG8gZXZhbHVhdGUgd2hlbiBoYW5kbGluZyBzZWdtZW50IGdyb3VwcyBmb3IgdGhlIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VnbWVudEdyb3VwIHtcbkdyb3Vwcz86IEdyb3VwW11cbkluY2x1ZGU/OiBJbmNsdWRlT3B0aW9uc1xufVxuLyoqXG4gKiBBbiBhcnJheSB0aGF0IGRlZmluZXMgdGhlIHNldCBvZiBzZWdtZW50IGNyaXRlcmlhIHRvIGV2YWx1YXRlIHdoZW4gaGFuZGxpbmcgc2VnbWVudCBncm91cHMgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwIHtcbkRpbWVuc2lvbnM/OiBEaW1lbnNpb25bXVxuU291cmNlU2VnbWVudHM/OiBTb3VyY2VTZWdtZW50W11cblNvdXJjZVR5cGU/OiBJbmNsdWRlT3B0aW9uc1xuVHlwZT86IEluY2x1ZGVPcHRpb25zXG59XG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVBdHRyaWJ1dGVzIHtcblByb2ZpbGVBdHRyaWJ1dGVzOiBQcm9maWxlQXR0cmlidXRlczFcbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkaW1lbnNpb24gc2V0dGluZ3Mgd2l0aGluIHByb2ZpbGUgYXR0cmlidXRlcyBmb3IgYSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVBdHRyaWJ1dGVzMSB7XG5BY2NvdW50TnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuQWRkaXRpb25hbEluZm9ybWF0aW9uPzogRXh0cmFMZW5ndGhWYWx1ZVByb2ZpbGVEaW1lbnNpb25cbkZpcnN0TmFtZT86IFByb2ZpbGVEaW1lbnNpb25cbkxhc3ROYW1lPzogUHJvZmlsZURpbWVuc2lvblxuTWlkZGxlTmFtZT86IFByb2ZpbGVEaW1lbnNpb25cbkdlbmRlclN0cmluZz86IFByb2ZpbGVEaW1lbnNpb25cblBhcnR5VHlwZVN0cmluZz86IFByb2ZpbGVEaW1lbnNpb25cbkJpcnRoRGF0ZT86IERhdGVEaW1lbnNpb25cblBob25lTnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuQnVzaW5lc3NOYW1lPzogUHJvZmlsZURpbWVuc2lvblxuQnVzaW5lc3NQaG9uZU51bWJlcj86IFByb2ZpbGVEaW1lbnNpb25cbkhvbWVQaG9uZU51bWJlcj86IFByb2ZpbGVEaW1lbnNpb25cbk1vYmlsZVBob25lTnVtYmVyPzogUHJvZmlsZURpbWVuc2lvblxuRW1haWxBZGRyZXNzPzogUHJvZmlsZURpbWVuc2lvblxuUGVyc29uYWxFbWFpbEFkZHJlc3M/OiBQcm9maWxlRGltZW5zaW9uXG5CdXNpbmVzc0VtYWlsQWRkcmVzcz86IFByb2ZpbGVEaW1lbnNpb25cbkFkZHJlc3M/OiBBZGRyZXNzRGltZW5zaW9uXG5TaGlwcGluZ0FkZHJlc3M/OiBBZGRyZXNzRGltZW5zaW9uXG5NYWlsaW5nQWRkcmVzcz86IEFkZHJlc3NEaW1lbnNpb25cbkJpbGxpbmdBZGRyZXNzPzogQWRkcmVzc0RpbWVuc2lvblxuQXR0cmlidXRlcz86IEN1c3RvbUF0dHJpYnV0ZXNcblByb2ZpbGVUeXBlPzogUHJvZmlsZVR5cGVEaW1lbnNpb25cbn1cbi8qKlxuICogU3BlY2lmaWVzIHByb2ZpbGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlRGltZW5zaW9uIHtcbkRpbWVuc2lvblR5cGU6IFN0cmluZ0RpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIFNwZWNpZmllcyBjcml0ZXJpYSBmb3IgYSBzZWdtZW50IHVzaW5nIGV4dGVuZGVkLWxlbmd0aCBzdHJpbmcgdmFsdWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhTGVuZ3RoVmFsdWVQcm9maWxlRGltZW5zaW9uIHtcbkRpbWVuc2lvblR5cGU6IFN0cmluZ0RpbWVuc2lvblR5cGVcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIFNwZWNpZmllcyBkYXRlIGJhc2VkIGNyaXRlcmlhIGZvciBhIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBEYXRlRGltZW5zaW9uVHlwZVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblZhbHVlczogc3RyaW5nW11cbn1cbi8qKlxuICogVGhlIGFkZHJlc3MgYmFzZWQgY3JpdGVyaWEgZm9yIHRoZSBzZWdtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3NEaW1lbnNpb24ge1xuQ2l0eT86IFByb2ZpbGVEaW1lbnNpb25cbkNvdW50cnk/OiBQcm9maWxlRGltZW5zaW9uXG5Db3VudHk/OiBQcm9maWxlRGltZW5zaW9uXG5Qb3N0YWxDb2RlPzogUHJvZmlsZURpbWVuc2lvblxuUHJvdmluY2U/OiBQcm9maWxlRGltZW5zaW9uXG5TdGF0ZT86IFByb2ZpbGVEaW1lbnNpb25cbn1cbi8qKlxuICogT25lIG9yIG1vcmUgY3VzdG9tIGF0dHJpYnV0ZXMgdG8gdXNlIGFzIGNyaXRlcmlhIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21BdHRyaWJ1dGVzIHtcbltrOiBzdHJpbmddOiBBdHRyaWJ1dGVEaW1lbnNpb25cbn1cbi8qKlxuICogU3BlY2lmaWVzIGF0dHJpYnV0ZSBiYXNlZCBjcml0ZXJpYSBmb3IgYSBzZWdtZW50LlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgQ3VzdG9tQXR0cmlidXRlc2AncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlthLXpBLVpfXVthLXpBLVpfMC05LV0qJFwiLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgcHJvZmlsZSB0eXBlIGJhc2VkIGNyaXRlcmlhIGZvciBhIHNlZ21lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZmlsZVR5cGVEaW1lbnNpb24ge1xuRGltZW5zaW9uVHlwZTogUHJvZmlsZVR5cGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5WYWx1ZXM6IFByb2ZpbGVUeXBlW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZEF0dHJpYnV0ZXMge1xuQ2FsY3VsYXRlZEF0dHJpYnV0ZXM/OiBDYWxjdWxhdGVkQ3VzdG9tQXR0cmlidXRlc1xufVxuLyoqXG4gKiBPbmUgb3IgbW9yZSBjYWxjdWxhdGVkIGF0dHJpYnV0ZXMgdG8gdXNlIGFzIGNyaXRlcmlhIGZvciB0aGUgc2VnbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGVkQ3VzdG9tQXR0cmlidXRlcyB7XG5bazogc3RyaW5nXTogQ2FsY3VsYXRlZEF0dHJpYnV0ZURpbWVuc2lvblxufVxuLyoqXG4gKiBTcGVjaWZpZXMgY2FsY3VsYXRlZCBhdHRyaWJ1dGUgYmFzZWQgY3JpdGVyaWEgZm9yIGEgc2VnbWVudC5cbiAqIFxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYENhbGN1bGF0ZWRDdXN0b21BdHRyaWJ1dGVzYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeW2EtekEtWl9dW2EtekEtWl8wLTktXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZEF0dHJpYnV0ZURpbWVuc2lvbiB7XG5EaW1lbnNpb25UeXBlOiBBdHRyaWJ1dGVEaW1lbnNpb25UeXBlXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVmFsdWVzOiBzdHJpbmdbXVxuQ29uZGl0aW9uT3ZlcnJpZGVzPzogQ29uZGl0aW9uT3ZlcnJpZGVzXG59XG4vKipcbiAqIE92ZXJyaWRlcyB0aGUgY29uZGl0aW9uIGJsb2NrIHdpdGhpbiB0aGUgb3JpZ2luYWwgY2FsY3VsYXRlZCBhdHRyaWJ1dGUgZGVmaW5pdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25kaXRpb25PdmVycmlkZXMge1xuUmFuZ2U/OiBSYW5nZU92ZXJyaWRlXG59XG4vKipcbiAqIERlZmluZXMgdGhlIHJhbmdlIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGNhbGN1bGF0ZWQgYXR0cmlidXRlIGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VPdmVycmlkZSB7XG4vKipcbiAqIFRoZSBzdGFydGluZyBwb2ludCBmb3IgdGhpcyBvdmVycmlkZGVuIHJhbmdlLiBQb3NpdGl2ZSBudW1iZXJzIGluZGljYXRlIGhvdyBtYW55IGRheXMgaW4gdGhlIHBhc3QgZGF0YSBzaG91bGQgYmUgaW5jbHVkZWQsIGFuZCBuZWdhdGl2ZSBudW1iZXJzIGluZGljYXRlIGhvdyBtYW55IGRheXMgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuU3RhcnQ6IG51bWJlclxuLyoqXG4gKiBUaGUgZW5kaW5nIHBvaW50IGZvciB0aGlzIG92ZXJyaWRkZW4gcmFuZ2UuIFBvc2l0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgcGFzdCBkYXRhIHNob3VsZCBiZSBpbmNsdWRlZCwgYW5kIG5lZ2F0aXZlIG51bWJlcnMgaW5kaWNhdGUgaG93IG1hbnkgZGF5cyBpbiB0aGUgZnV0dXJlLlxuICovXG5FbmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIHVuaXQgdG8gYmUgYXBwbGllZCB0byB0aGUgcmFuZ2UuXG4gKi9cblVuaXQ6IFwiREFZU1wiXG59XG4vKipcbiAqIFRoZSBiYXNlIHNlZ21lbnQgdG8gYnVpbGQgdGhlIHNlZ21lbnQgb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VnbWVudCB7XG5TZWdtZW50RGVmaW5pdGlvbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  export type Status = ("ENABLED" | "DISABLED");
2
+ export type DeploymentMode = ("ON_CREATE" | "ON_DEMAND");
2
3
  /**
3
4
  * Definition of AWS::DataZone::ProjectProfile Resource Type
4
5
  */
@@ -11,8 +12,35 @@ export interface _AWS_DATAZONE_PROJECTPROFILE {
11
12
  CreatedAt?: string;
12
13
  DomainUnitIdentifier?: string;
13
14
  Name: string;
15
+ EnvironmentConfigurations?: EnvironmentConfiguration[];
14
16
  DomainId?: string;
15
17
  Identifier?: string;
16
18
  Id?: string;
17
19
  DomainIdentifier?: string;
18
20
  }
21
+ export interface EnvironmentConfiguration {
22
+ Description?: string;
23
+ AwsRegion: Region;
24
+ AwsAccount?: AwsAccount;
25
+ DeploymentMode?: DeploymentMode;
26
+ Id?: string;
27
+ EnvironmentBlueprintId: string;
28
+ ConfigurationParameters?: EnvironmentConfigurationParametersDetails;
29
+ DeploymentOrder?: number;
30
+ Name: string;
31
+ }
32
+ export interface Region {
33
+ RegionName: string;
34
+ }
35
+ export interface AwsAccount {
36
+ AwsAccountId: string;
37
+ }
38
+ export interface EnvironmentConfigurationParametersDetails {
39
+ ParameterOverrides?: EnvironmentConfigurationParameter[];
40
+ ResolvedParameters?: EnvironmentConfigurationParameter[];
41
+ }
42
+ export interface EnvironmentConfigurationParameter {
43
+ IsEditable?: boolean;
44
+ Value?: string;
45
+ Name?: string;
46
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRhdGF6b25lLXByb2plY3Rwcm9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWRhdGF6b25lLXByb2plY3Rwcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTdGF0dXMgPSAoXCJFTkFCTEVEXCIgfCBcIkRJU0FCTEVEXCIpXG5cbi8qKlxuICogRGVmaW5pdGlvbiBvZiBBV1M6OkRhdGFab25lOjpQcm9qZWN0UHJvZmlsZSBSZXNvdXJjZSBUeXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19EQVRBWk9ORV9QUk9KRUNUUFJPRklMRSB7XG5TdGF0dXM/OiBTdGF0dXNcbkRvbWFpblVuaXRJZD86IHN0cmluZ1xuQ3JlYXRlZEJ5Pzogc3RyaW5nXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuTGFzdFVwZGF0ZWRBdD86IHN0cmluZ1xuQ3JlYXRlZEF0Pzogc3RyaW5nXG5Eb21haW5Vbml0SWRlbnRpZmllcj86IHN0cmluZ1xuTmFtZTogc3RyaW5nXG5Eb21haW5JZD86IHN0cmluZ1xuSWRlbnRpZmllcj86IHN0cmluZ1xuSWQ/OiBzdHJpbmdcbkRvbWFpbklkZW50aWZpZXI/OiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRhdGF6b25lLXByb2plY3Rwcm9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWRhdGF6b25lLXByb2plY3Rwcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTdGF0dXMgPSAoXCJFTkFCTEVEXCIgfCBcIkRJU0FCTEVEXCIpXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TW9kZSA9IChcIk9OX0NSRUFURVwiIHwgXCJPTl9ERU1BTkRcIilcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIEFXUzo6RGF0YVpvbmU6OlByb2plY3RQcm9maWxlIFJlc291cmNlIFR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0RBVEFaT05FX1BST0pFQ1RQUk9GSUxFIHtcblN0YXR1cz86IFN0YXR1c1xuRG9tYWluVW5pdElkPzogc3RyaW5nXG5DcmVhdGVkQnk/OiBzdHJpbmdcbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5MYXN0VXBkYXRlZEF0Pzogc3RyaW5nXG5DcmVhdGVkQXQ/OiBzdHJpbmdcbkRvbWFpblVuaXRJZGVudGlmaWVyPzogc3RyaW5nXG5OYW1lOiBzdHJpbmdcbkVudmlyb25tZW50Q29uZmlndXJhdGlvbnM/OiBFbnZpcm9ubWVudENvbmZpZ3VyYXRpb25bXVxuRG9tYWluSWQ/OiBzdHJpbmdcbklkZW50aWZpZXI/OiBzdHJpbmdcbklkPzogc3RyaW5nXG5Eb21haW5JZGVudGlmaWVyPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50Q29uZmlndXJhdGlvbiB7XG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuQXdzUmVnaW9uOiBSZWdpb25cbkF3c0FjY291bnQ/OiBBd3NBY2NvdW50XG5EZXBsb3ltZW50TW9kZT86IERlcGxveW1lbnRNb2RlXG5JZD86IHN0cmluZ1xuRW52aXJvbm1lbnRCbHVlcHJpbnRJZDogc3RyaW5nXG5Db25maWd1cmF0aW9uUGFyYW1ldGVycz86IEVudmlyb25tZW50Q29uZmlndXJhdGlvblBhcmFtZXRlcnNEZXRhaWxzXG5EZXBsb3ltZW50T3JkZXI/OiBudW1iZXJcbk5hbWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBSZWdpb24ge1xuUmVnaW9uTmFtZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEF3c0FjY291bnQge1xuQXdzQWNjb3VudElkOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRDb25maWd1cmF0aW9uUGFyYW1ldGVyc0RldGFpbHMge1xuUGFyYW1ldGVyT3ZlcnJpZGVzPzogRW52aXJvbm1lbnRDb25maWd1cmF0aW9uUGFyYW1ldGVyW11cblJlc29sdmVkUGFyYW1ldGVycz86IEVudmlyb25tZW50Q29uZmlndXJhdGlvblBhcmFtZXRlcltdXG59XG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50Q29uZmlndXJhdGlvblBhcmFtZXRlciB7XG5Jc0VkaXRhYmxlPzogYm9vbGVhblxuVmFsdWU/OiBzdHJpbmdcbk5hbWU/OiBzdHJpbmdcbn1cbiJdfQ==
@@ -307,7 +307,7 @@ export interface GlobalSecondaryIndex {
307
307
  WarmThroughput?: WarmThroughput1;
308
308
  }
309
309
  /**
310
- * The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify ``MaxReadRequestUnits``, ``MaxWriteRequestUnits``, or both.
310
+ * The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify ``MaxReadRequestUnits``, ``MaxWriteRequestUnits``, or both. You must use either ``OnDemandThroughput`` or ``ProvisionedThroughput`` based on your table's capacity mode.
311
311
  */
312
312
  export interface OnDemandThroughput1 {
313
313
  /**
@@ -350,7 +350,7 @@ export interface Projection {
350
350
  ProjectionType?: string;
351
351
  }
352
352
  /**
353
- * Represents the provisioned throughput settings for the specified global secondary index.
353
+ * Represents the provisioned throughput settings for the specified global secondary index. You must use either ``OnDemandThroughput`` or ``ProvisionedThroughput`` based on your table's capacity mode.
354
354
  * For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*.
355
355
  */
356
356
  export interface ProvisionedThroughput1 {
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWR5bmFtb2RiLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWR5bmFtb2RiLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgY3JlYXRpbmcgYSB0YWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgV2FybVRocm91Z2hwdXQgPSAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiB7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiByZWFkIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuUmVhZFVuaXRzUGVyU2Vjb25kPzogbnVtYmVyXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiB3cml0ZSBvcGVyYXRpb25zIHlvdXIgYmFzZSB0YWJsZSBjYW4gaW5zdGFudGFuZW91c2x5IHN1cHBvcnQuXG4gKi9cbldyaXRlVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbn0pXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCB2YWx1ZSAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgdGhlIHNwZWNpZmllZCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBSZWFkVW5pdHNQZXJTZWNvbmRgYCwgYGBXcml0ZVVuaXRzUGVyU2Vjb25kYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCB0eXBlIFdhcm1UaHJvdWdocHV0MSA9ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHJlYWQgb3BlcmF0aW9ucyB5b3VyIGJhc2UgdGFibGUgY2FuIGluc3RhbnRhbmVvdXNseSBzdXBwb3J0LlxuICovXG5SZWFkVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHdyaXRlIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuV3JpdGVVbml0c1BlclNlY29uZD86IG51bWJlclxufSlcblxuLyoqXG4gKiBUaGUgYGBBV1M6OkR5bmFtb0RCOjpUYWJsZWBgIHJlc291cmNlIGNyZWF0ZXMgYSBEREIgdGFibGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NyZWF0ZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlVGFibGUuaHRtbCkgaW4gdGhlICpBUEkgUmVmZXJlbmNlKi5cbiAqICBZb3Ugc2hvdWxkIGJlIGF3YXJlIG9mIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3JzIHdoZW4gd29ya2luZyB3aXRoIEREQiB0YWJsZXM6XG4gKiAgICsgIENGTmxvbmcgdHlwaWNhbGx5IGNyZWF0ZXMgRERCIHRhYmxlcyBpbiBwYXJhbGxlbC4gSG93ZXZlciwgaWYgeW91ciB0ZW1wbGF0ZSBpbmNsdWRlcyBtdWx0aXBsZSBEREIgdGFibGVzIHdpdGggaW5kZXhlcywgeW91IG11c3QgZGVjbGFyZSBkZXBlbmRlbmNpZXMgc28gdGhhdCB0aGUgdGFibGVzIGFyZSBjcmVhdGVkIHNlcXVlbnRpYWxseS4gRERCbG9uZyBsaW1pdHMgdGhlIG51bWJlciBvZiB0YWJsZXMgd2l0aCBzZWNvbmRhcnkgaW5kZXhlcyB0aGF0IGFyZSBpbiB0aGUgY3JlYXRpbmcgc3RhdGUuIElmIHlvdSBjcmVhdGUgbXVsdGlwbGUgdGFibGVzIHdpdGggaW5kZXhlcyBhdCB0aGUgc2FtZSB0aW1lLCBEREIgcmV0dXJucyBhbiBlcnJvciBhbmQgdGhlIHN0YWNrIG9wZXJhdGlvbiBmYWlscy4gRm9yIGFuIGV4YW1wbGUsIHNlZSBbRHluYW1vREIgVGFibGUgd2l0aCBhIERlcGVuZHNPbiBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS5odG1sI2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS0tZXhhbXBsZXMtLUR5bmFtb0RCX1RhYmxlX3dpdGhfYV9EZXBlbmRzT25fQXR0cmlidXRlKS5cbiAqICAgXG4gKiAgICBPdXIgZ3VpZGFuY2UgaXMgdG8gdXNlIHRoZSBsYXRlc3Qgc2NoZW1hIGRvY3VtZW50ZWQgZm9yIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMuIFRoaXMgc2NoZW1hIHN1cHBvcnRzIHRoZSBwcm92aXNpb25pbmcgb2YgYWxsIHRhYmxlIHNldHRpbmdzIGJlbG93LiBXaGVuIHVzaW5nIHRoaXMgc2NoZW1hIGluIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMsIHBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSBwb2xpY2llcyBhcmUgdXBkYXRlZCB3aXRoIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIHRvIGFsbG93IGZvciB0aGUgYXV0aG9yaXphdGlvbiBvZiB0aGVzZSBzZXR0aW5nIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19EWU5BTU9EQl9UQUJMRSB7XG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXRcblNTRVNwZWNpZmljYXRpb24/OiBTU0VTcGVjaWZpY2F0aW9uXG5LaW5lc2lzU3RyZWFtU3BlY2lmaWNhdGlvbj86IEtpbmVzaXNTdHJlYW1TcGVjaWZpY2F0aW9uXG5TdHJlYW1TcGVjaWZpY2F0aW9uPzogU3RyZWFtU3BlY2lmaWNhdGlvblxuQ29udHJpYnV0b3JJbnNpZ2h0c1NwZWNpZmljYXRpb24/OiBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvblxuSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbj86IEltcG9ydFNvdXJjZVNwZWNpZmljYXRpb25cblBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uPzogUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb25cblByb3Zpc2lvbmVkVGhyb3VnaHB1dD86IFByb3Zpc2lvbmVkVGhyb3VnaHB1dFxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dFxuLyoqXG4gKiBBIG5hbWUgZm9yIHRoZSB0YWJsZS4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBDRk5sb25nIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgdGFibGUgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSBUeXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogICBJZiB5b3Ugc3BlY2lmeSBhIG5hbWUsIHlvdSBjYW5ub3QgcGVyZm9ybSB1cGRhdGVzIHRoYXQgcmVxdWlyZSByZXBsYWNlbWVudCBvZiB0aGlzIHJlc291cmNlLiBZb3UgY2FuIHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgbm8gb3Igc29tZSBpbnRlcnJ1cHRpb24uIElmIHlvdSBtdXN0IHJlcGxhY2UgdGhlIHJlc291cmNlLCBzcGVjaWZ5IGEgbmV3IG5hbWUuXG4gKi9cblRhYmxlTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgYXR0cmlidXRlcyB0aGF0IGRlc2NyaWJlIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgdGFibGUgYW5kIGluZGV4ZXMuXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB0byBjcmVhdGUgYSBEREIgdGFibGUuXG4gKiAgVXBkYXRlIHJlcXVpcmVzOiBbU29tZSBpbnRlcnJ1cHRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtc29tZS1pbnRlcnJ1cHQpLiBSZXBsYWNlbWVudCBpZiB5b3UgZWRpdCBhbiBleGlzdGluZyBBdHRyaWJ1dGVEZWZpbml0aW9uLlxuICovXG5BdHRyaWJ1dGVEZWZpbml0aW9ucz86IEF0dHJpYnV0ZURlZmluaXRpb25bXVxuLyoqXG4gKiBTcGVjaWZ5IGhvdyB5b3UgYXJlIGNoYXJnZWQgZm9yIHJlYWQgYW5kIHdyaXRlIHRocm91Z2hwdXQgYW5kIGhvdyB5b3UgbWFuYWdlIGNhcGFjaXR5LlxuICogIFZhbGlkIHZhbHVlcyBpbmNsdWRlOlxuICogICArICBgYFBBWV9QRVJfUkVRVUVTVGBgIC0gV2UgcmVjb21tZW5kIHVzaW5nIGBgUEFZX1BFUl9SRVFVRVNUYGAgZm9yIG1vc3QgRHluYW1vREIgd29ya2xvYWRzLiBgYFBBWV9QRVJfUkVRVUVTVGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbT24tZGVtYW5kIGNhcGFjaXR5IG1vZGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvb24tZGVtYW5kLWNhcGFjaXR5LW1vZGUuaHRtbCkuIFxuICogICArICBgYFBST1ZJU0lPTkVEYGAgLSBXZSByZWNvbW1lbmQgdXNpbmcgYGBQUk9WSVNJT05FRGBgIGZvciBzdGVhZHkgd29ya2xvYWRzIHdpdGggcHJlZGljdGFibGUgZ3Jvd3RoIHdoZXJlIGNhcGFjaXR5IHJlcXVpcmVtZW50cyBjYW4gYmUgcmVsaWFibHkgZm9yZWNhc3RlZC4gYGBQUk9WSVNJT05FRGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbUHJvdmlzaW9uZWQgY2FwYWNpdHkgbW9kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wcm92aXNpb25lZC1jYXBhY2l0eS1tb2RlLmh0bWwpLlxuICogICBcbiAqICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBpcyBgYFBST1ZJU0lPTkVEYGAuXG4gKi9cbkJpbGxpbmdNb2RlPzogc3RyaW5nXG4vKipcbiAqIEdsb2JhbCBzZWNvbmRhcnkgaW5kZXhlcyB0byBiZSBjcmVhdGVkIG9uIHRoZSB0YWJsZS4gWW91IGNhbiBjcmVhdGUgdXAgdG8gMjAgZ2xvYmFsIHNlY29uZGFyeSBpbmRleGVzLlxuICogICBJZiB5b3UgdXBkYXRlIGEgdGFibGUgdG8gaW5jbHVkZSBhIG5ldyBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCBDRk5sb25nIGluaXRpYXRlcyB0aGUgaW5kZXggY3JlYXRpb24gYW5kIHRoZW4gcHJvY2VlZHMgd2l0aCB0aGUgc3RhY2sgdXBkYXRlLiBDRk5sb25nIGRvZXNuJ3Qgd2FpdCBmb3IgdGhlIGluZGV4IHRvIGNvbXBsZXRlIGNyZWF0aW9uIGJlY2F1c2UgdGhlIGJhY2tmaWxsaW5nIHBoYXNlIGNhbiB0YWtlIGEgbG9uZyB0aW1lLCBkZXBlbmRpbmcgb24gdGhlIHNpemUgb2YgdGhlIHRhYmxlLiBZb3UgY2FuJ3QgdXNlIHRoZSBpbmRleCBvciB1cGRhdGUgdGhlIHRhYmxlIHVudGlsIHRoZSBpbmRleCdzIHN0YXR1cyBpcyBgYEFDVElWRWBgLiBZb3UgY2FuIHRyYWNrIGl0cyBzdGF0dXMgYnkgdXNpbmcgdGhlIER5bmFtb0RCIFtEZXNjcmliZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC9yZWZlcmVuY2UvZHluYW1vZGIvZGVzY3JpYmUtdGFibGUuaHRtbCkgY29tbWFuZC5cbiAqICBJZiB5b3UgYWRkIG9yIGRlbGV0ZSBhbiBpbmRleCBkdXJpbmcgYW4gdXBkYXRlLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgZG9uJ3QgdXBkYXRlIGFueSBvdGhlciByZXNvdXJjZXMuIElmIHlvdXIgc3RhY2sgZmFpbHMgdG8gdXBkYXRlIGFuZCBpcyByb2xsZWQgYmFjayB3aGlsZSBhZGRpbmcgYSBuZXcgaW5kZXgsIHlvdSBtdXN0IG1hbnVhbGx5IGRlbGV0ZSB0aGUgaW5kZXguIFxuICogIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIGV4Y2VwdGlvbnM6XG4gKiAgICsgIElmIHlvdSB1cGRhdGUgZWl0aGVyIHRoZSBjb250cmlidXRvciBpbnNpZ2h0cyBzcGVjaWZpY2F0aW9uIG9yIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHZhbHVlcyBvZiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHlvdSBjYW4gdXBkYXRlIHRoZSB0YWJsZSB3aXRob3V0IGludGVycnVwdGlvbi5cbiAqICAgKyAgWW91IGNhbiBkZWxldGUgb3IgYWRkIG9uZSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4IHdpdGhvdXQgaW50ZXJydXB0aW9uLiBJZiB5b3UgZG8gYm90aCBpbiB0aGUgc2FtZSB1cGRhdGUgKGZvciBleGFtcGxlLCBieSBjaGFuZ2luZyB0aGUgaW5kZXgncyBsb2dpY2FsIElEKSwgdGhlIHVwZGF0ZSBmYWlscy5cbiAqL1xuR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcz86IEdsb2JhbFNlY29uZGFyeUluZGV4W11cblJlc291cmNlUG9saWN5PzogUmVzb3VyY2VQb2xpY3kxXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgYXR0cmlidXRlcyB0aGF0IG1ha2UgdXAgdGhlIHByaW1hcnkga2V5IGZvciB0aGUgdGFibGUuIFRoZSBhdHRyaWJ1dGVzIGluIHRoZSBgYEtleVNjaGVtYWBgIHByb3BlcnR5IG11c3QgYWxzbyBiZSBkZWZpbmVkIGluIHRoZSBgYEF0dHJpYnV0ZURlZmluaXRpb25zYGAgcHJvcGVydHkuXG4gKi9cbktleVNjaGVtYTogKEtleVNjaGVtYVtdIHwge1xuW2s6IHN0cmluZ106IHVua25vd25cbn0pXG4vKipcbiAqIExvY2FsIHNlY29uZGFyeSBpbmRleGVzIHRvIGJlIGNyZWF0ZWQgb24gdGhlIHRhYmxlLiBZb3UgY2FuIGNyZWF0ZSB1cCB0byA1IGxvY2FsIHNlY29uZGFyeSBpbmRleGVzLiBFYWNoIGluZGV4IGlzIHNjb3BlZCB0byBhIGdpdmVuIGhhc2gga2V5IHZhbHVlLiBUaGUgc2l6ZSBvZiBlYWNoIGhhc2gga2V5IGNhbiBiZSB1cCB0byAxMCBnaWdhYnl0ZXMuXG4gKi9cbkxvY2FsU2Vjb25kYXJ5SW5kZXhlcz86IExvY2FsU2Vjb25kYXJ5SW5kZXhbXVxuQXJuPzogc3RyaW5nXG5TdHJlYW1Bcm4/OiBzdHJpbmdcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIHRhYmxlIGlzIHByb3RlY3RlZCBmcm9tIGRlbGV0aW9uLiBXaGVuIGVuYWJsZWQsIHRoZSB0YWJsZSBjYW5ub3QgYmUgZGVsZXRlZCBieSBhbnkgdXNlciBvciBwcm9jZXNzLiBUaGlzIHNldHRpbmcgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgZGVsZXRpb24gcHJvdGVjdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Xb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuaHRtbCNXb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuRGVsZXRpb25Qcm90ZWN0aW9uKSBpbiB0aGUgKkRldmVsb3BlciBHdWlkZSouXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YWJsZSBjbGFzcyBvZiB0aGUgbmV3IHRhYmxlLiBWYWxpZCB2YWx1ZXMgYXJlIGBgU1RBTkRBUkRgYCBhbmQgYGBTVEFOREFSRF9JTkZSRVFVRU5UX0FDQ0VTU2BgLlxuICovXG5UYWJsZUNsYXNzPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1RhZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcmVzb3VyY2UtdGFncy5odG1sKS5cbiAqL1xuVGFncz86IFRhZ1tdXG5UaW1lVG9MaXZlU3BlY2lmaWNhdGlvbj86IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIG9uLWRlbWFuZCB0YWJsZS4gSWYgeW91IHVzZSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGBgTWF4UmVhZFJlcXVlc3RVbml0c2BgLCBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25EZW1hbmRUaHJvdWdocHV0IHtcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2YgcmVhZCByZXF1ZXN0IHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICogIFRvIHNwZWNpZnkgYSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFJlYWRSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFJlYWRSZXF1ZXN0VW5pdHM/OiBudW1iZXJcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2Ygd3JpdGUgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIGFzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLiBUbyByZW1vdmUgdGhlIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCB0aGF0IGlzIGN1cnJlbnRseSBzZXQgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFdyaXRlUmVxdWVzdFVuaXRzPzogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgc2V0dGluZ3MgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1NFU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgZG9uZSB1c2luZyBhbiBBV1MgbWFuYWdlZCBrZXkgb3IgYW4gQVdTIG93bmVkIGtleS4gSWYgZW5hYmxlZCAodHJ1ZSksIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZSBpcyBzZXQgdG8gYGBLTVNgYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKEtNUyBjaGFyZ2VzIGFwcGx5KS4gSWYgZGlzYWJsZWQgKGZhbHNlKSBvciBub3Qgc3BlY2lmaWVkLCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGlzIHNldCB0byBBV1Mgb3duZWQga2V5LlxuICovXG5TU0VFbmFibGVkOiBib29sZWFuXG4vKipcbiAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZS4gVGhlIG9ubHkgc3VwcG9ydGVkIHZhbHVlIGlzOlxuICogICArICBgYEtNU2BgIC0gU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgS01TbG9uZy4gVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEtNUyAoS01TIGNoYXJnZXMgYXBwbHkpLlxuICovXG5TU0VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBLTVMga2V5IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBLTVMgZW5jcnlwdGlvbi4gVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZSB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYGFsaWFzL2F3cy9keW5hbW9kYmBgLlxuICovXG5LTVNNYXN0ZXJLZXlJZD86ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHN0cmluZylcbn1cbi8qKlxuICogVGhlIEtpbmVzaXMgRGF0YSBTdHJlYW1zIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgcHJlY2lzaW9uIGZvciB0aGUgdGltZSBhbmQgZGF0ZSB0aGF0IHRoZSBzdHJlYW0gd2FzIGNyZWF0ZWQuXG4gKi9cbkFwcHJveGltYXRlQ3JlYXRpb25EYXRlVGltZVByZWNpc2lvbj86IChcIk1JQ1JPU0VDT05EXCIgfCBcIk1JTExJU0VDT05EXCIpXG4vKipcbiAqIFRoZSBBUk4gZm9yIGEgc3BlY2lmaWMgS2luZXNpcyBkYXRhIHN0cmVhbS5cbiAqICBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDM3LiBNYXhpbXVtIGxlbmd0aCBvZiAxMDI0LlxuICovXG5TdHJlYW1Bcm46IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgZm9yIHRoZSBEREIgdGFibGUgc3RyZWFtLCB3aGljaCBjYXB0dXJlIGNoYW5nZXMgdG8gaXRlbXMgc3RvcmVkIGluIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgYGBTdHJlYW1WaWV3VHlwZWBgIGRldGVybWluZXMgd2hhdCBpbmZvcm1hdGlvbiBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0gZm9yIHRoaXMgdGFibGUuIFZhbGlkIHZhbHVlcyBmb3IgYGBTdHJlYW1WaWV3VHlwZWBgIGFyZTpcbiAqICAgKyAgYGBLRVlTX09OTFlgYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgTkVXX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgT0xEX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAqICAgKyAgYGBORVdfQU5EX09MRF9JTUFHRVNgYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICovXG5TdHJlYW1WaWV3VHlwZTogc3RyaW5nXG5SZXNvdXJjZVBvbGljeT86IFJlc291cmNlUG9saWN5XG59XG4vKipcbiAqIENyZWF0ZXMgb3IgdXBkYXRlcyBhIHJlc291cmNlLWJhc2VkIHBvbGljeSBkb2N1bWVudCB0aGF0IGNvbnRhaW5zIHRoZSBwZXJtaXNzaW9ucyBmb3IgRERCIHJlc291cmNlcywgc3VjaCBhcyBhIHRhYmxlJ3Mgc3RyZWFtcy4gUmVzb3VyY2UtYmFzZWQgcG9saWNpZXMgbGV0IHlvdSBkZWZpbmUgYWNjZXNzIHBlcm1pc3Npb25zIGJ5IHNwZWNpZnlpbmcgd2hvIGhhcyBhY2Nlc3MgdG8gZWFjaCByZXNvdXJjZSwgYW5kIHRoZSBhY3Rpb25zIHRoZXkgYXJlIGFsbG93ZWQgdG8gcGVyZm9ybSBvbiBlYWNoIHJlc291cmNlLlxuICogIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBvbGljeSB7XG4vKipcbiAqIEEgcmVzb3VyY2UtYmFzZWQgcG9saWN5IGRvY3VtZW50IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBzcGVjaWZpZWQgRERCIHRhYmxlLCBpbmRleCwgb3IgYm90aC4gSW4gYSBDRk5zaG9ydCB0ZW1wbGF0ZSwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBiZWNhdXNlIENGTnNob3J0IGNvbnZlcnRzIFlBTUwgdG8gSlNPTiBiZWZvcmUgc3VibWl0dGluZyBpdCB0byBEREIuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlc291cmNlLWJhc2VkIHBvbGljaWVzLCBzZWUgW1VzaW5nIHJlc291cmNlLWJhc2VkIHBvbGljaWVzIGZvcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hY2Nlc3MtY29udHJvbC1yZXNvdXJjZS1iYXNlZC5odG1sKSBhbmQgW1Jlc291cmNlLWJhc2VkIHBvbGljeSBleGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9yYmFjLWV4YW1wbGVzLmh0bWwpLlxuICovXG5Qb2xpY3lEb2N1bWVudDoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgQ2xvdWRXYXRjaCBDb250cmlidXRvciBJbnNpZ2h0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIENsb3VkV2F0Y2ggQ29udHJpYnV0b3IgSW5zaWdodHMgYXJlIHRvIGJlIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkuXG4gKi9cbkVuYWJsZWQ6IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIGRhdGEgYmVpbmcgaW1wb3J0ZWQgZnJvbSB0aGUgUzMgYnVja2V0IHNvdXJjZSB0byB0aGVcIiB0YWJsZS5cbiAqICAgSWYgeW91IHNwZWNpZnkgdGhlIGBgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbmBgIHByb3BlcnR5LCBhbmQgYWxzbyBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTdHJlYW1TcGVjaWZpY2F0aW9uYGAsIHRoZSBgYFRhYmxlQ2xhc3NgYCBwcm9wZXJ0eSwgdGhlIGBgRGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZGBgIHByb3BlcnR5LCBvciB0aGUgYGBXYXJtVGhyb3VnaHB1dGBgIHByb3BlcnR5LCB0aGUgSUFNIGVudGl0eSBjcmVhdGluZy91cGRhdGluZyBzdGFjayBtdXN0IGhhdmUgYGBVcGRhdGVUYWJsZWBgIHBlcm1pc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbiB7XG5TM0J1Y2tldFNvdXJjZTogUzNCdWNrZXRTb3VyY2Vcbi8qKlxuICogVGhlIGZvcm1hdCBvZiB0aGUgc291cmNlIGRhdGEuIFZhbGlkIHZhbHVlcyBmb3IgYGBJbXBvcnRGb3JtYXRgYCBhcmUgYGBDU1ZgYCwgYGBEWU5BTU9EQl9KU09OYGAgb3IgYGBJT05gYC5cbiAqL1xuSW5wdXRGb3JtYXQ6IHN0cmluZ1xuSW5wdXRGb3JtYXRPcHRpb25zPzogSW5wdXRGb3JtYXRPcHRpb25zXG4vKipcbiAqIFR5cGUgb2YgY29tcHJlc3Npb24gdG8gYmUgdXNlZCBvbiB0aGUgaW5wdXQgY29taW5nIGZyb20gdGhlIGltcG9ydGVkIHRhYmxlLlxuICovXG5JbnB1dENvbXByZXNzaW9uVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgUzMgYnVja2V0IHRoYXQgcHJvdmlkZXMgdGhlIHNvdXJjZSBmb3IgdGhlIGltcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0J1Y2tldFNvdXJjZSB7XG4vKipcbiAqIFRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLlxuICovXG5TM0J1Y2tldDogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgcHJlZml4IHNoYXJlZCBieSBhbGwgUzMgT2JqZWN0cyB0aGF0IGFyZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuUzNLZXlQcmVmaXg/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFjY291bnQgbnVtYmVyIG9mIHRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLiBJZiB0aGUgYnVja2V0IGlzIG93bmVkIGJ5IHRoZSByZXF1ZXN0ZXIgdGhpcyBpcyBvcHRpb25hbC5cbiAqL1xuUzNCdWNrZXRPd25lcj86IHN0cmluZ1xufVxuLyoqXG4gKiBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdGhhdCBzcGVjaWZ5IGhvdyB0aGUgaW5wdXQgaXMgZm9ybWF0dGVkLFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0Rm9ybWF0T3B0aW9ucyB7XG5Dc3Y/OiBDc3Zcbn1cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIGltcG9ydGVkIHNvdXJjZSBmaWxlcyBpbiBDU1YgZm9ybWF0LiBUaGUgdmFsdWVzIGFyZSBEZWxpbWl0ZXIgYW5kIEhlYWRlckxpc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3N2IHtcbi8qKlxuICogVGhlIGRlbGltaXRlciB1c2VkIGZvciBzZXBhcmF0aW5nIGl0ZW1zIGluIHRoZSBDU1YgZmlsZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuRGVsaW1pdGVyPzogc3RyaW5nXG4vKipcbiAqIExpc3Qgb2YgdGhlIGhlYWRlcnMgdXNlZCB0byBzcGVjaWZ5IGEgY29tbW9uIGhlYWRlciBmb3IgYWxsIHNvdXJjZSBDU1YgZmlsZXMgYmVpbmcgaW1wb3J0ZWQuIElmIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGxpbmUgb2YgZWFjaCBDU1YgZmlsZSBpcyB0cmVhdGVkIGFzIGRhdGEgaW5zdGVhZCBvZiB0aGUgaGVhZGVyLiBJZiB0aGlzIGZpZWxkIGlzIG5vdCBzcGVjaWZpZWQgdGhlIHRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggQ1NWIGZpbGUgaXMgdHJlYXRlZCBhcyB0aGUgaGVhZGVyLlxuICovXG5IZWFkZXJMaXN0Pzogc3RyaW5nW11cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHBvaW50IGluIHRpbWUgcmVjb3ZlcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBwb2ludCBpbiB0aW1lIHJlY292ZXJ5IGlzIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkgb24gdGhlIHRhYmxlLlxuICovXG5Qb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG51bWJlciBvZiBwcmVjZWRpbmcgZGF5cyBmb3Igd2hpY2ggY29udGludW91cyBiYWNrdXBzIGFyZSB0YWtlbiBhbmQgbWFpbnRhaW5lZC4gWW91ciB0YWJsZSBkYXRhIGlzIG9ubHkgcmVjb3ZlcmFibGUgdG8gYW55IHBvaW50LWluLXRpbWUgZnJvbSB3aXRoaW4gdGhlIGNvbmZpZ3VyZWQgcmVjb3ZlcnkgcGVyaW9kLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSB2YWx1ZSB3aWxsIGRlZmF1bHQgdG8gMzUuXG4gKi9cblJlY292ZXJ5UGVyaW9kSW5EYXlzPzogbnVtYmVyXG59XG4vKipcbiAqIFRocm91Z2hwdXQgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUsIHdoaWNoIGNvbnNpc3RzIG9mIHZhbHVlcyBmb3IgYGBSZWFkQ2FwYWNpdHlVbml0c2BgIGFuZCBgYFdyaXRlQ2FwYWNpdHlVbml0c2BgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGVudHMgb2YgYSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHN0cnVjdHVyZSwgc2VlIFtBbWF6b24gRHluYW1vREIgVGFibGUgUHJvdmlzaW9uZWRUaHJvdWdocHV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUHJvdmlzaW9uZWRUaHJvdWdocHV0Lmh0bWwpLiBcbiAqICBJZiB5b3Ugc2V0IGBgQmlsbGluZ01vZGVgYCBhcyBgYFBST1ZJU0lPTkVEYGAsIHlvdSBtdXN0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gSWYgeW91IHNldCBgYEJpbGxpbmdNb2RlYGAgYXMgYGBQQVlfUEVSX1JFUVVFU1RgYCwgeW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRUaHJvdWdocHV0IHtcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHdyaXRlcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuV3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cm9uZ2x5IGNvbnNpc3RlbnQgcmVhZHMgY29uc3VtZWQgcGVyIHNlY29uZCBiZWZvcmUgRHluYW1vREIgcmV0dXJucyBhIGBgVGhyb3R0bGluZ0V4Y2VwdGlvbmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIFJlYWQgYW5kIFdyaXRlIFJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Qcm92aXNpb25lZFRocm91Z2hwdXQuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqICBJZiByZWFkL3dyaXRlIGNhcGFjaXR5IG1vZGUgaXMgYGBQQVlfUEVSX1JFUVVFU1RgYCB0aGUgdmFsdWUgaXMgc2V0IHRvIDAuXG4gKi9cblJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhdHRyaWJ1dGUgZm9yIGRlc2NyaWJpbmcgdGhlIHNjaGVtYSBmb3IgdGhlIHRhYmxlIGFuZCBpbmRleGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZURlZmluaXRpb24ge1xuLyoqXG4gKiBUaGUgZGF0YSB0eXBlIGZvciB0aGUgYXR0cmlidXRlLCB3aGVyZTpcbiAqICAgKyAgYGBTYGAgLSB0aGUgYXR0cmlidXRlIGlzIG9mIHR5cGUgU3RyaW5nXG4gKiAgICsgIGBgTmBgIC0gdGhlIGF0dHJpYnV0ZSBpcyBvZiB0eXBlIE51bWJlclxuICogICArICBgYEJgYCAtIHRoZSBhdHRyaWJ1dGUgaXMgb2YgdHlwZSBCaW5hcnlcbiAqL1xuQXR0cmlidXRlVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbmFtZSBmb3IgdGhlIGF0dHJpYnV0ZS5cbiAqL1xuQXR0cmlidXRlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFNlY29uZGFyeUluZGV4IHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBvdGhlciBpbmRleGVzIG9uIHRoaXMgdGFibGUuXG4gKi9cbkluZGV4TmFtZTogc3RyaW5nXG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXQxXG5Db250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbj86IENvbnRyaWJ1dG9ySW5zaWdodHNTcGVjaWZpY2F0aW9uMVxuUHJvamVjdGlvbjogUHJvamVjdGlvblxuUHJvdmlzaW9uZWRUaHJvdWdocHV0PzogUHJvdmlzaW9uZWRUaHJvdWdocHV0MVxuLyoqXG4gKiBUaGUgY29tcGxldGUga2V5IHNjaGVtYSBmb3IgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCB3aGljaCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBwYWlycyBvZiBhdHRyaWJ1dGUgbmFtZXMgYW5kIGtleSB0eXBlczpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5U2NoZW1hOiBLZXlTY2hlbWFbXVxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dDFcbn1cbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAsIGBgTWF4V3JpdGVSZXF1ZXN0VW5pdHNgYCwgb3IgYm90aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbkRlbWFuZFRocm91Z2hwdXQxIHtcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2YgcmVhZCByZXF1ZXN0IHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICogIFRvIHNwZWNpZnkgYSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFJlYWRSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFJlYWRSZXF1ZXN0VW5pdHM/OiBudW1iZXJcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2Ygd3JpdGUgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIGFzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLiBUbyByZW1vdmUgdGhlIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCB0aGF0IGlzIGN1cnJlbnRseSBzZXQgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFdyaXRlUmVxdWVzdFVuaXRzPzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBvciBkaXNhYmxlIENsb3VkV2F0Y2ggQ29udHJpYnV0b3IgSW5zaWdodHMgZm9yIHRoZSBzcGVjaWZpZWQgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbjEge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBDbG91ZFdhdGNoIENvbnRyaWJ1dG9yIEluc2lnaHRzIGFyZSB0byBiZSBlbmFibGVkICh0cnVlKSBvciBkaXNhYmxlZCAoZmFsc2UpLlxuICovXG5FbmFibGVkOiBib29sZWFuXG59XG4vKipcbiAqIFJlcHJlc2VudHMgYXR0cmlidXRlcyB0aGF0IGFyZSBjb3BpZWQgKHByb2plY3RlZCkgZnJvbSB0aGUgdGFibGUgaW50byB0aGUgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3Rpb24ge1xuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBub24ta2V5IGF0dHJpYnV0ZSBuYW1lcyB3aGljaCB3aWxsIGJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC5cbiAqICBGb3IgZ2xvYmFsIGFuZCBsb2NhbCBzZWNvbmRhcnkgaW5kZXhlcywgdGhlIHRvdGFsIGNvdW50IG9mIGBgTm9uS2V5QXR0cmlidXRlc2BgIHN1bW1lZCBhY3Jvc3MgYWxsIG9mIHRoZSBzZWNvbmRhcnkgaW5kZXhlcywgbXVzdCBub3QgZXhjZWVkIDEwMC4gSWYgeW91IHByb2plY3QgdGhlIHNhbWUgYXR0cmlidXRlIGludG8gdHdvIGRpZmZlcmVudCBpbmRleGVzLCB0aGlzIGNvdW50cyBhcyB0d28gZGlzdGluY3QgYXR0cmlidXRlcyB3aGVuIGRldGVybWluaW5nIHRoZSB0b3RhbC4gVGhpcyBsaW1pdCBvbmx5IGFwcGxpZXMgd2hlbiB5b3Ugc3BlY2lmeSB0aGUgUHJvamVjdGlvblR5cGUgb2YgYGBJTkNMVURFYGAuIFlvdSBzdGlsbCBjYW4gc3BlY2lmeSB0aGUgUHJvamVjdGlvblR5cGUgb2YgYGBBTExgYCB0byBwcm9qZWN0IGFsbCBhdHRyaWJ1dGVzIGZyb20gdGhlIHNvdXJjZSB0YWJsZSwgZXZlbiBpZiB0aGUgdGFibGUgaGFzIG1vcmUgdGhhbiAxMDAgYXR0cmlidXRlcy5cbiAqL1xuTm9uS2V5QXR0cmlidXRlcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBzZXQgb2YgYXR0cmlidXRlcyB0aGF0IGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXg6XG4gKiAgICsgIGBgS0VZU19PTkxZYGAgLSBPbmx5IHRoZSBpbmRleCBhbmQgcHJpbWFyeSBrZXlzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgICsgIGBgSU5DTFVERWBgIC0gSW4gYWRkaXRpb24gdG8gdGhlIGF0dHJpYnV0ZXMgZGVzY3JpYmVkIGluIGBgS0VZU19PTkxZYGAsIHRoZSBzZWNvbmRhcnkgaW5kZXggd2lsbCBpbmNsdWRlIG90aGVyIG5vbi1rZXkgYXR0cmlidXRlcyB0aGF0IHlvdSBzcGVjaWZ5LlxuICogICArICBgYEFMTGBgIC0gQWxsIG9mIHRoZSB0YWJsZSBhdHRyaWJ1dGVzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgIFxuICogIFdoZW4gdXNpbmcgdGhlIER5bmFtb0RCIGNvbnNvbGUsIGBgQUxMYGAgaXMgc2VsZWN0ZWQgYnkgZGVmYXVsdC5cbiAqL1xuUHJvamVjdGlvblR5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBzZXR0aW5ncyBmb3IgdGhlIHNwZWNpZmllZCBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogIEZvciBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCB2YWx1ZXMsIHNlZSBbU2VydmljZSwgQWNjb3VudCwgYW5kIFRhYmxlIFF1b3Rhc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9MaW1pdHMuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aXNpb25lZFRocm91Z2hwdXQxIHtcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHdyaXRlcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuV3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cm9uZ2x5IGNvbnNpc3RlbnQgcmVhZHMgY29uc3VtZWQgcGVyIHNlY29uZCBiZWZvcmUgRHluYW1vREIgcmV0dXJucyBhIGBgVGhyb3R0bGluZ0V4Y2VwdGlvbmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIFJlYWQgYW5kIFdyaXRlIFJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Qcm92aXNpb25lZFRocm91Z2hwdXQuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqICBJZiByZWFkL3dyaXRlIGNhcGFjaXR5IG1vZGUgaXMgYGBQQVlfUEVSX1JFUVVFU1RgYCB0aGUgdmFsdWUgaXMgc2V0IHRvIDAuXG4gKi9cblJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogUmVwcmVzZW50cyAqYSBzaW5nbGUgZWxlbWVudCogb2YgYSBrZXkgc2NoZW1hLiBBIGtleSBzY2hlbWEgc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIHRoYXQgbWFrZSB1cCB0aGUgcHJpbWFyeSBrZXkgb2YgYSB0YWJsZSwgb3IgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIGFuIGluZGV4LlxuICogIEEgYGBLZXlTY2hlbWFFbGVtZW50YGAgcmVwcmVzZW50cyBleGFjdGx5IG9uZSBhdHRyaWJ1dGUgb2YgdGhlIHByaW1hcnkga2V5LiBGb3IgZXhhbXBsZSwgYSBzaW1wbGUgcHJpbWFyeSBrZXkgd291bGQgYmUgcmVwcmVzZW50ZWQgYnkgb25lIGBgS2V5U2NoZW1hRWxlbWVudGBgIChmb3IgdGhlIHBhcnRpdGlvbiBrZXkpLiBBIGNvbXBvc2l0ZSBwcmltYXJ5IGtleSB3b3VsZCByZXF1aXJlIG9uZSBgYEtleVNjaGVtYUVsZW1lbnRgYCBmb3IgdGhlIHBhcnRpdGlvbiBrZXksIGFuZCBhbm90aGVyIGBgS2V5U2NoZW1hRWxlbWVudGBgIGZvciB0aGUgc29ydCBrZXkuXG4gKiAgQSBgYEtleVNjaGVtYUVsZW1lbnRgYCBtdXN0IGJlIGEgc2NhbGFyLCB0b3AtbGV2ZWwgYXR0cmlidXRlIChub3QgYSBuZXN0ZWQgYXR0cmlidXRlKS4gVGhlIGRhdGEgdHlwZSBtdXN0IGJlIG9uZSBvZiBTdHJpbmcsIE51bWJlciwgb3IgQmluYXJ5LiBUaGUgYXR0cmlidXRlIGNhbm5vdCBiZSBuZXN0ZWQgd2l0aGluIGEgTGlzdCBvciBhIE1hcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlTY2hlbWEge1xuLyoqXG4gKiBUaGUgcm9sZSB0aGF0IHRoaXMga2V5IGF0dHJpYnV0ZSB3aWxsIGFzc3VtZTpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5VHlwZTogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIGEga2V5IGF0dHJpYnV0ZS5cbiAqL1xuQXR0cmlidXRlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIEEgcmVzb3VyY2UtYmFzZWQgcG9saWN5IGRvY3VtZW50IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBzcGVjaWZpZWQgdGFibGUuIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqICBXaGVuIHlvdSBhdHRhY2ggYSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgd2hpbGUgY3JlYXRpbmcgYSB0YWJsZSwgdGhlIHBvbGljeSBjcmVhdGlvbiBpcyAqc3Ryb25nbHkgY29uc2lzdGVudCouIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29uc2lkZXJhdGlvbnMgdGhhdCB5b3Ugc2hvdWxkIGtlZXAgaW4gbWluZCB3aGlsZSBhdHRhY2hpbmcgYSByZXNvdXJjZS1iYXNlZCBwb2xpY3ksIHNlZSBbUmVzb3VyY2UtYmFzZWQgcG9saWN5IGNvbnNpZGVyYXRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3JiYWMtY29uc2lkZXJhdGlvbnMuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VQb2xpY3kxIHtcbi8qKlxuICogQSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgZG9jdW1lbnQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyB0byBhZGQgdG8gdGhlIHNwZWNpZmllZCBEREIgdGFibGUsIGluZGV4LCBvciBib3RoLiBJbiBhIENGTnNob3J0IHRlbXBsYXRlLCB5b3UgY2FuIHByb3ZpZGUgdGhlIHBvbGljeSBpbiBKU09OIG9yIFlBTUwgZm9ybWF0IGJlY2F1c2UgQ0ZOc2hvcnQgY29udmVydHMgWUFNTCB0byBKU09OIGJlZm9yZSBzdWJtaXR0aW5nIGl0IHRvIEREQi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcmVzb3VyY2UtYmFzZWQgcG9saWNpZXMsIHNlZSBbVXNpbmcgcmVzb3VyY2UtYmFzZWQgcG9saWNpZXMgZm9yXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2FjY2Vzcy1jb250cm9sLXJlc291cmNlLWJhc2VkLmh0bWwpIGFuZCBbUmVzb3VyY2UtYmFzZWQgcG9saWN5IGV4YW1wbGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3JiYWMtZXhhbXBsZXMuaHRtbCkuXG4gKi9cblBvbGljeURvY3VtZW50OiB7XG5bazogc3RyaW5nXTogdW5rbm93blxufVxufVxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgbG9jYWwgc2Vjb25kYXJ5IGluZGV4LiBBIGxvY2FsIHNlY29uZGFyeSBpbmRleCBjYW4gb25seSBiZSBjcmVhdGVkIHdoZW4gaXRzIHBhcmVudCB0YWJsZSBpcyBjcmVhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsU2Vjb25kYXJ5SW5kZXgge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbG9jYWwgc2Vjb25kYXJ5IGluZGV4LiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSBhbW9uZyBhbGwgb3RoZXIgaW5kZXhlcyBvbiB0aGlzIHRhYmxlLlxuICovXG5JbmRleE5hbWU6IHN0cmluZ1xuUHJvamVjdGlvbjogUHJvamVjdGlvbjFcbi8qKlxuICogVGhlIGNvbXBsZXRlIGtleSBzY2hlbWEgZm9yIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXgsIGNvbnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUgcGFpcnMgb2YgYXR0cmlidXRlIG5hbWVzIGFuZCBrZXkgdHlwZXM6XG4gKiAgICsgIGBgSEFTSGBgIC0gcGFydGl0aW9uIGtleVxuICogICArICBgYFJBTkdFYGAgLSBzb3J0IGtleVxuICogICBcbiAqICAgVGhlIHBhcnRpdGlvbiBrZXkgb2YgYW4gaXRlbSBpcyBhbHNvIGtub3duIGFzIGl0cyAqaGFzaCBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcImhhc2ggYXR0cmlidXRlXCIgZGVyaXZlcyBmcm9tIER5bmFtb0RCJ3MgdXNhZ2Ugb2YgYW4gaW50ZXJuYWwgaGFzaCBmdW5jdGlvbiB0byBldmVubHkgZGlzdHJpYnV0ZSBkYXRhIGl0ZW1zIGFjcm9zcyBwYXJ0aXRpb25zLCBiYXNlZCBvbiB0aGVpciBwYXJ0aXRpb24ga2V5IHZhbHVlcy5cbiAqICBUaGUgc29ydCBrZXkgb2YgYW4gaXRlbSBpcyBhbHNvIGtub3duIGFzIGl0cyAqcmFuZ2UgYXR0cmlidXRlKi4gVGhlIHRlcm0gXCJyYW5nZSBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gdGhlIHdheSBEeW5hbW9EQiBzdG9yZXMgaXRlbXMgd2l0aCB0aGUgc2FtZSBwYXJ0aXRpb24ga2V5IHBoeXNpY2FsbHkgY2xvc2UgdG9nZXRoZXIsIGluIHNvcnRlZCBvcmRlciBieSB0aGUgc29ydCBrZXkgdmFsdWUuXG4gKi9cbktleVNjaGVtYTogS2V5U2NoZW1hW11cbn1cbi8qKlxuICogUmVwcmVzZW50cyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGNvcGllZCAocHJvamVjdGVkKSBmcm9tIHRoZSB0YWJsZSBpbnRvIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguIFRoZXNlIGFyZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcyBhbmQgaW5kZXgga2V5IGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IHByb2plY3RlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0aW9uMSB7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG5vbi1rZXkgYXR0cmlidXRlIG5hbWVzIHdoaWNoIHdpbGwgYmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogIEZvciBnbG9iYWwgYW5kIGxvY2FsIHNlY29uZGFyeSBpbmRleGVzLCB0aGUgdG90YWwgY291bnQgb2YgYGBOb25LZXlBdHRyaWJ1dGVzYGAgc3VtbWVkIGFjcm9zcyBhbGwgb2YgdGhlIHNlY29uZGFyeSBpbmRleGVzLCBtdXN0IG5vdCBleGNlZWQgMTAwLiBJZiB5b3UgcHJvamVjdCB0aGUgc2FtZSBhdHRyaWJ1dGUgaW50byB0d28gZGlmZmVyZW50IGluZGV4ZXMsIHRoaXMgY291bnRzIGFzIHR3byBkaXN0aW5jdCBhdHRyaWJ1dGVzIHdoZW4gZGV0ZXJtaW5pbmcgdGhlIHRvdGFsLiBUaGlzIGxpbWl0IG9ubHkgYXBwbGllcyB3aGVuIHlvdSBzcGVjaWZ5IHRoZSBQcm9qZWN0aW9uVHlwZSBvZiBgYElOQ0xVREVgYC4gWW91IHN0aWxsIGNhbiBzcGVjaWZ5IHRoZSBQcm9qZWN0aW9uVHlwZSBvZiBgYEFMTGBgIHRvIHByb2plY3QgYWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgc291cmNlIHRhYmxlLCBldmVuIGlmIHRoZSB0YWJsZSBoYXMgbW9yZSB0aGFuIDEwMCBhdHRyaWJ1dGVzLlxuICovXG5Ob25LZXlBdHRyaWJ1dGVzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIHNldCBvZiBhdHRyaWJ1dGVzIHRoYXQgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleDpcbiAqICAgKyAgYGBLRVlTX09OTFlgYCAtIE9ubHkgdGhlIGluZGV4IGFuZCBwcmltYXJ5IGtleXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC5cbiAqICAgKyAgYGBJTkNMVURFYGAgLSBJbiBhZGRpdGlvbiB0byB0aGUgYXR0cmlidXRlcyBkZXNjcmliZWQgaW4gYGBLRVlTX09OTFlgYCwgdGhlIHNlY29uZGFyeSBpbmRleCB3aWxsIGluY2x1ZGUgb3RoZXIgbm9uLWtleSBhdHRyaWJ1dGVzIHRoYXQgeW91IHNwZWNpZnkuXG4gKiAgICsgIGBgQUxMYGAgLSBBbGwgb2YgdGhlIHRhYmxlIGF0dHJpYnV0ZXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC5cbiAqICAgXG4gKiAgV2hlbiB1c2luZyB0aGUgRHluYW1vREIgY29uc29sZSwgYGBBTExgYCBpcyBzZWxlY3RlZCBieSBkZWZhdWx0LlxuICovXG5Qcm9qZWN0aW9uVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBEZXNjcmliZXMgYSB0YWcuIEEgdGFnIGlzIGEga2V5LXZhbHVlIHBhaXIuIFlvdSBjYW4gYWRkIHVwIHRvIDUwIHRhZ3MgdG8gYSBzaW5nbGUgRHluYW1vREIgdGFibGUuIFxuICogIEFXUy1hc3NpZ25lZCB0YWcgbmFtZXMgYW5kIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0aGUgYGBhd3M6YGAgcHJlZml4LCB3aGljaCB0aGUgdXNlciBjYW5ub3QgYXNzaWduLiBBV1MtYXNzaWduZWQgdGFnIG5hbWVzIGRvIG5vdCBjb3VudCB0b3dhcmRzIHRoZSB0YWcgbGltaXQgb2YgNTAuIFVzZXItYXNzaWduZWQgdGFnIG5hbWVzIGhhdmUgdGhlIHByZWZpeCBgYHVzZXI6YGAgaW4gdGhlIENvc3QgQWxsb2NhdGlvbiBSZXBvcnQuIFlvdSBjYW5ub3QgYmFja2RhdGUgdGhlIGFwcGxpY2F0aW9uIG9mIGEgdGFnLlxuICogIEZvciBhbiBvdmVydmlldyBvbiB0YWdnaW5nIER5bmFtb0RCIHJlc291cmNlcywgc2VlIFtUYWdnaW5nIGZvciBEeW5hbW9EQl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9UYWdnaW5nLmh0bWwpIGluIHRoZSAqQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSB0YWcuIFRhZyB2YWx1ZXMgYXJlIGNhc2Utc2Vuc2l0aXZlIGFuZCBjYW4gYmUgbnVsbC5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUga2V5IG9mIHRoZSB0YWcuIFRhZyBrZXlzIGFyZSBjYXNlIHNlbnNpdGl2ZS4gRWFjaCBEeW5hbW9EQiB0YWJsZSBjYW4gb25seSBoYXZlIHVwIHRvIG9uZSB0YWcgd2l0aCB0aGUgc2FtZSBrZXkuIElmIHlvdSB0cnkgdG8gYWRkIGFuIGV4aXN0aW5nIHRhZyAoc2FtZSBrZXkpLCB0aGUgZXhpc3RpbmcgdGFnIHZhbHVlIHdpbGwgYmUgdXBkYXRlZCB0byB0aGUgbmV3IHZhbHVlLlxuICovXG5LZXk6IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIFRpbWUgdG8gTGl2ZSAoVFRMKSBzZXR0aW5ncyBmb3IgdGhlIHRhYmxlLlxuICogICBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxpbWl0cyBpbiBEeW5hbW9EQiwgc2VlIFtMaW1pdHMgaW4gQW1hem9uIER5bmFtb0RCXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIFRUTCBpcyB0byBiZSBlbmFibGVkICh0cnVlKSBvciBkaXNhYmxlZCAoZmFsc2UpIG9uIHRoZSB0YWJsZS5cbiAqL1xuRW5hYmxlZDogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgVFRMIGF0dHJpYnV0ZSB1c2VkIHRvIHN0b3JlIHRoZSBleHBpcmF0aW9uIHRpbWUgZm9yIGl0ZW1zIGluIHRoZSB0YWJsZS5cbiAqICAgICsgIFRoZSBgYEF0dHJpYnV0ZU5hbWVgYCBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIGVuYWJsaW5nIHRoZSBUVEwsIG9yIHdoZW4gVFRMIGlzIGFscmVhZHkgZW5hYmxlZC5cbiAqICAgKyAgVG8gdXBkYXRlIHRoaXMgcHJvcGVydHksIHlvdSBtdXN0IGZpcnN0IGRpc2FibGUgVFRMIGFuZCB0aGVuIGVuYWJsZSBUVEwgd2l0aCB0aGUgbmV3IGF0dHJpYnV0ZSBuYW1lLlxuICovXG5BdHRyaWJ1dGVOYW1lPzogc3RyaW5nXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWR5bmFtb2RiLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWR5bmFtb2RiLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgY3JlYXRpbmcgYSB0YWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgV2FybVRocm91Z2hwdXQgPSAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiB7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiByZWFkIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuUmVhZFVuaXRzUGVyU2Vjb25kPzogbnVtYmVyXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiB3cml0ZSBvcGVyYXRpb25zIHlvdXIgYmFzZSB0YWJsZSBjYW4gaW5zdGFudGFuZW91c2x5IHN1cHBvcnQuXG4gKi9cbldyaXRlVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbn0pXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCB2YWx1ZSAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgdGhlIHNwZWNpZmllZCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBSZWFkVW5pdHNQZXJTZWNvbmRgYCwgYGBXcml0ZVVuaXRzUGVyU2Vjb25kYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCB0eXBlIFdhcm1UaHJvdWdocHV0MSA9ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHJlYWQgb3BlcmF0aW9ucyB5b3VyIGJhc2UgdGFibGUgY2FuIGluc3RhbnRhbmVvdXNseSBzdXBwb3J0LlxuICovXG5SZWFkVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHdyaXRlIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuV3JpdGVVbml0c1BlclNlY29uZD86IG51bWJlclxufSlcblxuLyoqXG4gKiBUaGUgYGBBV1M6OkR5bmFtb0RCOjpUYWJsZWBgIHJlc291cmNlIGNyZWF0ZXMgYSBEREIgdGFibGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NyZWF0ZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlVGFibGUuaHRtbCkgaW4gdGhlICpBUEkgUmVmZXJlbmNlKi5cbiAqICBZb3Ugc2hvdWxkIGJlIGF3YXJlIG9mIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3JzIHdoZW4gd29ya2luZyB3aXRoIEREQiB0YWJsZXM6XG4gKiAgICsgIENGTmxvbmcgdHlwaWNhbGx5IGNyZWF0ZXMgRERCIHRhYmxlcyBpbiBwYXJhbGxlbC4gSG93ZXZlciwgaWYgeW91ciB0ZW1wbGF0ZSBpbmNsdWRlcyBtdWx0aXBsZSBEREIgdGFibGVzIHdpdGggaW5kZXhlcywgeW91IG11c3QgZGVjbGFyZSBkZXBlbmRlbmNpZXMgc28gdGhhdCB0aGUgdGFibGVzIGFyZSBjcmVhdGVkIHNlcXVlbnRpYWxseS4gRERCbG9uZyBsaW1pdHMgdGhlIG51bWJlciBvZiB0YWJsZXMgd2l0aCBzZWNvbmRhcnkgaW5kZXhlcyB0aGF0IGFyZSBpbiB0aGUgY3JlYXRpbmcgc3RhdGUuIElmIHlvdSBjcmVhdGUgbXVsdGlwbGUgdGFibGVzIHdpdGggaW5kZXhlcyBhdCB0aGUgc2FtZSB0aW1lLCBEREIgcmV0dXJucyBhbiBlcnJvciBhbmQgdGhlIHN0YWNrIG9wZXJhdGlvbiBmYWlscy4gRm9yIGFuIGV4YW1wbGUsIHNlZSBbRHluYW1vREIgVGFibGUgd2l0aCBhIERlcGVuZHNPbiBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS5odG1sI2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS0tZXhhbXBsZXMtLUR5bmFtb0RCX1RhYmxlX3dpdGhfYV9EZXBlbmRzT25fQXR0cmlidXRlKS5cbiAqICAgXG4gKiAgICBPdXIgZ3VpZGFuY2UgaXMgdG8gdXNlIHRoZSBsYXRlc3Qgc2NoZW1hIGRvY3VtZW50ZWQgZm9yIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMuIFRoaXMgc2NoZW1hIHN1cHBvcnRzIHRoZSBwcm92aXNpb25pbmcgb2YgYWxsIHRhYmxlIHNldHRpbmdzIGJlbG93LiBXaGVuIHVzaW5nIHRoaXMgc2NoZW1hIGluIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMsIHBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSBwb2xpY2llcyBhcmUgdXBkYXRlZCB3aXRoIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIHRvIGFsbG93IGZvciB0aGUgYXV0aG9yaXphdGlvbiBvZiB0aGVzZSBzZXR0aW5nIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19EWU5BTU9EQl9UQUJMRSB7XG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXRcblNTRVNwZWNpZmljYXRpb24/OiBTU0VTcGVjaWZpY2F0aW9uXG5LaW5lc2lzU3RyZWFtU3BlY2lmaWNhdGlvbj86IEtpbmVzaXNTdHJlYW1TcGVjaWZpY2F0aW9uXG5TdHJlYW1TcGVjaWZpY2F0aW9uPzogU3RyZWFtU3BlY2lmaWNhdGlvblxuQ29udHJpYnV0b3JJbnNpZ2h0c1NwZWNpZmljYXRpb24/OiBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvblxuSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbj86IEltcG9ydFNvdXJjZVNwZWNpZmljYXRpb25cblBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uPzogUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb25cblByb3Zpc2lvbmVkVGhyb3VnaHB1dD86IFByb3Zpc2lvbmVkVGhyb3VnaHB1dFxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dFxuLyoqXG4gKiBBIG5hbWUgZm9yIHRoZSB0YWJsZS4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBDRk5sb25nIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgdGFibGUgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSBUeXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogICBJZiB5b3Ugc3BlY2lmeSBhIG5hbWUsIHlvdSBjYW5ub3QgcGVyZm9ybSB1cGRhdGVzIHRoYXQgcmVxdWlyZSByZXBsYWNlbWVudCBvZiB0aGlzIHJlc291cmNlLiBZb3UgY2FuIHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgbm8gb3Igc29tZSBpbnRlcnJ1cHRpb24uIElmIHlvdSBtdXN0IHJlcGxhY2UgdGhlIHJlc291cmNlLCBzcGVjaWZ5IGEgbmV3IG5hbWUuXG4gKi9cblRhYmxlTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgYXR0cmlidXRlcyB0aGF0IGRlc2NyaWJlIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgdGFibGUgYW5kIGluZGV4ZXMuXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB0byBjcmVhdGUgYSBEREIgdGFibGUuXG4gKiAgVXBkYXRlIHJlcXVpcmVzOiBbU29tZSBpbnRlcnJ1cHRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtc29tZS1pbnRlcnJ1cHQpLiBSZXBsYWNlbWVudCBpZiB5b3UgZWRpdCBhbiBleGlzdGluZyBBdHRyaWJ1dGVEZWZpbml0aW9uLlxuICovXG5BdHRyaWJ1dGVEZWZpbml0aW9ucz86IEF0dHJpYnV0ZURlZmluaXRpb25bXVxuLyoqXG4gKiBTcGVjaWZ5IGhvdyB5b3UgYXJlIGNoYXJnZWQgZm9yIHJlYWQgYW5kIHdyaXRlIHRocm91Z2hwdXQgYW5kIGhvdyB5b3UgbWFuYWdlIGNhcGFjaXR5LlxuICogIFZhbGlkIHZhbHVlcyBpbmNsdWRlOlxuICogICArICBgYFBBWV9QRVJfUkVRVUVTVGBgIC0gV2UgcmVjb21tZW5kIHVzaW5nIGBgUEFZX1BFUl9SRVFVRVNUYGAgZm9yIG1vc3QgRHluYW1vREIgd29ya2xvYWRzLiBgYFBBWV9QRVJfUkVRVUVTVGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbT24tZGVtYW5kIGNhcGFjaXR5IG1vZGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvb24tZGVtYW5kLWNhcGFjaXR5LW1vZGUuaHRtbCkuIFxuICogICArICBgYFBST1ZJU0lPTkVEYGAgLSBXZSByZWNvbW1lbmQgdXNpbmcgYGBQUk9WSVNJT05FRGBgIGZvciBzdGVhZHkgd29ya2xvYWRzIHdpdGggcHJlZGljdGFibGUgZ3Jvd3RoIHdoZXJlIGNhcGFjaXR5IHJlcXVpcmVtZW50cyBjYW4gYmUgcmVsaWFibHkgZm9yZWNhc3RlZC4gYGBQUk9WSVNJT05FRGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbUHJvdmlzaW9uZWQgY2FwYWNpdHkgbW9kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wcm92aXNpb25lZC1jYXBhY2l0eS1tb2RlLmh0bWwpLlxuICogICBcbiAqICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBpcyBgYFBST1ZJU0lPTkVEYGAuXG4gKi9cbkJpbGxpbmdNb2RlPzogc3RyaW5nXG4vKipcbiAqIEdsb2JhbCBzZWNvbmRhcnkgaW5kZXhlcyB0byBiZSBjcmVhdGVkIG9uIHRoZSB0YWJsZS4gWW91IGNhbiBjcmVhdGUgdXAgdG8gMjAgZ2xvYmFsIHNlY29uZGFyeSBpbmRleGVzLlxuICogICBJZiB5b3UgdXBkYXRlIGEgdGFibGUgdG8gaW5jbHVkZSBhIG5ldyBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCBDRk5sb25nIGluaXRpYXRlcyB0aGUgaW5kZXggY3JlYXRpb24gYW5kIHRoZW4gcHJvY2VlZHMgd2l0aCB0aGUgc3RhY2sgdXBkYXRlLiBDRk5sb25nIGRvZXNuJ3Qgd2FpdCBmb3IgdGhlIGluZGV4IHRvIGNvbXBsZXRlIGNyZWF0aW9uIGJlY2F1c2UgdGhlIGJhY2tmaWxsaW5nIHBoYXNlIGNhbiB0YWtlIGEgbG9uZyB0aW1lLCBkZXBlbmRpbmcgb24gdGhlIHNpemUgb2YgdGhlIHRhYmxlLiBZb3UgY2FuJ3QgdXNlIHRoZSBpbmRleCBvciB1cGRhdGUgdGhlIHRhYmxlIHVudGlsIHRoZSBpbmRleCdzIHN0YXR1cyBpcyBgYEFDVElWRWBgLiBZb3UgY2FuIHRyYWNrIGl0cyBzdGF0dXMgYnkgdXNpbmcgdGhlIER5bmFtb0RCIFtEZXNjcmliZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC9yZWZlcmVuY2UvZHluYW1vZGIvZGVzY3JpYmUtdGFibGUuaHRtbCkgY29tbWFuZC5cbiAqICBJZiB5b3UgYWRkIG9yIGRlbGV0ZSBhbiBpbmRleCBkdXJpbmcgYW4gdXBkYXRlLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgZG9uJ3QgdXBkYXRlIGFueSBvdGhlciByZXNvdXJjZXMuIElmIHlvdXIgc3RhY2sgZmFpbHMgdG8gdXBkYXRlIGFuZCBpcyByb2xsZWQgYmFjayB3aGlsZSBhZGRpbmcgYSBuZXcgaW5kZXgsIHlvdSBtdXN0IG1hbnVhbGx5IGRlbGV0ZSB0aGUgaW5kZXguIFxuICogIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIGV4Y2VwdGlvbnM6XG4gKiAgICsgIElmIHlvdSB1cGRhdGUgZWl0aGVyIHRoZSBjb250cmlidXRvciBpbnNpZ2h0cyBzcGVjaWZpY2F0aW9uIG9yIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHZhbHVlcyBvZiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHlvdSBjYW4gdXBkYXRlIHRoZSB0YWJsZSB3aXRob3V0IGludGVycnVwdGlvbi5cbiAqICAgKyAgWW91IGNhbiBkZWxldGUgb3IgYWRkIG9uZSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4IHdpdGhvdXQgaW50ZXJydXB0aW9uLiBJZiB5b3UgZG8gYm90aCBpbiB0aGUgc2FtZSB1cGRhdGUgKGZvciBleGFtcGxlLCBieSBjaGFuZ2luZyB0aGUgaW5kZXgncyBsb2dpY2FsIElEKSwgdGhlIHVwZGF0ZSBmYWlscy5cbiAqL1xuR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcz86IEdsb2JhbFNlY29uZGFyeUluZGV4W11cblJlc291cmNlUG9saWN5PzogUmVzb3VyY2VQb2xpY3kxXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgYXR0cmlidXRlcyB0aGF0IG1ha2UgdXAgdGhlIHByaW1hcnkga2V5IGZvciB0aGUgdGFibGUuIFRoZSBhdHRyaWJ1dGVzIGluIHRoZSBgYEtleVNjaGVtYWBgIHByb3BlcnR5IG11c3QgYWxzbyBiZSBkZWZpbmVkIGluIHRoZSBgYEF0dHJpYnV0ZURlZmluaXRpb25zYGAgcHJvcGVydHkuXG4gKi9cbktleVNjaGVtYTogKEtleVNjaGVtYVtdIHwge1xuW2s6IHN0cmluZ106IHVua25vd25cbn0pXG4vKipcbiAqIExvY2FsIHNlY29uZGFyeSBpbmRleGVzIHRvIGJlIGNyZWF0ZWQgb24gdGhlIHRhYmxlLiBZb3UgY2FuIGNyZWF0ZSB1cCB0byA1IGxvY2FsIHNlY29uZGFyeSBpbmRleGVzLiBFYWNoIGluZGV4IGlzIHNjb3BlZCB0byBhIGdpdmVuIGhhc2gga2V5IHZhbHVlLiBUaGUgc2l6ZSBvZiBlYWNoIGhhc2gga2V5IGNhbiBiZSB1cCB0byAxMCBnaWdhYnl0ZXMuXG4gKi9cbkxvY2FsU2Vjb25kYXJ5SW5kZXhlcz86IExvY2FsU2Vjb25kYXJ5SW5kZXhbXVxuQXJuPzogc3RyaW5nXG5TdHJlYW1Bcm4/OiBzdHJpbmdcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIHRhYmxlIGlzIHByb3RlY3RlZCBmcm9tIGRlbGV0aW9uLiBXaGVuIGVuYWJsZWQsIHRoZSB0YWJsZSBjYW5ub3QgYmUgZGVsZXRlZCBieSBhbnkgdXNlciBvciBwcm9jZXNzLiBUaGlzIHNldHRpbmcgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgZGVsZXRpb24gcHJvdGVjdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Xb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuaHRtbCNXb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuRGVsZXRpb25Qcm90ZWN0aW9uKSBpbiB0aGUgKkRldmVsb3BlciBHdWlkZSouXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YWJsZSBjbGFzcyBvZiB0aGUgbmV3IHRhYmxlLiBWYWxpZCB2YWx1ZXMgYXJlIGBgU1RBTkRBUkRgYCBhbmQgYGBTVEFOREFSRF9JTkZSRVFVRU5UX0FDQ0VTU2BgLlxuICovXG5UYWJsZUNsYXNzPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1RhZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcmVzb3VyY2UtdGFncy5odG1sKS5cbiAqL1xuVGFncz86IFRhZ1tdXG5UaW1lVG9MaXZlU3BlY2lmaWNhdGlvbj86IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIG9uLWRlbWFuZCB0YWJsZS4gSWYgeW91IHVzZSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGBgTWF4UmVhZFJlcXVlc3RVbml0c2BgLCBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25EZW1hbmRUaHJvdWdocHV0IHtcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2YgcmVhZCByZXF1ZXN0IHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICogIFRvIHNwZWNpZnkgYSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFJlYWRSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFJlYWRSZXF1ZXN0VW5pdHM/OiBudW1iZXJcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2Ygd3JpdGUgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIGFzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLiBUbyByZW1vdmUgdGhlIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCB0aGF0IGlzIGN1cnJlbnRseSBzZXQgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFdyaXRlUmVxdWVzdFVuaXRzPzogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgc2V0dGluZ3MgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1NFU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgZG9uZSB1c2luZyBhbiBBV1MgbWFuYWdlZCBrZXkgb3IgYW4gQVdTIG93bmVkIGtleS4gSWYgZW5hYmxlZCAodHJ1ZSksIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZSBpcyBzZXQgdG8gYGBLTVNgYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKEtNUyBjaGFyZ2VzIGFwcGx5KS4gSWYgZGlzYWJsZWQgKGZhbHNlKSBvciBub3Qgc3BlY2lmaWVkLCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGlzIHNldCB0byBBV1Mgb3duZWQga2V5LlxuICovXG5TU0VFbmFibGVkOiBib29sZWFuXG4vKipcbiAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZS4gVGhlIG9ubHkgc3VwcG9ydGVkIHZhbHVlIGlzOlxuICogICArICBgYEtNU2BgIC0gU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgS01TbG9uZy4gVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEtNUyAoS01TIGNoYXJnZXMgYXBwbHkpLlxuICovXG5TU0VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBLTVMga2V5IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBLTVMgZW5jcnlwdGlvbi4gVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZSB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYGFsaWFzL2F3cy9keW5hbW9kYmBgLlxuICovXG5LTVNNYXN0ZXJLZXlJZD86ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHN0cmluZylcbn1cbi8qKlxuICogVGhlIEtpbmVzaXMgRGF0YSBTdHJlYW1zIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgcHJlY2lzaW9uIGZvciB0aGUgdGltZSBhbmQgZGF0ZSB0aGF0IHRoZSBzdHJlYW0gd2FzIGNyZWF0ZWQuXG4gKi9cbkFwcHJveGltYXRlQ3JlYXRpb25EYXRlVGltZVByZWNpc2lvbj86IChcIk1JQ1JPU0VDT05EXCIgfCBcIk1JTExJU0VDT05EXCIpXG4vKipcbiAqIFRoZSBBUk4gZm9yIGEgc3BlY2lmaWMgS2luZXNpcyBkYXRhIHN0cmVhbS5cbiAqICBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDM3LiBNYXhpbXVtIGxlbmd0aCBvZiAxMDI0LlxuICovXG5TdHJlYW1Bcm46IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgZm9yIHRoZSBEREIgdGFibGUgc3RyZWFtLCB3aGljaCBjYXB0dXJlIGNoYW5nZXMgdG8gaXRlbXMgc3RvcmVkIGluIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgYGBTdHJlYW1WaWV3VHlwZWBgIGRldGVybWluZXMgd2hhdCBpbmZvcm1hdGlvbiBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0gZm9yIHRoaXMgdGFibGUuIFZhbGlkIHZhbHVlcyBmb3IgYGBTdHJlYW1WaWV3VHlwZWBgIGFyZTpcbiAqICAgKyAgYGBLRVlTX09OTFlgYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgTkVXX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgT0xEX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAqICAgKyAgYGBORVdfQU5EX09MRF9JTUFHRVNgYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICovXG5TdHJlYW1WaWV3VHlwZTogc3RyaW5nXG5SZXNvdXJjZVBvbGljeT86IFJlc291cmNlUG9saWN5XG59XG4vKipcbiAqIENyZWF0ZXMgb3IgdXBkYXRlcyBhIHJlc291cmNlLWJhc2VkIHBvbGljeSBkb2N1bWVudCB0aGF0IGNvbnRhaW5zIHRoZSBwZXJtaXNzaW9ucyBmb3IgRERCIHJlc291cmNlcywgc3VjaCBhcyBhIHRhYmxlJ3Mgc3RyZWFtcy4gUmVzb3VyY2UtYmFzZWQgcG9saWNpZXMgbGV0IHlvdSBkZWZpbmUgYWNjZXNzIHBlcm1pc3Npb25zIGJ5IHNwZWNpZnlpbmcgd2hvIGhhcyBhY2Nlc3MgdG8gZWFjaCByZXNvdXJjZSwgYW5kIHRoZSBhY3Rpb25zIHRoZXkgYXJlIGFsbG93ZWQgdG8gcGVyZm9ybSBvbiBlYWNoIHJlc291cmNlLlxuICogIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBvbGljeSB7XG4vKipcbiAqIEEgcmVzb3VyY2UtYmFzZWQgcG9saWN5IGRvY3VtZW50IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBzcGVjaWZpZWQgRERCIHRhYmxlLCBpbmRleCwgb3IgYm90aC4gSW4gYSBDRk5zaG9ydCB0ZW1wbGF0ZSwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBiZWNhdXNlIENGTnNob3J0IGNvbnZlcnRzIFlBTUwgdG8gSlNPTiBiZWZvcmUgc3VibWl0dGluZyBpdCB0byBEREIuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlc291cmNlLWJhc2VkIHBvbGljaWVzLCBzZWUgW1VzaW5nIHJlc291cmNlLWJhc2VkIHBvbGljaWVzIGZvcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hY2Nlc3MtY29udHJvbC1yZXNvdXJjZS1iYXNlZC5odG1sKSBhbmQgW1Jlc291cmNlLWJhc2VkIHBvbGljeSBleGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9yYmFjLWV4YW1wbGVzLmh0bWwpLlxuICovXG5Qb2xpY3lEb2N1bWVudDoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgQ2xvdWRXYXRjaCBDb250cmlidXRvciBJbnNpZ2h0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIENsb3VkV2F0Y2ggQ29udHJpYnV0b3IgSW5zaWdodHMgYXJlIHRvIGJlIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkuXG4gKi9cbkVuYWJsZWQ6IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIGRhdGEgYmVpbmcgaW1wb3J0ZWQgZnJvbSB0aGUgUzMgYnVja2V0IHNvdXJjZSB0byB0aGVcIiB0YWJsZS5cbiAqICAgSWYgeW91IHNwZWNpZnkgdGhlIGBgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbmBgIHByb3BlcnR5LCBhbmQgYWxzbyBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTdHJlYW1TcGVjaWZpY2F0aW9uYGAsIHRoZSBgYFRhYmxlQ2xhc3NgYCBwcm9wZXJ0eSwgdGhlIGBgRGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZGBgIHByb3BlcnR5LCBvciB0aGUgYGBXYXJtVGhyb3VnaHB1dGBgIHByb3BlcnR5LCB0aGUgSUFNIGVudGl0eSBjcmVhdGluZy91cGRhdGluZyBzdGFjayBtdXN0IGhhdmUgYGBVcGRhdGVUYWJsZWBgIHBlcm1pc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbiB7XG5TM0J1Y2tldFNvdXJjZTogUzNCdWNrZXRTb3VyY2Vcbi8qKlxuICogVGhlIGZvcm1hdCBvZiB0aGUgc291cmNlIGRhdGEuIFZhbGlkIHZhbHVlcyBmb3IgYGBJbXBvcnRGb3JtYXRgYCBhcmUgYGBDU1ZgYCwgYGBEWU5BTU9EQl9KU09OYGAgb3IgYGBJT05gYC5cbiAqL1xuSW5wdXRGb3JtYXQ6IHN0cmluZ1xuSW5wdXRGb3JtYXRPcHRpb25zPzogSW5wdXRGb3JtYXRPcHRpb25zXG4vKipcbiAqIFR5cGUgb2YgY29tcHJlc3Npb24gdG8gYmUgdXNlZCBvbiB0aGUgaW5wdXQgY29taW5nIGZyb20gdGhlIGltcG9ydGVkIHRhYmxlLlxuICovXG5JbnB1dENvbXByZXNzaW9uVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgUzMgYnVja2V0IHRoYXQgcHJvdmlkZXMgdGhlIHNvdXJjZSBmb3IgdGhlIGltcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0J1Y2tldFNvdXJjZSB7XG4vKipcbiAqIFRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLlxuICovXG5TM0J1Y2tldDogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgcHJlZml4IHNoYXJlZCBieSBhbGwgUzMgT2JqZWN0cyB0aGF0IGFyZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuUzNLZXlQcmVmaXg/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFjY291bnQgbnVtYmVyIG9mIHRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLiBJZiB0aGUgYnVja2V0IGlzIG93bmVkIGJ5IHRoZSByZXF1ZXN0ZXIgdGhpcyBpcyBvcHRpb25hbC5cbiAqL1xuUzNCdWNrZXRPd25lcj86IHN0cmluZ1xufVxuLyoqXG4gKiBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdGhhdCBzcGVjaWZ5IGhvdyB0aGUgaW5wdXQgaXMgZm9ybWF0dGVkLFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0Rm9ybWF0T3B0aW9ucyB7XG5Dc3Y/OiBDc3Zcbn1cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIGltcG9ydGVkIHNvdXJjZSBmaWxlcyBpbiBDU1YgZm9ybWF0LiBUaGUgdmFsdWVzIGFyZSBEZWxpbWl0ZXIgYW5kIEhlYWRlckxpc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3N2IHtcbi8qKlxuICogVGhlIGRlbGltaXRlciB1c2VkIGZvciBzZXBhcmF0aW5nIGl0ZW1zIGluIHRoZSBDU1YgZmlsZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuRGVsaW1pdGVyPzogc3RyaW5nXG4vKipcbiAqIExpc3Qgb2YgdGhlIGhlYWRlcnMgdXNlZCB0byBzcGVjaWZ5IGEgY29tbW9uIGhlYWRlciBmb3IgYWxsIHNvdXJjZSBDU1YgZmlsZXMgYmVpbmcgaW1wb3J0ZWQuIElmIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGxpbmUgb2YgZWFjaCBDU1YgZmlsZSBpcyB0cmVhdGVkIGFzIGRhdGEgaW5zdGVhZCBvZiB0aGUgaGVhZGVyLiBJZiB0aGlzIGZpZWxkIGlzIG5vdCBzcGVjaWZpZWQgdGhlIHRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggQ1NWIGZpbGUgaXMgdHJlYXRlZCBhcyB0aGUgaGVhZGVyLlxuICovXG5IZWFkZXJMaXN0Pzogc3RyaW5nW11cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHBvaW50IGluIHRpbWUgcmVjb3ZlcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBwb2ludCBpbiB0aW1lIHJlY292ZXJ5IGlzIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkgb24gdGhlIHRhYmxlLlxuICovXG5Qb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG51bWJlciBvZiBwcmVjZWRpbmcgZGF5cyBmb3Igd2hpY2ggY29udGludW91cyBiYWNrdXBzIGFyZSB0YWtlbiBhbmQgbWFpbnRhaW5lZC4gWW91ciB0YWJsZSBkYXRhIGlzIG9ubHkgcmVjb3ZlcmFibGUgdG8gYW55IHBvaW50LWluLXRpbWUgZnJvbSB3aXRoaW4gdGhlIGNvbmZpZ3VyZWQgcmVjb3ZlcnkgcGVyaW9kLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSB2YWx1ZSB3aWxsIGRlZmF1bHQgdG8gMzUuXG4gKi9cblJlY292ZXJ5UGVyaW9kSW5EYXlzPzogbnVtYmVyXG59XG4vKipcbiAqIFRocm91Z2hwdXQgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUsIHdoaWNoIGNvbnNpc3RzIG9mIHZhbHVlcyBmb3IgYGBSZWFkQ2FwYWNpdHlVbml0c2BgIGFuZCBgYFdyaXRlQ2FwYWNpdHlVbml0c2BgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGVudHMgb2YgYSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHN0cnVjdHVyZSwgc2VlIFtBbWF6b24gRHluYW1vREIgVGFibGUgUHJvdmlzaW9uZWRUaHJvdWdocHV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUHJvdmlzaW9uZWRUaHJvdWdocHV0Lmh0bWwpLiBcbiAqICBJZiB5b3Ugc2V0IGBgQmlsbGluZ01vZGVgYCBhcyBgYFBST1ZJU0lPTkVEYGAsIHlvdSBtdXN0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gSWYgeW91IHNldCBgYEJpbGxpbmdNb2RlYGAgYXMgYGBQQVlfUEVSX1JFUVVFU1RgYCwgeW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRUaHJvdWdocHV0IHtcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHdyaXRlcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuV3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cm9uZ2x5IGNvbnNpc3RlbnQgcmVhZHMgY29uc3VtZWQgcGVyIHNlY29uZCBiZWZvcmUgRHluYW1vREIgcmV0dXJucyBhIGBgVGhyb3R0bGluZ0V4Y2VwdGlvbmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIFJlYWQgYW5kIFdyaXRlIFJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Qcm92aXNpb25lZFRocm91Z2hwdXQuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqICBJZiByZWFkL3dyaXRlIGNhcGFjaXR5IG1vZGUgaXMgYGBQQVlfUEVSX1JFUVVFU1RgYCB0aGUgdmFsdWUgaXMgc2V0IHRvIDAuXG4gKi9cblJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhdHRyaWJ1dGUgZm9yIGRlc2NyaWJpbmcgdGhlIHNjaGVtYSBmb3IgdGhlIHRhYmxlIGFuZCBpbmRleGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZURlZmluaXRpb24ge1xuLyoqXG4gKiBUaGUgZGF0YSB0eXBlIGZvciB0aGUgYXR0cmlidXRlLCB3aGVyZTpcbiAqICAgKyAgYGBTYGAgLSB0aGUgYXR0cmlidXRlIGlzIG9mIHR5cGUgU3RyaW5nXG4gKiAgICsgIGBgTmBgIC0gdGhlIGF0dHJpYnV0ZSBpcyBvZiB0eXBlIE51bWJlclxuICogICArICBgYEJgYCAtIHRoZSBhdHRyaWJ1dGUgaXMgb2YgdHlwZSBCaW5hcnlcbiAqL1xuQXR0cmlidXRlVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbmFtZSBmb3IgdGhlIGF0dHJpYnV0ZS5cbiAqL1xuQXR0cmlidXRlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFNlY29uZGFyeUluZGV4IHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBvdGhlciBpbmRleGVzIG9uIHRoaXMgdGFibGUuXG4gKi9cbkluZGV4TmFtZTogc3RyaW5nXG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXQxXG5Db250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbj86IENvbnRyaWJ1dG9ySW5zaWdodHNTcGVjaWZpY2F0aW9uMVxuUHJvamVjdGlvbjogUHJvamVjdGlvblxuUHJvdmlzaW9uZWRUaHJvdWdocHV0PzogUHJvdmlzaW9uZWRUaHJvdWdocHV0MVxuLyoqXG4gKiBUaGUgY29tcGxldGUga2V5IHNjaGVtYSBmb3IgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCB3aGljaCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBwYWlycyBvZiBhdHRyaWJ1dGUgbmFtZXMgYW5kIGtleSB0eXBlczpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5U2NoZW1hOiBLZXlTY2hlbWFbXVxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dDFcbn1cbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAsIGBgTWF4V3JpdGVSZXF1ZXN0VW5pdHNgYCwgb3IgYm90aC4gWW91IG11c3QgdXNlIGVpdGhlciBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9yIGBgUHJvdmlzaW9uZWRUaHJvdWdocHV0YGAgYmFzZWQgb24geW91ciB0YWJsZSdzIGNhcGFjaXR5IG1vZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25EZW1hbmRUaHJvdWdocHV0MSB7XG4vKipcbiAqIE1heGltdW0gbnVtYmVyIG9mIHJlYWQgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgYXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEuIFRvIHJlbW92ZSB0aGUgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIHRoYXQgaXMgY3VycmVudGx5IHNldCBvbiB5b3VyIHRhYmxlLCBzZXQgdGhlIHZhbHVlIG9mIGBgTWF4UmVhZFJlcXVlc3RVbml0c2BgIHRvIC0xLlxuICovXG5NYXhSZWFkUmVxdWVzdFVuaXRzPzogbnVtYmVyXG4vKipcbiAqIE1heGltdW0gbnVtYmVyIG9mIHdyaXRlIHJlcXVlc3QgdW5pdHMgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUuXG4gKiAgVG8gc3BlY2lmeSBhIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCBvbiB5b3VyIHRhYmxlLCBzZXQgdGhlIHZhbHVlIG9mIGBgTWF4V3JpdGVSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIHRvIC0xLlxuICovXG5NYXhXcml0ZVJlcXVlc3RVbml0cz86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgdXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSBDbG91ZFdhdGNoIENvbnRyaWJ1dG9yIEluc2lnaHRzIGZvciB0aGUgc3BlY2lmaWVkIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0b3JJbnNpZ2h0c1NwZWNpZmljYXRpb24xIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgQ2xvdWRXYXRjaCBDb250cmlidXRvciBJbnNpZ2h0cyBhcmUgdG8gYmUgZW5hYmxlZCAodHJ1ZSkgb3IgZGlzYWJsZWQgKGZhbHNlKS5cbiAqL1xuRW5hYmxlZDogYm9vbGVhblxufVxuLyoqXG4gKiBSZXByZXNlbnRzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlIHRhYmxlIGludG8gdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIFRoZXNlIGFyZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcyBhbmQgaW5kZXgga2V5IGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IHByb2plY3RlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0aW9uIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbm9uLWtleSBhdHRyaWJ1dGUgbmFtZXMgd2hpY2ggd2lsbCBiZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgRm9yIGdsb2JhbCBhbmQgbG9jYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHRoZSB0b3RhbCBjb3VudCBvZiBgYE5vbktleUF0dHJpYnV0ZXNgYCBzdW1tZWQgYWNyb3NzIGFsbCBvZiB0aGUgc2Vjb25kYXJ5IGluZGV4ZXMsIG11c3Qgbm90IGV4Y2VlZCAxMDAuIElmIHlvdSBwcm9qZWN0IHRoZSBzYW1lIGF0dHJpYnV0ZSBpbnRvIHR3byBkaWZmZXJlbnQgaW5kZXhlcywgdGhpcyBjb3VudHMgYXMgdHdvIGRpc3RpbmN0IGF0dHJpYnV0ZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdG90YWwuIFRoaXMgbGltaXQgb25seSBhcHBsaWVzIHdoZW4geW91IHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgSU5DTFVERWBgLiBZb3Ugc3RpbGwgY2FuIHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgQUxMYGAgdG8gcHJvamVjdCBhbGwgYXR0cmlidXRlcyBmcm9tIHRoZSBzb3VyY2UgdGFibGUsIGV2ZW4gaWYgdGhlIHRhYmxlIGhhcyBtb3JlIHRoYW4gMTAwIGF0dHJpYnV0ZXMuXG4gKi9cbk5vbktleUF0dHJpYnV0ZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgc2V0IG9mIGF0dHJpYnV0ZXMgdGhhdCBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4OlxuICogICArICBgYEtFWVNfT05MWWBgIC0gT25seSB0aGUgaW5kZXggYW5kIHByaW1hcnkga2V5cyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICArICBgYElOQ0xVREVgYCAtIEluIGFkZGl0aW9uIHRvIHRoZSBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBpbiBgYEtFWVNfT05MWWBgLCB0aGUgc2Vjb25kYXJ5IGluZGV4IHdpbGwgaW5jbHVkZSBvdGhlciBub24ta2V5IGF0dHJpYnV0ZXMgdGhhdCB5b3Ugc3BlY2lmeS5cbiAqICAgKyAgYGBBTExgYCAtIEFsbCBvZiB0aGUgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICBcbiAqICBXaGVuIHVzaW5nIHRoZSBEeW5hbW9EQiBjb25zb2xlLCBgYEFMTGBgIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuXG4gKi9cblByb2plY3Rpb25UeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC4gWW91IG11c3QgdXNlIGVpdGhlciBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9yIGBgUHJvdmlzaW9uZWRUaHJvdWdocHV0YGAgYmFzZWQgb24geW91ciB0YWJsZSdzIGNhcGFjaXR5IG1vZGUuXG4gKiAgRm9yIGN1cnJlbnQgbWluaW11bSBhbmQgbWF4aW11bSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHZhbHVlcywgc2VlIFtTZXJ2aWNlLCBBY2NvdW50LCBhbmQgVGFibGUgUXVvdGFzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkVGhyb3VnaHB1dDEge1xuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygd3JpdGVzIGNvbnN1bWVkIHBlciBzZWNvbmQgYmVmb3JlIER5bmFtb0RCIHJldHVybnMgYSBgYFRocm90dGxpbmdFeGNlcHRpb25gYC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbU3BlY2lmeWluZyBSZWFkIGFuZCBXcml0ZSBSZXF1aXJlbWVudHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvUHJvdmlzaW9uZWRUaHJvdWdocHV0Lmh0bWwpIGluIHRoZSAqQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZSouXG4gKiAgSWYgcmVhZC93cml0ZSBjYXBhY2l0eSBtb2RlIGlzIGBgUEFZX1BFUl9SRVFVRVNUYGAgdGhlIHZhbHVlIGlzIHNldCB0byAwLlxuICovXG5Xcml0ZUNhcGFjaXR5VW5pdHM6IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3Ryb25nbHkgY29uc2lzdGVudCByZWFkcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuUmVhZENhcGFjaXR5VW5pdHM6IG51bWJlclxufVxuLyoqXG4gKiBSZXByZXNlbnRzICphIHNpbmdsZSBlbGVtZW50KiBvZiBhIGtleSBzY2hlbWEuIEEga2V5IHNjaGVtYSBzcGVjaWZpZXMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBtYWtlIHVwIHRoZSBwcmltYXJ5IGtleSBvZiBhIHRhYmxlLCBvciB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgYW4gaW5kZXguXG4gKiAgQSBgYEtleVNjaGVtYUVsZW1lbnRgYCByZXByZXNlbnRzIGV4YWN0bHkgb25lIGF0dHJpYnV0ZSBvZiB0aGUgcHJpbWFyeSBrZXkuIEZvciBleGFtcGxlLCBhIHNpbXBsZSBwcmltYXJ5IGtleSB3b3VsZCBiZSByZXByZXNlbnRlZCBieSBvbmUgYGBLZXlTY2hlbWFFbGVtZW50YGAgKGZvciB0aGUgcGFydGl0aW9uIGtleSkuIEEgY29tcG9zaXRlIHByaW1hcnkga2V5IHdvdWxkIHJlcXVpcmUgb25lIGBgS2V5U2NoZW1hRWxlbWVudGBgIGZvciB0aGUgcGFydGl0aW9uIGtleSwgYW5kIGFub3RoZXIgYGBLZXlTY2hlbWFFbGVtZW50YGAgZm9yIHRoZSBzb3J0IGtleS5cbiAqICBBIGBgS2V5U2NoZW1hRWxlbWVudGBgIG11c3QgYmUgYSBzY2FsYXIsIHRvcC1sZXZlbCBhdHRyaWJ1dGUgKG5vdCBhIG5lc3RlZCBhdHRyaWJ1dGUpLiBUaGUgZGF0YSB0eXBlIG11c3QgYmUgb25lIG9mIFN0cmluZywgTnVtYmVyLCBvciBCaW5hcnkuIFRoZSBhdHRyaWJ1dGUgY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYSBMaXN0IG9yIGEgTWFwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVNjaGVtYSB7XG4vKipcbiAqIFRoZSByb2xlIHRoYXQgdGhpcyBrZXkgYXR0cmlidXRlIHdpbGwgYXNzdW1lOlxuICogICArICBgYEhBU0hgYCAtIHBhcnRpdGlvbiBrZXlcbiAqICAgKyAgYGBSQU5HRWBgIC0gc29ydCBrZXlcbiAqICAgXG4gKiAgIFRoZSBwYXJ0aXRpb24ga2V5IG9mIGFuIGl0ZW0gaXMgYWxzbyBrbm93biBhcyBpdHMgKmhhc2ggYXR0cmlidXRlKi4gVGhlIHRlcm0gXCJoYXNoIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSBEeW5hbW9EQidzIHVzYWdlIG9mIGFuIGludGVybmFsIGhhc2ggZnVuY3Rpb24gdG8gZXZlbmx5IGRpc3RyaWJ1dGUgZGF0YSBpdGVtcyBhY3Jvc3MgcGFydGl0aW9ucywgYmFzZWQgb24gdGhlaXIgcGFydGl0aW9uIGtleSB2YWx1ZXMuXG4gKiAgVGhlIHNvcnQga2V5IG9mIGFuIGl0ZW0gaXMgYWxzbyBrbm93biBhcyBpdHMgKnJhbmdlIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwicmFuZ2UgYXR0cmlidXRlXCIgZGVyaXZlcyBmcm9tIHRoZSB3YXkgRHluYW1vREIgc3RvcmVzIGl0ZW1zIHdpdGggdGhlIHNhbWUgcGFydGl0aW9uIGtleSBwaHlzaWNhbGx5IGNsb3NlIHRvZ2V0aGVyLCBpbiBzb3J0ZWQgb3JkZXIgYnkgdGhlIHNvcnQga2V5IHZhbHVlLlxuICovXG5LZXlUeXBlOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgYSBrZXkgYXR0cmlidXRlLlxuICovXG5BdHRyaWJ1dGVOYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogQSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgZG9jdW1lbnQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyB0byBhZGQgdG8gdGhlIHNwZWNpZmllZCB0YWJsZS4gSW4gYSBDRk5zaG9ydCB0ZW1wbGF0ZSwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBiZWNhdXNlIENGTnNob3J0IGNvbnZlcnRzIFlBTUwgdG8gSlNPTiBiZWZvcmUgc3VibWl0dGluZyBpdCB0byBEREIuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlc291cmNlLWJhc2VkIHBvbGljaWVzLCBzZWUgW1VzaW5nIHJlc291cmNlLWJhc2VkIHBvbGljaWVzIGZvcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hY2Nlc3MtY29udHJvbC1yZXNvdXJjZS1iYXNlZC5odG1sKSBhbmQgW1Jlc291cmNlLWJhc2VkIHBvbGljeSBleGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9yYmFjLWV4YW1wbGVzLmh0bWwpLlxuICogIFdoZW4geW91IGF0dGFjaCBhIHJlc291cmNlLWJhc2VkIHBvbGljeSB3aGlsZSBjcmVhdGluZyBhIHRhYmxlLCB0aGUgcG9saWN5IGNyZWF0aW9uIGlzICpzdHJvbmdseSBjb25zaXN0ZW50Ki4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb25zaWRlcmF0aW9ucyB0aGF0IHlvdSBzaG91bGQga2VlcCBpbiBtaW5kIHdoaWxlIGF0dGFjaGluZyBhIHJlc291cmNlLWJhc2VkIHBvbGljeSwgc2VlIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgY29uc2lkZXJhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1jb25zaWRlcmF0aW9ucy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBvbGljeTEge1xuLyoqXG4gKiBBIHJlc291cmNlLWJhc2VkIHBvbGljeSBkb2N1bWVudCB0aGF0IGNvbnRhaW5zIHBlcm1pc3Npb25zIHRvIGFkZCB0byB0aGUgc3BlY2lmaWVkIEREQiB0YWJsZSwgaW5kZXgsIG9yIGJvdGguIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqL1xuUG9saWN5RG9jdW1lbnQ6IHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguIEEgbG9jYWwgc2Vjb25kYXJ5IGluZGV4IGNhbiBvbmx5IGJlIGNyZWF0ZWQgd2hlbiBpdHMgcGFyZW50IHRhYmxlIGlzIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTZWNvbmRhcnlJbmRleCB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBvdGhlciBpbmRleGVzIG9uIHRoaXMgdGFibGUuXG4gKi9cbkluZGV4TmFtZTogc3RyaW5nXG5Qcm9qZWN0aW9uOiBQcm9qZWN0aW9uMVxuLyoqXG4gKiBUaGUgY29tcGxldGUga2V5IHNjaGVtYSBmb3IgdGhlIGxvY2FsIHNlY29uZGFyeSBpbmRleCwgY29uc2lzdGluZyBvZiBvbmUgb3IgbW9yZSBwYWlycyBvZiBhdHRyaWJ1dGUgbmFtZXMgYW5kIGtleSB0eXBlczpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5U2NoZW1hOiBLZXlTY2hlbWFbXVxufVxuLyoqXG4gKiBSZXByZXNlbnRzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlIHRhYmxlIGludG8gdGhlIGxvY2FsIHNlY29uZGFyeSBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3Rpb24xIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbm9uLWtleSBhdHRyaWJ1dGUgbmFtZXMgd2hpY2ggd2lsbCBiZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgRm9yIGdsb2JhbCBhbmQgbG9jYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHRoZSB0b3RhbCBjb3VudCBvZiBgYE5vbktleUF0dHJpYnV0ZXNgYCBzdW1tZWQgYWNyb3NzIGFsbCBvZiB0aGUgc2Vjb25kYXJ5IGluZGV4ZXMsIG11c3Qgbm90IGV4Y2VlZCAxMDAuIElmIHlvdSBwcm9qZWN0IHRoZSBzYW1lIGF0dHJpYnV0ZSBpbnRvIHR3byBkaWZmZXJlbnQgaW5kZXhlcywgdGhpcyBjb3VudHMgYXMgdHdvIGRpc3RpbmN0IGF0dHJpYnV0ZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdG90YWwuIFRoaXMgbGltaXQgb25seSBhcHBsaWVzIHdoZW4geW91IHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgSU5DTFVERWBgLiBZb3Ugc3RpbGwgY2FuIHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgQUxMYGAgdG8gcHJvamVjdCBhbGwgYXR0cmlidXRlcyBmcm9tIHRoZSBzb3VyY2UgdGFibGUsIGV2ZW4gaWYgdGhlIHRhYmxlIGhhcyBtb3JlIHRoYW4gMTAwIGF0dHJpYnV0ZXMuXG4gKi9cbk5vbktleUF0dHJpYnV0ZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgc2V0IG9mIGF0dHJpYnV0ZXMgdGhhdCBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4OlxuICogICArICBgYEtFWVNfT05MWWBgIC0gT25seSB0aGUgaW5kZXggYW5kIHByaW1hcnkga2V5cyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICArICBgYElOQ0xVREVgYCAtIEluIGFkZGl0aW9uIHRvIHRoZSBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBpbiBgYEtFWVNfT05MWWBgLCB0aGUgc2Vjb25kYXJ5IGluZGV4IHdpbGwgaW5jbHVkZSBvdGhlciBub24ta2V5IGF0dHJpYnV0ZXMgdGhhdCB5b3Ugc3BlY2lmeS5cbiAqICAgKyAgYGBBTExgYCAtIEFsbCBvZiB0aGUgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICBcbiAqICBXaGVuIHVzaW5nIHRoZSBEeW5hbW9EQiBjb25zb2xlLCBgYEFMTGBgIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuXG4gKi9cblByb2plY3Rpb25UeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIERlc2NyaWJlcyBhIHRhZy4gQSB0YWcgaXMgYSBrZXktdmFsdWUgcGFpci4gWW91IGNhbiBhZGQgdXAgdG8gNTAgdGFncyB0byBhIHNpbmdsZSBEeW5hbW9EQiB0YWJsZS4gXG4gKiAgQVdTLWFzc2lnbmVkIHRhZyBuYW1lcyBhbmQgdmFsdWVzIGFyZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHRoZSBgYGF3czpgYCBwcmVmaXgsIHdoaWNoIHRoZSB1c2VyIGNhbm5vdCBhc3NpZ24uIEFXUy1hc3NpZ25lZCB0YWcgbmFtZXMgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHRhZyBsaW1pdCBvZiA1MC4gVXNlci1hc3NpZ25lZCB0YWcgbmFtZXMgaGF2ZSB0aGUgcHJlZml4IGBgdXNlcjpgYCBpbiB0aGUgQ29zdCBBbGxvY2F0aW9uIFJlcG9ydC4gWW91IGNhbm5vdCBiYWNrZGF0ZSB0aGUgYXBwbGljYXRpb24gb2YgYSB0YWcuXG4gKiAgRm9yIGFuIG92ZXJ2aWV3IG9uIHRhZ2dpbmcgRHluYW1vREIgcmVzb3VyY2VzLCBzZWUgW1RhZ2dpbmcgZm9yIER5bmFtb0RCXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1RhZ2dpbmcuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUgdmFsdWUgb2YgdGhlIHRhZy4gVGFnIHZhbHVlcyBhcmUgY2FzZS1zZW5zaXRpdmUgYW5kIGNhbiBiZSBudWxsLlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgb2YgdGhlIHRhZy4gVGFnIGtleXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiBFYWNoIER5bmFtb0RCIHRhYmxlIGNhbiBvbmx5IGhhdmUgdXAgdG8gb25lIHRhZyB3aXRoIHRoZSBzYW1lIGtleS4gSWYgeW91IHRyeSB0byBhZGQgYW4gZXhpc3RpbmcgdGFnIChzYW1lIGtleSksIHRoZSBleGlzdGluZyB0YWcgdmFsdWUgd2lsbCBiZSB1cGRhdGVkIHRvIHRoZSBuZXcgdmFsdWUuXG4gKi9cbktleTogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgVGltZSB0byBMaXZlIChUVEwpIHNldHRpbmdzIGZvciB0aGUgdGFibGUuXG4gKiAgIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGltaXRzIGluIER5bmFtb0RCLCBzZWUgW0xpbWl0cyBpbiBBbWF6b24gRHluYW1vREJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvTGltaXRzLmh0bWwpIGluIHRoZSBBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgVFRMIGlzIHRvIGJlIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkgb24gdGhlIHRhYmxlLlxuICovXG5FbmFibGVkOiBib29sZWFuXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBUVEwgYXR0cmlidXRlIHVzZWQgdG8gc3RvcmUgdGhlIGV4cGlyYXRpb24gdGltZSBmb3IgaXRlbXMgaW4gdGhlIHRhYmxlLlxuICogICAgKyAgVGhlIGBgQXR0cmlidXRlTmFtZWBgIHByb3BlcnR5IGlzIHJlcXVpcmVkIHdoZW4gZW5hYmxpbmcgdGhlIFRUTCwgb3Igd2hlbiBUVEwgaXMgYWxyZWFkeSBlbmFibGVkLlxuICogICArICBUbyB1cGRhdGUgdGhpcyBwcm9wZXJ0eSwgeW91IG11c3QgZmlyc3QgZGlzYWJsZSBUVEwgYW5kIHRoZW4gZW5hYmxlIFRUTCB3aXRoIHRoZSBuZXcgYXR0cmlidXRlIG5hbWUuXG4gKi9cbkF0dHJpYnV0ZU5hbWU/OiBzdHJpbmdcbn1cbiJdfQ==
@@ -233,6 +233,16 @@ export interface Ebs {
233
233
  * This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only.
234
234
  */
235
235
  Iops?: number;
236
+ /**
237
+ * Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.
238
+ * This parameter is supported only for volumes created from snapshots. Omit this parameter if:
239
+ * + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.
240
+ * If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.
241
+ * + You want to create a volume that is initialized at the default rate.
242
+ *
243
+ * For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.
244
+ * Valid range: 100 - 300 MiB/s
245
+ */
236
246
  VolumeInitializationRate?: number;
237
247
  /**
238
248
  * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type: