@alicloud/ros-cdk-ecs 1.0.21 → 1.0.22

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 (121) hide show
  1. package/lib/activation.d.ts +6 -9
  2. package/lib/activation.js +4 -4
  3. package/lib/assignipv6addresses.d.ts +5 -8
  4. package/lib/assignipv6addresses.js +4 -4
  5. package/lib/assignprivateipaddresses.d.ts +5 -8
  6. package/lib/assignprivateipaddresses.js +4 -4
  7. package/lib/autoprovisioninggroup.d.ts +6 -9
  8. package/lib/autoprovisioninggroup.js +4 -4
  9. package/lib/autosnapshotpolicy.d.ts +6 -9
  10. package/lib/autosnapshotpolicy.js +4 -4
  11. package/lib/command.d.ts +5 -8
  12. package/lib/command.js +4 -4
  13. package/lib/copyimage.d.ts +11 -9
  14. package/lib/copyimage.js +5 -4
  15. package/lib/customimage.d.ts +25 -12
  16. package/lib/customimage.js +12 -9
  17. package/lib/datasource/activations.d.ts +5 -8
  18. package/lib/datasource/activations.js +4 -4
  19. package/lib/datasource/autosnapshotpolicies.d.ts +5 -8
  20. package/lib/datasource/autosnapshotpolicies.js +4 -4
  21. package/lib/datasource/commands.d.ts +5 -8
  22. package/lib/datasource/commands.js +4 -4
  23. package/lib/datasource/dedicatedhostclusters.d.ts +5 -8
  24. package/lib/datasource/dedicatedhostclusters.js +4 -4
  25. package/lib/datasource/dedicatedhosts.d.ts +5 -8
  26. package/lib/datasource/dedicatedhosts.js +4 -4
  27. package/lib/datasource/deploymentsets.d.ts +5 -8
  28. package/lib/datasource/deploymentsets.js +4 -4
  29. package/lib/datasource/diskcategories.d.ts +5 -8
  30. package/lib/datasource/diskcategories.js +4 -4
  31. package/lib/datasource/disks.d.ts +6 -9
  32. package/lib/datasource/disks.js +4 -4
  33. package/lib/datasource/ecs.generated.d.ts +112 -166
  34. package/lib/datasource/ecs.generated.js +55 -55
  35. package/lib/datasource/hpcclusters.d.ts +5 -8
  36. package/lib/datasource/hpcclusters.js +4 -4
  37. package/lib/datasource/images.d.ts +6 -9
  38. package/lib/datasource/images.js +4 -4
  39. package/lib/datasource/instances.d.ts +6 -9
  40. package/lib/datasource/instances.js +4 -4
  41. package/lib/datasource/keypairs.d.ts +5 -8
  42. package/lib/datasource/keypairs.js +4 -4
  43. package/lib/datasource/managedinstances.d.ts +5 -8
  44. package/lib/datasource/managedinstances.js +4 -4
  45. package/lib/datasource/networkinterfaces.d.ts +5 -8
  46. package/lib/datasource/networkinterfaces.js +4 -4
  47. package/lib/datasource/recommendinstancetypes.d.ts +10 -13
  48. package/lib/datasource/recommendinstancetypes.js +4 -4
  49. package/lib/datasource/securitygroups.d.ts +5 -8
  50. package/lib/datasource/securitygroups.js +4 -4
  51. package/lib/datasource/snapshots.d.ts +5 -8
  52. package/lib/datasource/snapshots.js +4 -4
  53. package/lib/datasource/zones.d.ts +8 -11
  54. package/lib/datasource/zones.js +4 -4
  55. package/lib/dedicatedhost.d.ts +7 -10
  56. package/lib/dedicatedhost.js +4 -4
  57. package/lib/deploymentset.d.ts +20 -10
  58. package/lib/deploymentset.js +6 -4
  59. package/lib/disk.d.ts +7 -10
  60. package/lib/disk.js +4 -4
  61. package/lib/diskattachment.d.ts +6 -9
  62. package/lib/diskattachment.js +4 -4
  63. package/lib/ecs.generated.d.ts +967 -464
  64. package/lib/ecs.generated.js +645 -210
  65. package/lib/forwardentry.d.ts +8 -11
  66. package/lib/forwardentry.js +4 -4
  67. package/lib/hpccluster.d.ts +7 -10
  68. package/lib/hpccluster.js +4 -4
  69. package/lib/imagesharepermission.d.ts +43 -0
  70. package/lib/imagesharepermission.js +31 -0
  71. package/lib/index.d.ts +1 -0
  72. package/lib/index.js +2 -1
  73. package/lib/instance.d.ts +71 -14
  74. package/lib/instance.js +36 -25
  75. package/lib/instanceclone.d.ts +5 -8
  76. package/lib/instanceclone.js +4 -4
  77. package/lib/instancegroup.d.ts +72 -15
  78. package/lib/instancegroup.js +17 -6
  79. package/lib/instancegroupclone.d.ts +7 -10
  80. package/lib/instancegroupclone.js +4 -4
  81. package/lib/invocation.d.ts +59 -10
  82. package/lib/invocation.js +12 -5
  83. package/lib/joinsecuritygroup.d.ts +5 -8
  84. package/lib/joinsecuritygroup.js +4 -8
  85. package/lib/launchtemplate.d.ts +9 -12
  86. package/lib/launchtemplate.js +4 -4
  87. package/lib/networkinterface.d.ts +5 -8
  88. package/lib/networkinterface.js +4 -4
  89. package/lib/networkinterfaceattachment.d.ts +5 -8
  90. package/lib/networkinterfaceattachment.js +4 -4
  91. package/lib/networkinterfacepermission.d.ts +5 -8
  92. package/lib/networkinterfacepermission.js +4 -4
  93. package/lib/prefixlist.d.ts +7 -10
  94. package/lib/prefixlist.js +4 -4
  95. package/lib/ramroleattachment.d.ts +5 -8
  96. package/lib/ramroleattachment.js +4 -4
  97. package/lib/route.d.ts +5 -8
  98. package/lib/route.js +4 -4
  99. package/lib/runcommand.d.ts +50 -16
  100. package/lib/runcommand.js +11 -6
  101. package/lib/securitygroup.d.ts +5 -8
  102. package/lib/securitygroup.js +4 -4
  103. package/lib/securitygroupclone.d.ts +5 -8
  104. package/lib/securitygroupclone.js +4 -4
  105. package/lib/securitygroupegress.d.ts +6 -9
  106. package/lib/securitygroupegress.js +4 -8
  107. package/lib/securitygroupingress.d.ts +7 -10
  108. package/lib/securitygroupingress.js +4 -8
  109. package/lib/snapshot.d.ts +7 -10
  110. package/lib/snapshot.js +4 -4
  111. package/lib/snatentry.d.ts +7 -10
  112. package/lib/snatentry.js +4 -4
  113. package/lib/sshkeypair.d.ts +6 -9
  114. package/lib/sshkeypair.js +4 -4
  115. package/lib/sshkeypairattachment.d.ts +5 -8
  116. package/lib/sshkeypairattachment.js +4 -8
  117. package/lib/vpc.d.ts +8 -11
  118. package/lib/vpc.js +4 -4
  119. package/lib/vswitch.d.ts +5 -8
  120. package/lib/vswitch.js +4 -4
  121. package/package.json +1 -1
@@ -5,12 +5,12 @@ const ros = require("@alicloud/ros-cdk-core");
5
5
  const ecs_generated_1 = require("./ecs.generated");
6
6
  Object.defineProperty(exports, "InstanceGroupProperty", { enumerable: true, get: function () { return ecs_generated_1.RosInstanceGroup; } });
7
7
  /**
8
- * A ROS resource type: `ALIYUN::ECS::InstanceGroup`
8
+ * This class encapsulates and extends the ROS resource type `ALIYUN::ECS::InstanceGroup`, which is used to create a group of Elastic Compute Service (ECS) instances that have the same configurations.
9
+ * @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstanceGroup`for a more convenient development experience.
10
+ * See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instancegroup
9
11
  */
10
12
  class InstanceGroup extends ros.Resource {
11
13
  /**
12
- * Create a new `ALIYUN::ECS::InstanceGroup`.
13
- *
14
14
  * Param scope - scope in which this resource is defined
15
15
  * Param id - scoped id of the resource
16
16
  * Param props - resource properties
@@ -25,9 +25,12 @@ class InstanceGroup extends ros.Resource {
25
25
  systemDiskProvisionedIops: props.systemDiskProvisionedIops,
26
26
  systemDiskEncryptAlgorithm: props.systemDiskEncryptAlgorithm,
27
27
  ramRoleName: props.ramRoleName,
28
+ privatePoolOptions: props.privatePoolOptions,
28
29
  systemDiskPerformanceLevel: props.systemDiskPerformanceLevel,
29
30
  imageId: props.imageId,
30
31
  systemDiskDiskName: props.systemDiskDiskName,
32
+ storageSetId: props.storageSetId,
33
+ useAdditionalService: props.useAdditionalService,
31
34
  tags: props.tags,
32
35
  hostName: props.hostName,
33
36
  systemDiskStorageClusterId: props.systemDiskStorageClusterId,
@@ -36,19 +39,23 @@ class InstanceGroup extends ros.Resource {
36
39
  systemDiskKmsKeyId: props.systemDiskKmsKeyId,
37
40
  vSwitchId: props.vSwitchId,
38
41
  period: props.period === undefined || props.period === null ? 1 : props.period,
42
+ imageFamily: props.imageFamily,
39
43
  launchTemplateId: props.launchTemplateId,
40
44
  deletionProtection: props.deletionProtection,
45
+ httpEndpoint: props.httpEndpoint,
41
46
  securityGroupIds: props.securityGroupIds,
42
47
  internetChargeType: props.internetChargeType === undefined || props.internetChargeType === null ? 'PayByTraffic' : props.internetChargeType,
48
+ spotInterruptionBehavior: props.spotInterruptionBehavior === undefined || props.spotInterruptionBehavior === null ? 'Terminate' : props.spotInterruptionBehavior,
43
49
  instanceName: props.instanceName,
44
- spotInterruptionBehavior: props.spotInterruptionBehavior,
45
50
  deploymentSetId: props.deploymentSetId,
46
51
  internetMaxBandwidthOut: props.internetMaxBandwidthOut === undefined || props.internetMaxBandwidthOut === null ? 1 : props.internetMaxBandwidthOut,
47
52
  vpcId: props.vpcId,
48
53
  launchTemplateVersion: props.launchTemplateVersion,
54
+ affinity: props.affinity,
49
55
  securityEnhancementStrategy: props.securityEnhancementStrategy,
50
56
  autoReleaseTime: props.autoReleaseTime,
51
57
  periodUnit: props.periodUnit === undefined || props.periodUnit === null ? 'Month' : props.periodUnit,
58
+ tenancy: props.tenancy,
52
59
  privateIpAddress: props.privateIpAddress,
53
60
  description: props.description,
54
61
  diskMappings: props.diskMappings,
@@ -56,6 +63,7 @@ class InstanceGroup extends ros.Resource {
56
63
  systemDiskSize: props.systemDiskSize,
57
64
  autoRenew: props.autoRenew === undefined || props.autoRenew === null ? 'False' : props.autoRenew,
58
65
  spotDuration: props.spotDuration,
66
+ storageSetPartitionNumber: props.storageSetPartitionNumber,
59
67
  ipv6Addresses: props.ipv6Addresses,
60
68
  systemDiskEncrypted: props.systemDiskEncrypted,
61
69
  maxAmount: props.maxAmount,
@@ -75,9 +83,12 @@ class InstanceGroup extends ros.Resource {
75
83
  zoneId: props.zoneId,
76
84
  hpcClusterId: props.hpcClusterId,
77
85
  securityGroupId: props.securityGroupId,
86
+ deploymentSetGroupNo: props.deploymentSetGroupNo,
78
87
  systemDiskCategory: props.systemDiskCategory === undefined || props.systemDiskCategory === null ? 'cloud_efficiency' : props.systemDiskCategory,
79
- eniMappings: props.eniMappings,
80
88
  systemDiskBurstingEnabled: props.systemDiskBurstingEnabled,
89
+ eniMappings: props.eniMappings,
90
+ httpTokens: props.httpTokens,
91
+ creditSpecification: props.creditSpecification,
81
92
  }, enableResourcePropertyConstraint && this.stack.enableResourcePropertyConstraint);
82
93
  this.resource = rosInstanceGroup;
83
94
  this.attrHostNames = rosInstanceGroup.attrHostNames;
@@ -92,4 +103,4 @@ class InstanceGroup extends ros.Resource {
92
103
  }
93
104
  }
94
105
  exports.InstanceGroup = InstanceGroup;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2Vncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluc3RhbmNlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQThDO0FBQzlDLG1EQUFtRDtBQUV0QixzR0FGcEIsZ0NBQWdCLE9BRXlCO0FBMlZsRDs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBb0QzQzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXlCLEVBQUUsbUNBQTJDLElBQUk7UUFDcEgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUNyRCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7WUFDbEQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7WUFDdkkseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtZQUMxRCwwQkFBMEIsRUFBRSxLQUFLLENBQUMsMEJBQTBCO1lBQzVELFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QiwwQkFBMEIsRUFBRSxLQUFLLENBQUMsMEJBQTBCO1lBQzVELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO1lBQzVDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsMEJBQTBCLEVBQUUsS0FBSyxDQUFD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LElBQUksQ0FBQyxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQztRQUM5RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztDQUNKO0FBdklELHNDQXVJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJvcyBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1jb3JlJztcbmltcG9ydCB7IFJvc0luc3RhbmNlR3JvdXAgfSBmcm9tICcuL2Vjcy5nZW5lcmF0ZWQnO1xuLy8gR2VuZXJhdGVkIGZyb20gdGhlIEFsaUNsb3VkIFJPUyBSZXNvdXJjZSBTcGVjaWZpY2F0aW9uXG5leHBvcnQgeyBSb3NJbnN0YW5jZUdyb3VwIGFzIEluc3RhbmNlR3JvdXBQcm9wZXJ0eSB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYEFMSVlVTjo6RUNTOjpJbnN0YW5jZUdyb3VwYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlR3JvdXBQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbWFnZUlkOiBJbWFnZSBJRCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGltYWdlSWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGluc3RhbmNlVHlwZTogRWNzIGluc3RhbmNlIHN1cHBvcnRlZCBpbnN0YW5jZSB0eXBlLCBtYWtlIHN1cmUgaXQgc2hvdWxkIGJlIGNvcnJlY3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBtYXhBbW91bnQ6IE1heCBudW1iZXIgb2YgaW5zdGFuY2VzIHRvIGNyZWF0ZSwgc2hvdWxkIGJlIGJpZ2dlciB0aGFuICdNaW5BbW91bnQnIGFuZCBzbWFsbGVyIHRoYW4gMTAwMC5cbiAgICAgKi9cbiAgICByZWFkb25seSBtYXhBbW91bnQ6IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGFsbG9jYXRlUHVibGljSXA6IFRoZSBwdWJsaWMgaXAgZm9yIGVjcyBpbnN0YW5jZSwgaWYgcHJvcGVydGllcyBpcyB0cnVlLCB3aWxsIGFsbG9jYXRlIHB1YmxpYyBpcC4gSWYgcHJvcGVydHkgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgc2V0IHRvIDAsIGl0IHdpbGwgbm90IGFzc2lnbiBwdWJsaWMgaXAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYWxsb2NhdGVQdWJsaWNJcD86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVsZWFzZVRpbWU6IEF1dG8gcmVsZWFzZSB0aW1lIGZvciBjcmVhdGVkIGluc3RhbmNlLCBGb2xsb3cgSVNPODYwMSBzdGFuZGFyZCB1c2luZyBVVEMgdGltZS4gZm9ybWF0IGlzICd5eXl5LU1NLWRkVEhIOm1tOnNzWicuIE5vdCBiaWdnZXIgdGhhbiAzIHllYXJzIGZyb20gdGhpcyBkYXkgb253YXJkc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGF1dG9SZWxlYXNlVGltZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGF1dG9SZW5ldzogV2hldGhlciByZW5ldyB0aGUgZmVlIGF1dG9tYXRpY2FsbHk/IFdoZW4gdGhlIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUHJlUGFpZCwgaXQgd2lsbCB0YWtlIGVmZmVjdC4gUmFuZ2Ugb2YgdmFsdWU6VHJ1ZTogYXV0b21hdGljIHJlbmV3YWwuRmFsc2U6IG5vIGF1dG9tYXRpYyByZW5ld2FsLiBEZWZhdWx0IHZhbHVlIGlzIEZhbHNlLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBhdXRvUmVuZXc/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXdQZXJpb2Q6IFRoZSB0aW1lIHBlcmlvZCBvZiBhdXRvIHJlbmV3LiBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuSXQgY291bGQgYmUgMSwgMiwgMywgNiwgMTIsIDI0LCAzNiwgNDgsIDYwLiBEZWZhdWx0IHZhbHVlIGlzIDEuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGF1dG9SZW5ld1BlcmlvZD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlZGljYXRlZEhvc3RJZDogd2hpY2ggZGVkaWNhdGVkIGhvc3Qgd2lsbCBiZSBkZXBsb3llZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlZGljYXRlZEhvc3RJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlbGV0aW9uUHJvdGVjdGlvbjogV2hldGhlciBhbiBpbnN0YW5jZSBjYW4gYmUgcmVsZWFzZWQgbWFudWFsbHkgdGhyb3VnaCB0aGUgY29uc29sZSBvciBBUEksIGRlbGV0aW9uIHByb3RlY3Rpb24gb25seSBzdXBwb3J0IHBvc3RQYWlkIGluc3RhbmNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVsZXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlcGxveW1lbnRTZXRJZDogRGVwbG95bWVudCBzZXQgSUQuIFRoZSBjaGFuZ2Ugb2YgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVwbG95bWVudFNldElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVzY3JpcHRpb246IERlc2NyaXB0aW9uIG9mIHRoZSBpbnN0YW5jZSwgWzIsIDI1Nl0gY2hhcmFjdGVycy4gRG8gbm90IGZpbGwgb3IgZW1wdHksIHRoZSBkZWZhdWx0IGlzIGVtcHR5LiBPbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkaXNrTWFwcGluZ3M6IERpc2sgbWFwcGluZ3MgdG8gYXR0YWNoIHRvIGluc3RhbmNlLiBNYXggc3VwcG9ydCAxNiBkaXNrcy5cbiAgICAgKiBJZiB0aGUgaW1hZ2UgY29udGFpbnMgYSBkYXRhIGRpc2ssIHlvdSBjYW4gc3BlY2lmeSBvdGhlciBwYXJhbWV0ZXJzIG9mIHRoZSBkYXRhIGRpc2sgdmlhIHRoZSBzYW1lIHZhbHVlIG9mIHBhcmFtZXRlciBcIkRldmljZVwiLiBJZiBwYXJhbWV0ZXIgXCJDYXRlZ29yeVwiIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgY2xvdWRfZWZmaWNpZW5jeSBpbnN0ZWFkIG9mIFwiQ2F0ZWdvcnlcIiBvZiBkYXRhIGRpc2sgaW4gdGhlIGltYWdlLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNrTWFwcGluZ3M/OiBBcnJheTxSb3NJbnN0YW5jZUdyb3VwLkRpc2tNYXBwaW5nc1Byb3BlcnR5IHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGVuaU1hcHBpbmdzOiBOZXR3b3JrSW50ZXJmYWNlIHRvIGF0dGFjaCB0byBpbnN0YW5jZS4gTWF4IHN1cHBvcnQgMSBFTkkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5pTWFwcGluZ3M/OiBBcnJheTxSb3NJbnN0YW5jZUdyb3VwLkVuaU1hcHBpbmdzUHJvcGVydHkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaG9zdE5hbWU6IEhvc3QgbmFtZSBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS4gYXQgbGVhc3QgMiBjaGFyYWN0ZXJzLCBhbmQgJy4nICctJyBJcyBub3QgdGhlIGZpcnN0IGFuZCBsYXN0IGNoYXJhY3RlcnMgYXMgaG9zdG5hbWUsIG5vdCBjb250aW51b3VzIHVzZS4gV2luZG93cyBwbGF0Zm9ybSBjYW4gYmUgdXAgdG8gMTUgY2hhcmFjdGVycywgYWxsb3dpbmcgbGV0dGVycyAod2l0aG91dCBsaW1pdGluZyBjYXNlKSwgbnVtYmVycyBhbmQgJy0nLCBhbmQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgbnVtYmVyIG9mIHBvaW50cywgbm90IGFsbCBpcyBkaWdpdGFsICgnLicpLk90aGVyIChMaW51eCwgZXRjLikgcGxhdGZvcm0gdXAgdG8gNjQgY2hhcmFjdGVycywgYWxsb3dpbmcgc3VwcG9ydCBudW1iZXIgbXVsdGlwbGUgcG9pbnRzIGZvciB0aGUgcGVyaW9kIGJldHdlZW4gdGhlIHBvaW50cywgZWFjaCBwZXJtaXQgbGV0dGVycyAod2l0aG91dCBsaW1pdGluZyBjYXNlKSwgbnVtYmVycyBhbmQgJy0nIGNvbXBvbmVudHMuIFxuICAgICAqIFN1cHBvcnQgdG8gdXNlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2V0IHRoZSBkaWZmZXJlbnQgaW5zdGFuY2UgbmFtZSBmb3IgZWFjaCBFQ1MgaW5zdGFuY2UuIEhvc3ROYW1lIGNvdWxkIGJlIHNwZWNpZmllZCBhcyAnbmFtZV9wcmVmaXhbYmVnaW5fbnVtYmVyLGJpdHNdbmFtZV9zdWZmaXgnLCBzdWNoIGFzICdob3N0WzEyMyw0XXRhaWwnLiBJZiB5b3UgY3JlYXRlcyAzIGluc3RhbmNlcyB3aXRoIGhvc3RuYW1lICdob3N0WzEyMyw0XXRhaWwnLCBhbGwgdGhlIGhvc3QgbmFtZXMgb2YgaW5zdGFuY2VzIGFyZSBob3N0MDEyM3RhaWwsIGhvc3QwMTI0dGFpbCwgaG9zdDAxMjV0YWlsLiBUaGUgJ25hbWVfcHJlZml4W2JlZ2luX251bWJlcixiaXRzXW5hbWVfc3VmZml4JyBzaG91bGQgZm9sbG93IHRob3NlIHJ1bGVzOiBcbiAgICAgKiAxLiAnbmFtZV9wcmVmaXgnIGlzIHJlcXVpcmVkLiBcbiAgICAgKiAyLiAnbmFtZV9zdWZmaXgnIGlzIG9wdGlvbmFsLiBcbiAgICAgKiAzLiBUaGUgbmFtZSByZWd1bGFyIGV4cHJlc3Npb24gY2FuJ3QgaW5jbHVkZSBhbnkgc3BhY2VzLiBcbiAgICAgKiA0LiBUaGUgJ2JpdHMnIG11c3QgYmUgaW4gcmFuZ2UgWzEsIDZdLiBcbiAgICAgKiA1LiBUaGUgJ2JlZ2luX251bWJlcicgbXVzdCBiZSBpbiByYW5nZSBbMCwgOTk5OTk5XS4gXG4gICAgICogNi4gWW91IGNvdWxkIG9ubHkgc3BlY2lmeSAnYmVnaW5fbnVtYmVyJy4gVGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIDcuIFlvdSBhbHNvIGNvdWxkIG9ubHkgc3BlY2lmeSB0aGUgW10gb3IgWyxdLiBUaGUgJ2JlZ2luX251bWJlcicgd2lsbCBiZSBzZXQgYXMgMCBieSBkZWZhdWx0LCB0aGUgJ2JpdHMnIHdpbGwgYmUgc2V0IGFzIDYgYnkgZGVmYXVsdC4gXG4gICAgICogOC4gSWYgdGhlIGJpdHMgb2YgJ2JlZ2luX251bWJlcicgaXMgbGVzcyB0aGFuIHRoZSAnYml0cycgeW91IHNwZWNpZmllZCwgbGlrZSBbMTIzNCwxXSwgdGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIFRoZSBob3N0IG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHJlZ3VsYXIgZXhwcmVzc2lvbiB3b3JrcyBhZnRlciByZXN0YXJ0IGluc3RhbmNlIG1hbnVhbGx5LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhvc3ROYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaHBjQ2x1c3RlcklkOiBUaGUgSFBDIGNsdXN0ZXIgSUQgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuVGhlIGNoYW5nZSBvZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBocGNDbHVzdGVySWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZUNoYXJnZVR5cGU6IEluc3RhbmNlIENoYXJnZSB0eXBlLCBhbGxvd2VkIHZhbHVlOiBQcmVwYWlkIGFuZCBQb3N0cGFpZC4gSWYgc3BlY2lmaWVkIFByZXBhaWQsIHBsZWFzZSBlbnN1cmUgeW91IGhhdmUgc3VmZmljaWVudCBiYWxhbmNlIGluIHlvdXIgYWNjb3VudC4gT3IgaW5zdGFuY2UgY3JlYXRpb24gd2lsbCBiZSBmYWlsdXJlLiBEZWZhdWx0IHZhbHVlIGlzIFBvc3RwYWlkLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbnN0YW5jZUNoYXJnZVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZU5hbWU6IERpc3BsYXkgbmFtZSBvZiB0aGUgaW5zdGFuY2UsIFsyLCAxMjhdIEVuZ2xpc2ggb3IgQ2hpbmVzZSBjaGFyYWN0ZXJzLCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IgQ2hpbmVzZSBpbiBzaXplLCBjYW4gY29udGFpbiBudW1iZXJzLCAnXycgb3IgJy4nLCAnLScuIFxuICAgICAqIFN1cHBvcnQgdG8gdXNlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2V0IHRoZSBkaWZmZXJlbnQgaW5zdGFuY2UgbmFtZSBmb3IgZWFjaCBFQ1MgaW5zdGFuY2UuIEluc3RhbmNlTmFtZSBjb3VsZCBiZSBzcGVjaWZpZWQgYXMgJ25hbWVfcHJlZml4W2JlZ2luX251bWJlcixiaXRzXW5hbWVfc3VmZml4Jywgc3VjaCBhcyAndGVzdGluc3RhbmNlWzEyMyw0XXRhaWwnLiBJZiB5b3UgY3JlYXRlcyAzIGluc3RhbmNlcyB3aXRoIHRoZSBpbnN0YW5jZSBuYW1lICd0ZXN0aW5zdGFuY2VbMTIzLDRddGFpbCcsIGFsbCB0aGUgaW5zdGFuY2VzJyBuYW1lcyBhcmUgdGVzdGluc3RhbmNlMDEyM3RhaWwsIHRlc3RpbnN0YW5jZTAxMjR0YWlsLCB0ZXN0aW5zdGFuY2UwMTI1dGFpbC4gXG4gICAgICogVGhlICduYW1lX3ByZWZpeFtiZWdpbl9udW1iZXIsYml0c11uYW1lX3N1ZmZpeCcgc2hvdWxkIGZvbGxvdyB0aG9zZSBydWxlczogXG4gICAgICogMS4gJ25hbWVfcHJlZml4JyBpcyByZXF1aXJlZC4gXG4gICAgICogMi4gJ25hbWVfc3VmZml4JyBpcyBvcHRpb25hbC4gXG4gICAgICogMy4gVGhlIG5hbWUgcmVndWxhciBleHByZXNzaW9uIGNhbid0IGluY2x1ZGUgYW55IHNwYWNlcy4gXG4gICAgICogNC4gVGhlICdiaXRzJyBtdXN0IGJlIGluIHJhbmdlIFsxLCA2XS4gXG4gICAgICogNS4gVGhlICdiZWdpbl9udW1iZXInIG11c3QgYmUgaW4gcmFuZ2UgWzAsIDk5OTk5OV0uIFxuICAgICAqIDYuIFlvdSBjb3VsZCBvbmx5IHNwZWNpZnkgJ2JlZ2luX251bWJlcicuIFRoZSAnYml0cycgd2lsbCBiZSBzZXQgYXMgNiBieSBkZWZhdWx0LiBcbiAgICAgKiA3LiBZb3UgYWxzbyBjb3VsZCBvbmx5IHNwZWNpZnkgdGhlIFtdIG9yIFssXS4gVGhlICdiZWdpbl9udW1iZXInIHdpbGwgYmUgc2V0IGFzIDAgYnkgZGVmYXVsdCwgdGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIDguIElmIHRoZSBiaXRzIG9mICdiZWdpbl9udW1iZXInIGlzIGxlc3MgdGhhbiB0aGUgJ2JpdHMnIHlvdSBzcGVjaWZpZWQsIGxpa2UgWzEyMzQsMV0sIHRoZSAnYml0cycgd2lsbCBiZSBzZXQgYXMgNiBieSBkZWZhdWx0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGludGVybmV0Q2hhcmdlVHlwZTogSW5zdGFuY2UgaW50ZXJuZXQgYWNjZXNzIGNoYXJnZSB0eXBlLlN1cHBvcnQgJ1BheUJ5QmFuZHdpZHRoJyBhbmQgJ1BheUJ5VHJhZmZpYycgb25seS4gRGVmYXVsdCBpcyBQYXlCeVRyYWZmaWNcbiAgICAgKi9cbiAgICByZWFkb25seSBpbnRlcm5ldENoYXJnZVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnRlcm5ldE1heEJhbmR3aWR0aE91dDogU2V0IGludGVybmV0IG91dHB1dCBiYW5kd2lkdGggb2YgaW5zdGFuY2UuIFVuaXQgaXMgTWJwcyhNZWdhIGJpdCBwZXIgc2Vjb25kKS4gUmFuZ2UgaXMgWzAsMjAwXS4gRGVmYXVsdCBpcyAxLldoaWxlIHRoZSBwcm9wZXJ0eSBpcyBub3QgMCwgcHVibGljIGlwIHdpbGwgYmUgYXNzaWduZWQgZm9yIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0TWF4QmFuZHdpZHRoT3V0PzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW9PcHRpbWl6ZWQ6IFRoZSAnb3B0aW1pemVkJyBpbnN0YW5jZSBjYW4gcHJvdmlkZSBiZXR0ZXIgSU8gcGVyZm9ybWFuY2UuIFN1cHBvcnQgJ25vbmUnIGFuZCAnb3B0aW1pemVkJyBvbmx5LCBkZWZhdWx0IGlzICdvcHRpbWl6ZWQnLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlvT3B0aW1pemVkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaXB2NkFkZHJlc3NDb3VudDogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcmFuZG9tbHkgZ2VuZXJhdGVkIElQdjYgYWRkcmVzc2VzIGZvciB0aGUgZWxhc3RpYyBOSUMuXG4gICAgICogTm90ZSBZb3UgY2Fubm90IHNwZWNpZnkgdGhlIHBhcmFtZXRlcnMgSXB2NkFkZHJlc3NlcyBhbmQgSXB2NkFkZHJlc3NDb3VudCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgICAqIFRoZSBjaGFuZ2Ugb2YgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXB2NkFkZHJlc3NDb3VudD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGlwdjZBZGRyZXNzZXM6IFNwZWNpZnkgb25lIG9yIG1vcmUgSVB2NiBhZGRyZXNzZXMgZm9yIHRoZSBlbGFzdGljIE5JQy4gQ3VycmVudGx5LCB0aGUgbWF4aW11bSBsaXN0IHNpemUgaXMgMS4gRXhhbXBsZSB2YWx1ZTogMjAwMTpkYjg6MTIzNDoxYTAwOjoqKiogLlxuICAgICAqIE5vdGUgWW91IGNhbm5vdCBzcGVjaWZ5IHRoZSBwYXJhbWV0ZXJzIElwdjZBZGRyZXNzZXMgYW5kIElwdjZBZGRyZXNzQ291bnQgYXQgdGhlIHNhbWUgdGltZS5cbiAgICAgKiBUaGUgY2hhbmdlIG9mIHRoZSBwcm9wZXJ0eSBkb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlwdjZBZGRyZXNzZXM/OiBBcnJheTxhbnkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkga2V5UGFpck5hbWU6IFNTSCBrZXkgcGFpciBuYW1lLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlQYWlyTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGxhdW5jaFRlbXBsYXRlSWQ6IElEIG9mIGxhdW5jaCB0ZW1wbGF0ZS4gTGF1bmNoIHRlbXBsYXRlIGlkIG9yIG5hbWUgbXVzdCBiZSBzcGVjaWZpZWQgdG8gdXNlIGxhdW5jaCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBsYXVuY2hUZW1wbGF0ZU5hbWU6IE5hbWUgb2YgbGF1bmNoIHRlbXBsYXRlLiBMYXVuY2ggdGVtcGxhdGUgaWQgb3IgbmFtZSBtdXN0IGJlIHNwZWNpZmllZCB0byB1c2UgbGF1bmNoIHRlbXBsYXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbGF1bmNoVGVtcGxhdGVWZXJzaW9uOiBWZXJzaW9uIG9mIGxhdW5jaCB0ZW1wbGF0ZS4gRGVmYXVsdCB2ZXJzaW9uIGlzIHVzZWQgaWYgdmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlVmVyc2lvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IG5ldHdvcmtUeXBlOiBJbnN0YW5jZSBuZXR3b3JrIHR5cGUuIFN1cHBvcnQgJ3ZwYycgYW5kICdjbGFzc2ljJywgZm9yIGNvbXBhdGlibGUgcmVhc29uLCBkZWZhdWx0IGlzICdjbGFzc2ljJy4gSWYgdnN3aXRjaCBpZCBhbmQgdnBjIGlkIGlzIHNwZWNpZmllZCwgdGhlIHByb3BlcnR5IHdpbGwgYmUgZm9yY2VkIHRvIGJlIHNldCB0byAndnBjJ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IG5ldHdvcmtUeXBlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGFzc3dvcmQ6IFBhc3N3b3JkIG9mIGNyZWF0ZWQgZWNzIGluc3RhbmNlLiBNdXN0IGNvbnRhaW4gYXQgbGVhc3QgMyB0eXBlcyBvZiBzcGVjaWFsIGNoYXJhY3RlciwgbG93ZXIgY2hhcmFjdGVyLCB1cHBlciBjaGFyYWN0ZXIsIG51bWJlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXNzd29yZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHBhc3N3b3JkSW5oZXJpdDogU3BlY2lmaWVzIHdoZXRoZXIgdG8gdXNlIHRoZSBwYXNzd29yZCBwcmVzZXQgaW4gdGhlIGltYWdlLiBUbyB1c2UgdGhlIFBhc3N3b3JkSW5oZXJpdCBwYXJhbWV0ZXIsIHRoZSBQYXNzd29yZCBwYXJhbWV0ZXIgbXVzdCBiZSBlbXB0eSBhbmQgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhlIHNlbGVjdGVkIGltYWdlIGhhcyBhIHBhc3N3b3JkIGNvbmZpZ3VyZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGFzc3dvcmRJbmhlcml0PzogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHBlcmlvZDogUHJlcGFpZCB0aW1lIHBlcmlvZC4gVW5pdCBpcyBtb250aCwgaXQgY291bGQgYmUgZnJvbSAxIHRvIDkgb3IgMTIsIDI0LCAzNiwgNDgsIDYwLiBEZWZhdWx0IHZhbHVlIGlzIDEuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBlcmlvZD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHBlcmlvZFVuaXQ6IFVuaXQgb2YgcHJlcGFpZCB0aW1lIHBlcmlvZCwgaXQgY291bGQgYmUgV2Vlay9Nb250aC9ZZWFyLiBEZWZhdWx0IHZhbHVlIGlzIE1vbnRoLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwZXJpb2RVbml0Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcHJpdmF0ZUlwQWRkcmVzczogUHJpdmF0ZSBJUCBmb3IgdGhlIGluc3RhbmNlIGNyZWF0ZWQuIE9ubHkgd29ya3MgZm9yIFZQQyBpbnN0YW5jZSBhbmQgY2Fubm90IGR1cGxpY2F0ZWQgd2l0aCBleGlzdGluZyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcml2YXRlSXBBZGRyZXNzPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcmFtUm9sZU5hbWU6IEluc3RhbmNlIFJBTSByb2xlIG5hbWUuIFRoZSBuYW1lIGlzIHByb3ZpZGVkIGFuZCBtYWludGFpbmVkIGJ5IFJlc291cmNlIEFjY2VzcyBNYW5hZ2VtZW50IChSQU0pIGFuZCBjYW4gYmUgcXVlcmllZCB1c2luZyBMaXN0Um9sZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgUkFNIEFQSSBDcmVhdGVSb2xlIGFuZCBMaXN0Um9sZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmFtUm9sZU5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByZXNvdXJjZUdyb3VwSWQ6IFJlc291cmNlIGdyb3VwIGlkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5RW5oYW5jZW1lbnRTdHJhdGVneTpcbiAgICAgKi9cbiAgICByZWFkb25seSBzZWN1cml0eUVuaGFuY2VtZW50U3RyYXRlZ3k/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWN1cml0eUdyb3VwSWQ6IFNlY3VyaXR5IGdyb3VwIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuIEZvciBjbGFzc2ljIGluc3RhbmNlIG5lZWQgdGhlIHNlY3VyaXR5IGdyb3VwIG5vdCBiZWxvbmcgdG8gVlBDLCBmb3IgVlBDIGluc3RhbmNlLCBwbGVhc2UgbWFrZSBzdXJlIHRoZSBzZWN1cml0eSBncm91cCBiZWxvbmcgdG8gc3BlY2lmaWVkIFZQQy5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWN1cml0eUdyb3VwSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWN1cml0eUdyb3VwSWRzOiBUaGUgSURzIG9mIHNlY3VyaXR5IGdyb3VwcyBOIHRvIHdoaWNoIHRoZSBpbnN0YW5jZSBiZWxvbmdzLiBUaGUgdmFsaWQgdmFsdWVzIG9mIE4gYXJlIGJhc2VkIG9uIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWN1cml0eSBncm91cHMgdG8gd2hpY2ggYW4gaW5zdGFuY2UgY2FuIGJlbG9uZy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBTZWN1cml0eSBncm91cCBsaW1pdHMuTm90ZTogWW91IGNhbm5vdCBzcGVjaWZ5IGJvdGggU2VjdXJpdHlHcm91cElkIGFuZCBTZWN1cml0eUdyb3VwSWRzIGF0IHRoZSBzYW1lIHRpbWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkcz86IEFycmF5PGFueSB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzcG90RHVyYXRpb246IFRoZSBwcm90ZWN0aW9uIHBlcmlvZCBvZiB0aGUgcHJlZW1wdGlibGUgaW5zdGFuY2UuIFVuaXQ6IGhvdXJzLiBWYWxpZCB2YWx1ZXM6IDAsIDEsIDIsIDMsIDQsIDUsIGFuZCA2LlxuICAgICAqIFByb3RlY3Rpb24gcGVyaW9kcyBvZiAyLCAzLCA0LCA1LCBhbmQgNiBob3VycyBhcmUgaW4gaW52aXRhdGlvbmFsIHByZXZpZXcuIElmIHlvdSB3YW50IHRvIHNldCB0aGlzIHBhcmFtZXRlciB0byBvbmUgb2YgdGhlc2UgdmFsdWVzLCBzdWJtaXQgYSB0aWNrZXQuXG4gICAgICogSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIDAsIG5vIHByb3RlY3Rpb24gcGVyaW9kIGlzIGNvbmZpZ3VyZWQgZm9yIHRoZSBwcmVlbXB0aWJsZSBpbnN0YW5jZS5cbiAgICAgKiBEZWZhdWx0IHZhbHVlOiAxLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwb3REdXJhdGlvbj86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3RJbnRlcnJ1cHRpb25CZWhhdmlvcjogVGhlIGludGVycnVwdGlvbiBtb2RlIG9mIHRoZSBwcmVlbXB0aWJsZSBpbnN0YW5jZS4gRGVmYXVsdCB2YWx1ZTogVGVybWluYXRlLiBTZXQgdGhlIHZhbHVlIHRvIFRlcm1pbmF0ZSwgd2hpY2ggc3BlY2lmaWVzIHRvIHJlbGVhc2UgdGhlIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwb3RJbnRlcnJ1cHRpb25CZWhhdmlvcj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3RQcmljZUxpbWl0OiBUaGUgaG91cmx5IHByaWNlIHRocmVzaG9sZCBvZiBhIGluc3RhbmNlLCBhbmQgaXQgdGFrZXMgZWZmZWN0IG9ubHkgd2hlbiBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFBvc3RQYWlkLiBUaHJlZSBkZWNpbWFscyBpcyBhbGxvd2VkIGF0IG1vc3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdFByaWNlTGltaXQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzcG90U3RyYXRlZ3k6IFRoZSBzcG90IHN0cmF0ZWd5IG9mIGEgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZSwgYW5kIGl0IHRha2VzIGVmZmVjdCBvbmx5IHdoZW4gcGFyYW1ldGVyIEluc3RhbmNlQ2hhcmdlVHlwZSBpcyBQb3N0UGFpZC4gVmFsdWUgcmFuZ2U6IFwiTm9TcG90OiBBIHJlZ3VsYXIgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZVwiLCBcIlNwb3RXaXRoUHJpY2VMaW1pdDogQSBwcmljZSB0aHJlc2hvbGQgZm9yIGEgc3BvdCBpbnN0YW5jZSwgXCJcIlNwb3RBc1ByaWNlR286IEEgcHJpY2UgdGhhdCBpcyBiYXNlZCBvbiB0aGUgaGlnaGVzdCBQYXktQXMtWW91LUdvIGluc3RhbmNlLiBcIkRlZmF1bHQgdmFsdWU6IE5vU3BvdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90U3RyYXRlZ3k/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrQXV0b1NuYXBzaG90UG9saWN5SWQ6IEF1dG8gc25hcHNob3QgcG9saWN5IElELlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tBdXRvU25hcHNob3RQb2xpY3lJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQ6IFdoZXRoZXIgZW5hYmxlIGJ1cnN0aW5nLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQ/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0NhdGVnb3J5OiBDYXRlZ29yeSBvZiBzeXN0ZW0gZGlzay4gRGVmYXVsdCBpcyBjbG91ZF9lZmZpY2llbmN5LiBzdXBwb3J0IGNsb3VkfGNsb3VkX2VmZmljaWVuY3l8Y2xvdWRfc3NkfGNsb3VkX2Vzc2R8ZXBoZW1lcmFsX3NzZHxjbG91ZF9hdXRvfGNsb3VkX2Vzc2RfZW50cnkuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tDYXRlZ29yeT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tEZXNjcmlwdGlvbjogRGVzY3JpcHRpb24gb2YgY3JlYXRlZCBzeXN0ZW0gZGlzay5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0Rlc2NyaXB0aW9uPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0Rpc2tOYW1lOiBOYW1lIG9mIGNyZWF0ZWQgc3lzdGVtIGRpc2suT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tEaXNrTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tFbmNyeXB0QWxnb3JpdGhtOiBUaGUgYWxnb3JpdGhtIHRvIHVzZSB0byBlbmNyeXB0IHRoZSBzeXN0ZW0gZGlzay4gVmFsaWQgdmFsdWVzOlxuICAgICAqIC0gYXNlLTI1NlxuICAgICAqIC0gc200LTEyOFxuICAgICAqIERlZmF1bHQgdmFsdWU6IGFzZS0yNTYuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0VuY3J5cHRBbGdvcml0aG0/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrRW5jcnlwdGVkOiBTcGVjaWZpZXMgd2hldGhlciB0byBlbmNyeXB0IHRoZSBzeXN0ZW0gZGlzay4gVmFsaWQgdmFsdWVzOlxuICAgICAqIC0gdHJ1ZTogZW5jcnlwdHMgdGhlIHN5c3RlbSBkaXNrLlxuICAgICAqIC0gZmFsc2U6IGRvZXMgbm90IGVuY3J5cHQgdGhlIHN5c3RlbSBkaXNrLlxuICAgICAqIERlZmF1bHQgdmFsdWU6IGZhbHNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tFbmNyeXB0ZWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrS21zS2V5SWQ6IFRoZSBJRCBvZiB0aGUgS01TIGtleSB0byB1c2UgZm9yIHRoZSBzeXN0ZW0gZGlzay5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrS21zS2V5SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrUGVyZm9ybWFuY2VMZXZlbDogVGhlIHBlcmZvcm1hbmNlIGxldmVsIG9mIHRoZSBlbmhhbmNlZCBTU0QgdXNlZCBhcyB0aGUgc3lzdGVtIGRpc2suRGVmYXVsdCB2YWx1ZTogUEwxLiBWYWxpZCB2YWx1ZXM6UEwwOiBBIHNpbmdsZSBlbmhhbmNlZCBTU0QgZGVsaXZlcnMgdXAgdG8gMTAsMDAwIHJhbmRvbSByZWFkL3dyaXRlIElPUFMuUEwxOiBBIHNpbmdsZSBlbmhhbmNlZCBTU0QgZGVsaXZlcnMgdXAgdG8gNTAsMDAwIHJhbmRvbSByZWFkL3dyaXRlIElPUFMuUEwyOiBBIHNpbmdsZSBlbmhhbmNlZCBTU0QgZGVsaXZlcnMgdXAgdG8gMTAwLDAwMCByYW5kb20gcmVhZC93cml0ZSBJT1BTLlBMMzogQSBzaW5nbGUgZW5oYW5jZWQgU1NEIGRlbGl2ZXJzIHVwIHRvIDEsMDAwLDAwMCByYW5kb20gcmVhZC93cml0ZSBJT1BTLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tQZXJmb3JtYW5jZUxldmVsPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wczogUHJvdmlzaW9uaW5nIElPUFMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wcz86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tTaXplOiBEaXNrIHNpemUgb2YgdGhlIHN5c3RlbSBkaXNrLCByYW5nZSBmcm9tIDIwIHRvIDUwMCBHQi4gSWYgeW91IHNwZWNpZnkgd2l0aCB5b3VyIG93biBpbWFnZSwgbWFrZSBzdXJlIHRoZSBzeXN0ZW0gZGlzayBzaXplIGJpZ2dlciB0aGFuIGltYWdlIHNpemUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza1NpemU/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrU3RvcmFnZUNsdXN0ZXJJZDogVGhlIElEIG9mIHRoZSBkZWRpY2F0ZWQgYmxvY2sgc3RvcmFnZSBjbHVzdGVyLiBJZiB5b3Ugd2FudCB0byB1c2UgZGlza3MgaW4gYSBkZWRpY2F0ZWQgYmxvY2sgc3RvcmFnZSBjbHVzdGVyIGFzIHN5c3RlbSBkaXNrcyB3aGVuIHlvdSBjcmVhdGUgaW5zdGFuY2VzLCB5b3UgbXVzdCBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tTdG9yYWdlQ2x1c3RlcklkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdGFnczogVGFncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDIwIHRhZ3MgdG8gYWRkIGR1cmluZyBjcmVhdGUgaW5zdGFuY2UuIEVhY2ggdGFnIHdpdGggdHdvIHByb3BlcnRpZXMgS2V5IGFuZCBWYWx1ZSwgYW5kIEtleSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB0YWdzPzogUm9zSW5zdGFuY2VHcm91cC5UYWdzUHJvcGVydHlbXTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHVwZGF0ZVBvbGljeTogU3BlY2lmeSB0aGUgcG9saWN5IGF0IHVwZGF0ZS4gXG4gICAgICogVGhlIHZhbHVlIGNhbiBiZSAnRm9yTmV3SW5zdGFuY2VzJyBvciAnRm9yQWxsSW5zdGFuY2VzJy5cbiAgICAgKiBJZiBVcGRhdGVQb2xpY3kgaXMgJ0ZvckFsbEluc3RhbmNlJywgVGhlIHVwZGF0YWJsZSBwYXJhbWV0ZXJzIGFyZSBJbnN0YW5jZVR5cGUsIEltYWdlSWQsIFN5c3RlbURpc2tTaXplLCBTeXN0ZW1EaXNrQ2F0ZWdvcnksIFBhc3N3b3JkLCBVc2VyRGF0YSxJbnRlcm5ldENoYXJnZVR5cGUsIEludGVybmV0TWF4QmFuZHdpZHRoT3V0LCBJbnRlcm5ldE1heEJhbmR3aWR0aEluLlxuICAgICAqIFRoZSBkZWZhdWx0IGlzICdGb3JOZXdJbnN0YW5jZXMnXG4gICAgICovXG4gICAgcmVhZG9ubHkgdXBkYXRlUG9saWN5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdXNlckRhdGE6IFVzZXIgZGF0YSB0byBwYXNzIHRvIGluc3RhbmNlLiBbMSwgMTZLQl0gY2hhcmFjdGVycy5Vc2VyIGRhdGEgc2hvdWxkIG5vdCBiZSBiYXNlNjQgZW5jb2RlZC4gSWYgeW91IHdhbnQgdG8gcGFzcyBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgdG8gdGhlIHByb3BlcnR5LCB1c2UgZnVuY3Rpb24gRm46OkJhc2U2NERlY29kZSB0byBkZWNvZGUgdGhlIGJhc2U2NCBzdHJpbmcgZmlyc3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdXNlckRhdGE/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB2cGNJZDogVGhlIFZQQyBpZCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdlN3aXRjaElkOiBUaGUgdlN3aXRjaCBJZCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHZTd2l0Y2hJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHpvbmVJZDogVGhlIElEIG9mIHRoZSB6b25lIHRvIHdoaWNoIHRoZSBpbnN0YW5jZSBiZWxvbmdzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgXG4gICAgICogY2FsbCB0aGUgRGVzY3JpYmVab25lcyBvcGVyYXRpb24gdG8gcXVlcnkgdGhlIG1vc3QgcmVjZW50IHpvbmUgbGlzdC4gXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggbWVhbnMgcmFuZG9tIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSB6b25lSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB6b25lSWRzOiBab25lIGlkcyBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHpvbmVJZHM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xufVxuXG4vKipcbiAqIEEgUk9TIHJlc291cmNlIHR5cGU6ICBgQUxJWVVOOjpFQ1M6Okluc3RhbmNlR3JvdXBgXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZUdyb3VwIGV4dGVuZHMgcm9zLlJlc291cmNlIHtcblxuICAgIC8qKlxuICAgICAqIEEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3MgZnJvbSBhbiBvYmplY3RcbiAgICAgKiBjb250YWluaW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHRoaXMgUk9TIHJlc291cmNlLCB3aGljaCB3aWxsIGJlIGFzc2lnbmVkIHRvIFJPUyByZXNvdXJjZS5cbiAgICAgKi9cblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBIb3N0TmFtZXM6IEhvc3QgbmFtZXMgb2YgY3JlYXRlZCBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJIb3N0TmFtZXM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbm5lcklwczogSW5uZXIgSVAgYWRkcmVzcyBsaXN0IG9mIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2VzLiBPbmx5IGZvciBjbGFzc2ljYWwgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySW5uZXJJcHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbnN0YW5jZUlkczogVGhlIGluc3RhbmNlIGlkIGxpc3Qgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VzXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJbnN0YW5jZUlkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIElwdjZBZGRyZXNzSWRzOiBJUHY2IGFkZHJlc3MgSURzIGxpc3Qgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VzLiBOb3RlOiBUaGUgcmV0dXJuIHR5cGUgaXMgYSB0d28tdGllciBsaXN0LklmIHRoZSBpbnN0YW5jZSBkb2VzIG5vdCBoYXZlIGFueSBJUHY2IGFkZHJlc3MsIHRoZSBlbGVtZW50IGF0IHRoZSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZSBsaXN0IGlzIG51bGwuIElmIGFsbCBpbnN0YW5jZXMgZG9lcyBub3QgaGF2ZSBhbnkgSVB2IGFkZHJlc3MsIHdpbGwgcmV0dXJuIG51bGwuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJcHY2QWRkcmVzc0lkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIElwdjZBZGRyZXNzZXM6IElQdjYgYWRkcmVzc2VzIGxpc3Qgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VzLiBOb3RlOiBUaGUgcmV0dXJuIHR5cGUgaXMgYSB0d28tdGllciBsaXN0LiBJZiB0aGUgaW5zdGFuY2UgZG9lcyBub3QgaGF2ZSBhbnkgSVB2NiBhZGRyZXNzLCB0aGUgZWxlbWVudCBhdCB0aGUgY29ycmVzcG9uZGluZyBwb3NpdGlvbiBpbiB0aGUgbGlzdCBpcyBudWxsLiBJZiBhbGwgaW5zdGFuY2VzIGRvZXMgbm90IGhhdmUgYW55IElQdiBhZGRyZXNzLCB3aWxsIHJldHVybiBudWxsLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySXB2NkFkZHJlc3Nlczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIE9yZGVySWQ6IFRoZSBvcmRlciBpZCBsaXN0IG9mIGNyZWF0ZWQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJPcmRlcklkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgUHJpdmF0ZUlwczogUHJpdmF0ZSBJUCBhZGRyZXNzIGxpc3Qgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VzLiBPbmx5IGZvciBWUEMgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJQcml2YXRlSXBzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgUHVibGljSXBzOiBQdWJsaWMgSVAgYWRkcmVzcyBsaXN0IG9mIGNyZWF0ZWQgZWNzIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clB1YmxpY0lwczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFpvbmVJZHM6IFpvbmUgaWQgb2YgY3JlYXRlZCBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJab25lSWRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgYEFMSVlVTjo6RUNTOjpJbnN0YW5jZUdyb3VwYC5cbiAgICAgKlxuICAgICAqIFBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogUGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAgICogUGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnN0YW5jZUdyb3VwUHJvcHMsIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OmJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgY29uc3Qgcm9zSW5zdGFuY2VHcm91cCA9IG5ldyBSb3NJbnN0YW5jZUdyb3VwKHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgZGVkaWNhdGVkSG9zdElkOiBwcm9wcy5kZWRpY2F0ZWRIb3N0SWQsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHByb3BzLnJlc291cmNlR3JvdXBJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEZXNjcmlwdGlvbjogcHJvcHMuc3lzdGVtRGlza0Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW5zdGFuY2VDaGFyZ2VUeXBlOiBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IG51bGwgPyAnUG9zdFBhaWQnIDogcHJvcHMuaW5zdGFuY2VDaGFyZ2VUeXBlLFxuICAgICAgICAgICAgc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wczogcHJvcHMuc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wcyxcbiAgICAgICAgICAgIHN5c3RlbURpc2tFbmNyeXB0QWxnb3JpdGhtOiBwcm9wcy5zeXN0ZW1EaXNrRW5jcnlwdEFsZ29yaXRobSxcbiAgICAgICAgICAgIHJhbVJvbGVOYW1lOiBwcm9wcy5yYW1Sb2xlTmFtZSxcbiAgICAgICAgICAgIHN5c3RlbURpc2tQZXJmb3JtYW5jZUxldmVsOiBwcm9wcy5zeXN0ZW1EaXNrUGVyZm9ybWFuY2VMZXZlbCxcbiAgICAgICAgICAgIGltYWdlSWQ6IHByb3BzLmltYWdlSWQsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrRGlza05hbWU6IHByb3BzLnN5c3RlbURpc2tEaXNrTmFtZSxcbiAgICAgICAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICAgICAgICBob3N0TmFtZTogcHJvcHMuaG9zdE5hbWUsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrU3RvcmFnZUNsdXN0ZXJJZDogcHJvcHMuc3lzdGVtRGlza1N0b3JhZ2VDbHVzdGVySWQsXG4gICAgICAgICAgICBsYXVuY2hUZW1wbGF0ZU5hbWU6IHByb3BzLmxhdW5jaFRlbXBsYXRlTmFtZSxcbiAgICAgICAgICAgIHVwZGF0ZVBvbGljeTogcHJvcHMudXBkYXRlUG9saWN5ID09PSB1bmRlZmluZWQgfHwgcHJvcHMudXBkYXRlUG9saWN5ID09PSBudWxsID8gJ0Zvck5ld0luc3RhbmNlcycgOiBwcm9wcy51cGRhdGVQb2xpY3ksXG4gICAgICAgICAgICBzeXN0ZW1EaXNrS21zS2V5SWQ6IHByb3BzLnN5c3RlbURpc2tLbXNLZXlJZCxcbiAgICAgICAgICAgIHZTd2l0Y2hJZDogcHJvcHMudlN3aXRjaElkLFxuICAgICAgICAgICAgcGVyaW9kOiBwcm9wcy5wZXJpb2QgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5wZXJpb2QgPT09IG51bGwgPyAxIDogcHJvcHMucGVyaW9kLFxuICAgICAgICAgICAgbGF1bmNoVGVtcGxhdGVJZDogcHJvcHMubGF1bmNoVGVtcGxhdGVJZCxcbiAgICAgICAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogcHJvcHMuZGVsZXRpb25Qcm90ZWN0aW9uLFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHMuc2VjdXJpdHlHcm91cElkcyxcbiAgICAgICAgICAgIGludGVybmV0Q2hhcmdlVHlwZTogcHJvcHMuaW50ZXJuZXRDaGFyZ2VUeXBlID09PSB1bmRlZmluZWQgfHwgcHJvcHMuaW50ZXJuZXRDaGFyZ2VUeXBlID09PSBudWxsID8gJ1BheUJ5VHJhZmZpYycgOiBwcm9wcy5pbnRlcm5ldENoYXJnZVR5cGUsXG4gICAgICAgICAgICBpbnN0YW5jZU5hbWU6IHByb3BzLmluc3RhbmNlTmFtZSxcbiAgICAgICAgICAgIHNwb3RJbnRlcnJ1cHRpb25CZWhhdmlvcjogcHJvcHMuc3BvdEludGVycnVwdGlvbkJlaGF2aW9yLFxuICAgICAgICAgICAgZGVwbG95bWVudFNldElkOiBwcm9wcy5kZXBsb3ltZW50U2V0SWQsXG4gICAgICAgICAgICBpbnRlcm5ldE1heEJhbmR3aWR0aE91dDogcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aE91dCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aE91dCxcbiAgICAgICAgICAgIHZwY0lkOiBwcm9wcy52cGNJZCxcbiAgICAgICAgICAgIGxhdW5jaFRlbXBsYXRlVmVyc2lvbjogcHJvcHMubGF1bmNoVGVtcGxhdGVWZXJzaW9uLFxuICAgICAgICAgICAgc2VjdXJpdHlFbmhhbmNlbWVudFN0cmF0ZWd5OiBwcm9wcy5zZWN1cml0eUVuaGFuY2VtZW50U3RyYXRlZ3ksXG4gICAgICAgICAgICBhdXRvUmVsZWFzZVRpbWU6IHByb3BzLmF1dG9SZWxlYXNlVGltZSxcbiAgICAgICAgICAgIHBlcmlvZFVuaXQ6IHByb3BzLnBlcmlvZFVuaXQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5wZXJpb2RVbml0ID09PSBudWxsID8gJ01vbnRoJyA6IHByb3BzLnBlcmlvZFVuaXQsXG4gICAgICAgICAgICBwcml2YXRlSXBBZGRyZXNzOiBwcm9wcy5wcml2YXRlSXBBZGRyZXNzLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlza01hcHBpbmdzOiBwcm9wcy5kaXNrTWFwcGluZ3MsXG4gICAgICAgICAgICB1c2VyRGF0YTogcHJvcHMudXNlckRhdGEsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrU2l6ZTogcHJvcHMuc3lzdGVtRGlza1NpemUsXG4gICAgICAgICAgICBhdXRvUmVuZXc6IHByb3BzLmF1dG9SZW5ldyA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmF1dG9SZW5ldyA9PT0gbnVsbCA/ICdGYWxzZScgOiBwcm9wcy5hdXRvUmVuZXcsXG4gICAgICAgICAgICBzcG90RHVyYXRpb246IHByb3BzLnNwb3REdXJhdGlvbixcbiAgICAgICAgICAgIGlwdjZBZGRyZXNzZXM6IHByb3BzLmlwdjZBZGRyZXNzZXMsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrRW5jcnlwdGVkOiBwcm9wcy5zeXN0ZW1EaXNrRW5jcnlwdGVkLFxuICAgICAgICAgICAgbWF4QW1vdW50OiBwcm9wcy5tYXhBbW91bnQsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrQXV0b1NuYXBzaG90UG9saWN5SWQ6IHByb3BzLnN5c3RlbURpc2tBdXRvU25hcHNob3RQb2xpY3lJZCxcbiAgICAgICAgICAgIG5ldHdvcmtUeXBlOiBwcm9wcy5uZXR3b3JrVHlwZSxcbiAgICAgICAgICAgIGlwdjZBZGRyZXNzQ291bnQ6IHByb3BzLmlwdjZBZGRyZXNzQ291bnQsXG4gICAgICAgICAgICBzcG90UHJpY2VMaW1pdDogcHJvcHMuc3BvdFByaWNlTGltaXQsXG4gICAgICAgICAgICB6b25lSWRzOiBwcm9wcy56b25lSWRzLFxuICAgICAgICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGUsXG4gICAgICAgICAgICBhbGxvY2F0ZVB1YmxpY0lwOiBwcm9wcy5hbGxvY2F0ZVB1YmxpY0lwID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYWxsb2NhdGVQdWJsaWNJcCA9PT0gbnVsbCA/IHRydWUgOiBwcm9wcy5hbGxvY2F0ZVB1YmxpY0lwLFxuICAgICAgICAgICAgc3BvdFN0cmF0ZWd5OiBwcm9wcy5zcG90U3RyYXRlZ3ksXG4gICAgICAgICAgICBwYXNzd29yZEluaGVyaXQ6IHByb3BzLnBhc3N3b3JkSW5oZXJpdCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBwcm9wcy5wYXNzd29yZCxcbiAgICAgICAgICAgIGF1dG9SZW5ld1BlcmlvZDogcHJvcHMuYXV0b1JlbmV3UGVyaW9kID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYXV0b1JlbmV3UGVyaW9kID09PSBudWxsID8gMSA6IHByb3BzLmF1dG9SZW5ld1BlcmlvZCxcbiAgICAgICAgICAgIGtleVBhaXJOYW1lOiBwcm9wcy5rZXlQYWlyTmFtZSxcbiAgICAgICAgICAgIGlvT3B0aW1pemVkOiBwcm9wcy5pb09wdGltaXplZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmlvT3B0aW1pemVkID09PSBudWxsID8gJ29wdGltaXplZCcgOiBwcm9wcy5pb09wdGltaXplZCxcbiAgICAgICAgICAgIHpvbmVJZDogcHJvcHMuem9uZUlkLFxuICAgICAgICAgICAgaHBjQ2x1c3RlcklkOiBwcm9wcy5ocGNDbHVzdGVySWQsXG4gICAgICAgICAgICBzZWN1cml0eUdyb3VwSWQ6IHByb3BzLnNlY3VyaXR5R3JvdXBJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tDYXRlZ29yeTogcHJvcHMuc3lzdGVtRGlza0NhdGVnb3J5ID09PSB1bmRlZmluZWQgfHwgcHJvcHMuc3lzdGVtRGlza0NhdGVnb3J5ID09PSBudWxsID8gJ2Nsb3VkX2VmZmljaWVuY3knIDogcHJvcHMuc3lzdGVtRGlza0NhdGVnb3J5LFxuICAgICAgICAgICAgZW5pTWFwcGluZ3M6IHByb3BzLmVuaU1hcHBpbmdzLFxuICAgICAgICAgICAgc3lzdGVtRGlza0J1cnN0aW5nRW5hYmxlZDogcHJvcHMuc3lzdGVtRGlza0J1cnN0aW5nRW5hYmxlZCxcbiAgICAgICAgfSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgJiYgdGhpcy5zdGFjay5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgICAgIHRoaXMucmVzb3VyY2UgPSByb3NJbnN0YW5jZUdyb3VwO1xuICAgICAgICB0aGlzLmF0dHJIb3N0TmFtZXMgPSByb3NJbnN0YW5jZUdyb3VwLmF0dHJIb3N0TmFtZXM7XG4gICAgICAgIHRoaXMuYXR0cklubmVySXBzID0gcm9zSW5zdGFuY2VHcm91cC5hdHRySW5uZXJJcHM7XG4gICAgICAgIHRoaXMuYXR0ckluc3RhbmNlSWRzID0gcm9zSW5zdGFuY2VHcm91cC5hdHRySW5zdGFuY2VJZHM7XG4gICAgICAgIHRoaXMuYXR0cklwdjZBZGRyZXNzSWRzID0gcm9zSW5zdGFuY2VHcm91cC5hdHRySXB2NkFkZHJlc3NJZHM7XG4gICAgICAgIHRoaXMuYXR0cklwdjZBZGRyZXNzZXMgPSByb3NJbnN0YW5jZUdyb3VwLmF0dHJJcHY2QWRkcmVzc2VzO1xuICAgICAgICB0aGlzLmF0dHJPcmRlcklkID0gcm9zSW5zdGFuY2VHcm91cC5hdHRyT3JkZXJJZDtcbiAgICAgICAgdGhpcy5hdHRyUHJpdmF0ZUlwcyA9IHJvc0luc3RhbmNlR3JvdXAuYXR0clByaXZhdGVJcHM7XG4gICAgICAgIHRoaXMuYXR0clB1YmxpY0lwcyA9IHJvc0luc3RhbmNlR3JvdXAuYXR0clB1YmxpY0lwcztcbiAgICAgICAgdGhpcy5hdHRyWm9uZUlkcyA9IHJvc0luc3RhbmNlR3JvdXAuYXR0clpvbmVJZHM7XG4gICAgfVxufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2Vncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluc3RhbmNlZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQThDO0FBQzlDLG1EQUFtRDtBQUV0QixzR0FGcEIsZ0NBQWdCLE9BRXlCO0FBbWFsRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUErQzNDOzs7O09BSUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXlCLEVBQUUsbUNBQTJDLElBQUk7UUFDcEgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUNyRCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7WUFDbEQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7WUFDdkkseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtZQUMxRCwwQkFBMEIsRUFBRSxLQUFLLENBQUMsMEJBQTBCO1lBQzVELFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO1lBQzVDLDBCQUEwQixFQUFFLEtBQUssQ0FBQywwQkFBMEI7WUFDNUQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDNUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLG9CQUFvQixFQUFFLEtBQUss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Q0FBQyxrQkFBa0IsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCO1lBQy9JLHlCQUF5QixFQUFFLEtBQUssQ0FBQyx5QkFBeUI7WUFDMUQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtZQUM1QixtQkFBbUIsRUFBRSxLQUFLLENBQUMsbUJBQW1CO1NBQ2pELEVBQUUsZ0NBQWdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFDbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDO1FBQzlELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztRQUNoRCxJQUFJLENBQUMsY0FBYyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztRQUN0RCxJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztJQUNwRCxDQUFDO0NBQ0o7QUEzSUQsc0NBMklDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zSW5zdGFuY2VHcm91cCB9IGZyb20gJy4vZWNzLmdlbmVyYXRlZCc7XG4vLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cbmV4cG9ydCB7IFJvc0luc3RhbmNlR3JvdXAgYXMgSW5zdGFuY2VHcm91cFByb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgSW5zdGFuY2VHcm91cGAuXG4gKiBTZWUgaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL3Jvcy9kZXZlbG9wZXItcmVmZXJlbmNlL2FsaXl1bi1lY3MtaW5zdGFuY2Vncm91cFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlR3JvdXBQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZVR5cGU6IEVjcyBpbnN0YW5jZSBzdXBwb3J0ZWQgaW5zdGFuY2UgdHlwZSwgbWFrZSBzdXJlIGl0IHNob3VsZCBiZSBjb3JyZWN0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluc3RhbmNlVHlwZTogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbWF4QW1vdW50OiBNYXggbnVtYmVyIG9mIGluc3RhbmNlcyB0byBjcmVhdGUsIHNob3VsZCBiZSBiaWdnZXIgdGhhbiAnTWluQW1vdW50JyBhbmQgc21hbGxlciB0aGFuIDEwMDAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWF4QW1vdW50OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhZmZpbml0eTogU3BlY2lmaWVzIHdoZXRoZXIgdG8gYXNzb2NpYXRlIHRoZSBpbnN0YW5jZSBvbiBhIGRlZGljYXRlZCBob3N0IHdpdGggdGhlIGRlZGljYXRlZCBob3N0LiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSAqKmRlZmF1bHQqKjogZG9lcyBub3QgYXNzb2NpYXRlIHRoZSBFQ1MgaW5zdGFuY2Ugd2l0aCB0aGUgZGVkaWNhdGVkIGhvc3QuIFdoZW4geW91IHN0YXJ0IGFuIGluc3RhbmNlIHRoYXQgd2FzIHN0b3BwZWQgaW4gZWNvbm9taWNhbCBtb2RlLCB0aGUgaW5zdGFuY2UgaXMgYXV0b21hdGljYWxseSBkZXBsb3llZCB0byBhbm90aGVyIGRlZGljYXRlZCBob3N0IGluIHRoZSBhdXRvbWF0aWMgZGVwbG95bWVudCByZXNvdXJjZSBwb29sIGlmIHRoZSBhdmFpbGFibGUgcmVzb3VyY2VzIG9mIHRoZSBvcmlnaW5hbCBkZWRpY2F0ZWQgaG9zdCBhcmUgaW5zdWZmaWNpZW50LlxuICAgICAqIC0gKipob3N0Kio6IGFzc29jaWF0ZXMgdGhlIEVDUyBpbnN0YW5jZSB3aXRoIHRoZSBkZWRpY2F0ZWQgaG9zdC4gV2hlbiB5b3Ugc3RhcnQgYW4gaW5zdGFuY2UgdGhhdCB3YXMgc3RvcHBlZCBpbiBlY29ub21pY2FsIG1vZGUsIHRoZSBpbnN0YW5jZSByZW1haW5zIG9uIHRoZSBvcmlnaW5hbCBkZWRpY2F0ZWQgaG9zdC4gSWYgdGhlIGF2YWlsYWJsZSByZXNvdXJjZXMgb2YgdGhlIG9yaWdpbmFsIGRlZGljYXRlZCBob3N0IGFyZSBpbnN1ZmZpY2llbnQsIHRoZSBpbnN0YW5jZSBjYW5ub3Qgc3RhcnQuXG4gICAgICogRGVmYXVsdCB2YWx1ZTogKipkZWZhdWx0KiouXG4gICAgICovXG4gICAgcmVhZG9ubHkgYWZmaW5pdHk/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhbGxvY2F0ZVB1YmxpY0lwOiBUaGUgcHVibGljIGlwIGZvciBlY3MgaW5zdGFuY2UsIGlmIHByb3BlcnRpZXMgaXMgdHJ1ZSwgd2lsbCBhbGxvY2F0ZSBwdWJsaWMgaXAuIElmIHByb3BlcnR5IEludGVybmV0TWF4QmFuZHdpZHRoT3V0IHNldCB0byAwLCBpdCB3aWxsIG5vdCBhc3NpZ24gcHVibGljIGlwLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFsbG9jYXRlUHVibGljSXA/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgYXV0b1JlbGVhc2VUaW1lOiBBdXRvIHJlbGVhc2UgdGltZSBmb3IgY3JlYXRlZCBpbnN0YW5jZSwgRm9sbG93IElTTzg2MDEgc3RhbmRhcmQgdXNpbmcgVVRDIHRpbWUuIGZvcm1hdCBpcyAneXl5eS1NTS1kZFRISDptbTpzc1onLiBOb3QgYmlnZ2VyIHRoYW4gMyB5ZWFycyBmcm9tIHRoaXMgZGF5IG9ud2FyZHNcbiAgICAgKi9cbiAgICByZWFkb25seSBhdXRvUmVsZWFzZVRpbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXc6IFdoZXRoZXIgcmVuZXcgdGhlIGZlZSBhdXRvbWF0aWNhbGx5PyBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuIFJhbmdlIG9mIHZhbHVlOlRydWU6IGF1dG9tYXRpYyByZW5ld2FsLkZhbHNlOiBubyBhdXRvbWF0aWMgcmVuZXdhbC4gRGVmYXVsdCB2YWx1ZSBpcyBGYWxzZS5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXV0b1JlbmV3Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgYXV0b1JlbmV3UGVyaW9kOiBUaGUgdGltZSBwZXJpb2Qgb2YgYXV0byByZW5ldy4gV2hlbiB0aGUgcGFyYW1ldGVyIEluc3RhbmNlQ2hhcmdlVHlwZSBpcyBQcmVQYWlkLCBpdCB3aWxsIHRha2UgZWZmZWN0Lkl0IGNvdWxkIGJlIDEsIDIsIDMsIDYsIDEyLCAyNCwgMzYsIDQ4LCA2MC4gRGVmYXVsdCB2YWx1ZSBpcyAxLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBhdXRvUmVuZXdQZXJpb2Q/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBjcmVkaXRTcGVjaWZpY2F0aW9uOiBUaGUgcGVyZm9ybWFuY2UgbW9kZSBvZiB0aGUgYnVyc3RhYmxlIGluc3RhbmNlLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSAqKlN0YW5kYXJkKio6IHRoZSBzdGFuZGFyZCBtb2RlLlxuICAgICAqIC0gKipVbmxpbWl0ZWQqKjogdGhlIHVubGltaXRlZCBtb2RlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGNyZWRpdFNwZWNpZmljYXRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZWRpY2F0ZWRIb3N0SWQ6IHdoaWNoIGRlZGljYXRlZCBob3N0IHdpbGwgYmUgZGVwbG95ZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBkZWRpY2F0ZWRIb3N0SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZWxldGlvblByb3RlY3Rpb246IFdoZXRoZXIgYW4gaW5zdGFuY2UgY2FuIGJlIHJlbGVhc2VkIG1hbnVhbGx5IHRocm91Z2ggdGhlIGNvbnNvbGUgb3IgQVBJLCBkZWxldGlvbiBwcm90ZWN0aW9uIG9ubHkgc3VwcG9ydCBwb3N0UGFpZCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZXBsb3ltZW50U2V0R3JvdXBObzogVGhlIG51bWJlciBvZiB0aGUgZGVwbG95bWVudCBzZXQgZ3JvdXAgdG8gd2hpY2ggdG8gZGVwbG95IHRoZSBpbnN0YW5jZS4gSWYgdGhlIGRlcGxveW1lbnQgc2V0IHNwZWNpZmllZCBieSAqKkRlcGxveW1lbnRTZXRJZCoqIHVzZXMgdGhlIGhpZ2ggYXZhaWxhYmlsaXR5IGdyb3VwIHN0cmF0ZWd5IChBdmFpbGFiaWxpdHlHcm91cCksIHlvdSBjYW4gdXNlICoqRGVwbG95bWVudFNldEdyb3VwTm8qKiB0byBzcGVjaWZ5IGEgZGVwbG95bWVudCBzZXQgZ3JvdXAgaW4gdGhlIGRlcGxveW1lbnQgc2V0LiBWYWxpZCB2YWx1ZXM6IDEgdG8gNy5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXBsb3ltZW50U2V0R3JvdXBObz86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlcGxveW1lbnRTZXRJZDogRGVwbG95bWVudCBzZXQgSUQuIFRoZSBjaGFuZ2Ugb2YgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVwbG95bWVudFNldElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVzY3JpcHRpb246IERlc2NyaXB0aW9uIG9mIHRoZSBpbnN0YW5jZSwgWzIsIDI1Nl0gY2hhcmFjdGVycy4gRG8gbm90IGZpbGwgb3IgZW1wdHksIHRoZSBkZWZhdWx0IGlzIGVtcHR5LiBPbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkaXNrTWFwcGluZ3M6IERpc2sgbWFwcGluZ3MgdG8gYXR0YWNoIHRvIGluc3RhbmNlLiBNYXggc3VwcG9ydCAxNiBkaXNrcy5cbiAgICAgKiBJZiB0aGUgaW1hZ2UgY29udGFpbnMgYSBkYXRhIGRpc2ssIHlvdSBjYW4gc3BlY2lmeSBvdGhlciBwYXJhbWV0ZXJzIG9mIHRoZSBkYXRhIGRpc2sgdmlhIHRoZSBzYW1lIHZhbHVlIG9mIHBhcmFtZXRlciBcIkRldmljZVwiLiBJZiBwYXJhbWV0ZXIgXCJDYXRlZ29yeVwiIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgY2xvdWRfZWZmaWNpZW5jeSBpbnN0ZWFkIG9mIFwiQ2F0ZWdvcnlcIiBvZiBkYXRhIGRpc2sgaW4gdGhlIGltYWdlLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNrTWFwcGluZ3M/OiBBcnJheTxSb3NJbnN0YW5jZUdyb3VwLkRpc2tNYXBwaW5nc1Byb3BlcnR5IHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGVuaU1hcHBpbmdzOiBOZXR3b3JrSW50ZXJmYWNlIHRvIGF0dGFjaCB0byBpbnN0YW5jZS4gTWF4IHN1cHBvcnQgMSBFTkkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5pTWFwcGluZ3M/OiBBcnJheTxSb3NJbnN0YW5jZUdyb3VwLkVuaU1hcHBpbmdzUHJvcGVydHkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaG9zdE5hbWU6IEhvc3QgbmFtZSBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS4gYXQgbGVhc3QgMiBjaGFyYWN0ZXJzLCBhbmQgJy4nICctJyBJcyBub3QgdGhlIGZpcnN0IGFuZCBsYXN0IGNoYXJhY3RlcnMgYXMgaG9zdG5hbWUsIG5vdCBjb250aW51b3VzIHVzZS4gV2luZG93cyBwbGF0Zm9ybSBjYW4gYmUgdXAgdG8gMTUgY2hhcmFjdGVycywgYWxsb3dpbmcgbGV0dGVycyAod2l0aG91dCBsaW1pdGluZyBjYXNlKSwgbnVtYmVycyBhbmQgJy0nLCBhbmQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgbnVtYmVyIG9mIHBvaW50cywgbm90IGFsbCBpcyBkaWdpdGFsICgnLicpLk90aGVyIChMaW51eCwgZXRjLikgcGxhdGZvcm0gdXAgdG8gNjQgY2hhcmFjdGVycywgYWxsb3dpbmcgc3VwcG9ydCBudW1iZXIgbXVsdGlwbGUgcG9pbnRzIGZvciB0aGUgcGVyaW9kIGJldHdlZW4gdGhlIHBvaW50cywgZWFjaCBwZXJtaXQgbGV0dGVycyAod2l0aG91dCBsaW1pdGluZyBjYXNlKSwgbnVtYmVycyBhbmQgJy0nIGNvbXBvbmVudHMuIFxuICAgICAqIFN1cHBvcnQgdG8gdXNlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2V0IHRoZSBkaWZmZXJlbnQgaW5zdGFuY2UgbmFtZSBmb3IgZWFjaCBFQ1MgaW5zdGFuY2UuIEhvc3ROYW1lIGNvdWxkIGJlIHNwZWNpZmllZCBhcyAnbmFtZV9wcmVmaXhbYmVnaW5fbnVtYmVyLGJpdHNdbmFtZV9zdWZmaXgnLCBzdWNoIGFzICdob3N0WzEyMyw0XXRhaWwnLiBJZiB5b3UgY3JlYXRlcyAzIGluc3RhbmNlcyB3aXRoIGhvc3RuYW1lICdob3N0WzEyMyw0XXRhaWwnLCBhbGwgdGhlIGhvc3QgbmFtZXMgb2YgaW5zdGFuY2VzIGFyZSBob3N0MDEyM3RhaWwsIGhvc3QwMTI0dGFpbCwgaG9zdDAxMjV0YWlsLiBUaGUgJ25hbWVfcHJlZml4W2JlZ2luX251bWJlcixiaXRzXW5hbWVfc3VmZml4JyBzaG91bGQgZm9sbG93IHRob3NlIHJ1bGVzOiBcbiAgICAgKiAxLiAnbmFtZV9wcmVmaXgnIGlzIHJlcXVpcmVkLiBcbiAgICAgKiAyLiAnbmFtZV9zdWZmaXgnIGlzIG9wdGlvbmFsLiBcbiAgICAgKiAzLiBUaGUgbmFtZSByZWd1bGFyIGV4cHJlc3Npb24gY2FuJ3QgaW5jbHVkZSBhbnkgc3BhY2VzLiBcbiAgICAgKiA0LiBUaGUgJ2JpdHMnIG11c3QgYmUgaW4gcmFuZ2UgWzEsIDZdLiBcbiAgICAgKiA1LiBUaGUgJ2JlZ2luX251bWJlcicgbXVzdCBiZSBpbiByYW5nZSBbMCwgOTk5OTk5XS4gXG4gICAgICogNi4gWW91IGNvdWxkIG9ubHkgc3BlY2lmeSAnYmVnaW5fbnVtYmVyJy4gVGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIDcuIFlvdSBhbHNvIGNvdWxkIG9ubHkgc3BlY2lmeSB0aGUgW10gb3IgWyxdLiBUaGUgJ2JlZ2luX251bWJlcicgd2lsbCBiZSBzZXQgYXMgMCBieSBkZWZhdWx0LCB0aGUgJ2JpdHMnIHdpbGwgYmUgc2V0IGFzIDYgYnkgZGVmYXVsdC4gXG4gICAgICogOC4gSWYgdGhlIGJpdHMgb2YgJ2JlZ2luX251bWJlcicgaXMgbGVzcyB0aGFuIHRoZSAnYml0cycgeW91IHNwZWNpZmllZCwgbGlrZSBbMTIzNCwxXSwgdGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIFRoZSBob3N0IG5hbWUgaXMgc3BlY2lmaWVkIGJ5IHJlZ3VsYXIgZXhwcmVzc2lvbiB3b3JrcyBhZnRlciByZXN0YXJ0IGluc3RhbmNlIG1hbnVhbGx5LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhvc3ROYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaHBjQ2x1c3RlcklkOiBUaGUgSFBDIGNsdXN0ZXIgSUQgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuVGhlIGNoYW5nZSBvZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBocGNDbHVzdGVySWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBodHRwRW5kcG9pbnQ6IFNwZWNpZmllcyB3aGV0aGVyIHRoZSBhY2Nlc3MgY2hhbm5lbCBpcyBlbmFibGVkIGZvciBpbnN0YW5jZSBtZXRhZGF0YS4gVmFsaWQgdmFsdWVzOlxuICAgICAqIC0gKiplbmFibGVkKipcbiAgICAgKiAtICoqZGlzYWJsZWQqKlxuICAgICAqIERlZmF1bHQgdmFsdWU6ICoqZW5hYmxlZCoqLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGh0dHBFbmRwb2ludD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGh0dHBUb2tlbnM6IFNwZWNpZmllcyB3aGV0aGVyIHRoZSBzZWN1cml0eSBoYXJkZW5pbmcgbW9kZSAoSU1EU3YyKSBpcyBmb3JjZWZ1bGx5IHVzZWQgdG8gYWNjZXNzIGluc3RhbmNlIG1ldGFkYXRhLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSAqKm9wdGlvbmFsKio6IGRvZXMgbm90IGZvcmNlZnVsbHkgdXNlIHRoZSBzZWN1cml0eS1lbmhhbmNlZCBtb2RlIChJTURTdjIpLlxuICAgICAqIC0gKipyZXF1aXJlZCoqOiBmb3JjZWZ1bGx5IHVzZXMgdGhlIHNlY3VyaXR5LWVuaGFuY2VkIG1vZGUgKElNRFN2MikuIEFmdGVyIHlvdSBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gcmVxdWlyZWQsIHlvdSBjYW5ub3QgYWNjZXNzIGluc3RhbmNlIG1ldGFkYXRhIGluIG5vcm1hbCBtb2RlLlxuICAgICAqIERlZmF1bHQgdmFsdWU6ICoqb3B0aW9uYWwqKi5cbiAgICAgKi9cbiAgICByZWFkb25seSBodHRwVG9rZW5zPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW1hZ2VGYW1pbHk6IFRoZSBuYW1lIG9mIHRoZSBpbWFnZSBmYW1pbHkuIFlvdSBjYW4gc2V0IHRoaXMgcGFyYW1ldGVyIHRvIG9idGFpbiB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBjdXN0b20gaW1hZ2UgZnJvbSB0aGUgc3BlY2lmaWVkIGltYWdlIGZhbWlseSB0byBjcmVhdGUgdGhlIGluc3RhbmNlLlxuICAgICAqIC0gKipJbWFnZUZhbWlseSoqIG11c3QgYmUgZW1wdHkgaWYgKipJbWFnZUlkKiogaXMgc3BlY2lmaWVkLlxuICAgICAqIC0gKipJbWFnZUZhbWlseSoqIGNhbiBiZSBzcGVjaWZpZWQgaWYgKipJbWFnZUlkKiogaXMgbm90IHNwZWNpZmllZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbWFnZUZhbWlseT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGltYWdlSWQ6IEltYWdlIElEIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW1hZ2VJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGluc3RhbmNlQ2hhcmdlVHlwZTogSW5zdGFuY2UgQ2hhcmdlIHR5cGUsIGFsbG93ZWQgdmFsdWU6IFByZXBhaWQgYW5kIFBvc3RwYWlkLiBJZiBzcGVjaWZpZWQgUHJlcGFpZCwgcGxlYXNlIGVuc3VyZSB5b3UgaGF2ZSBzdWZmaWNpZW50IGJhbGFuY2UgaW4geW91ciBhY2NvdW50LiBPciBpbnN0YW5jZSBjcmVhdGlvbiB3aWxsIGJlIGZhaWx1cmUuIERlZmF1bHQgdmFsdWUgaXMgUG9zdHBhaWQuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluc3RhbmNlQ2hhcmdlVHlwZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGluc3RhbmNlTmFtZTogRGlzcGxheSBuYW1lIG9mIHRoZSBpbnN0YW5jZSwgWzIsIDEyOF0gRW5nbGlzaCBvciBDaGluZXNlIGNoYXJhY3RlcnMsIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBvciBDaGluZXNlIGluIHNpemUsIGNhbiBjb250YWluIG51bWJlcnMsICdfJyBvciAnLicsICctJy4gXG4gICAgICogU3VwcG9ydCB0byB1c2UgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBzZXQgdGhlIGRpZmZlcmVudCBpbnN0YW5jZSBuYW1lIGZvciBlYWNoIEVDUyBpbnN0YW5jZS4gSW5zdGFuY2VOYW1lIGNvdWxkIGJlIHNwZWNpZmllZCBhcyAnbmFtZV9wcmVmaXhbYmVnaW5fbnVtYmVyLGJpdHNdbmFtZV9zdWZmaXgnLCBzdWNoIGFzICd0ZXN0aW5zdGFuY2VbMTIzLDRddGFpbCcuIElmIHlvdSBjcmVhdGVzIDMgaW5zdGFuY2VzIHdpdGggdGhlIGluc3RhbmNlIG5hbWUgJ3Rlc3RpbnN0YW5jZVsxMjMsNF10YWlsJywgYWxsIHRoZSBpbnN0YW5jZXMnIG5hbWVzIGFyZSB0ZXN0aW5zdGFuY2UwMTIzdGFpbCwgdGVzdGluc3RhbmNlMDEyNHRhaWwsIHRlc3RpbnN0YW5jZTAxMjV0YWlsLiBcbiAgICAgKiBUaGUgJ25hbWVfcHJlZml4W2JlZ2luX251bWJlcixiaXRzXW5hbWVfc3VmZml4JyBzaG91bGQgZm9sbG93IHRob3NlIHJ1bGVzOiBcbiAgICAgKiAxLiAnbmFtZV9wcmVmaXgnIGlzIHJlcXVpcmVkLiBcbiAgICAgKiAyLiAnbmFtZV9zdWZmaXgnIGlzIG9wdGlvbmFsLiBcbiAgICAgKiAzLiBUaGUgbmFtZSByZWd1bGFyIGV4cHJlc3Npb24gY2FuJ3QgaW5jbHVkZSBhbnkgc3BhY2VzLiBcbiAgICAgKiA0LiBUaGUgJ2JpdHMnIG11c3QgYmUgaW4gcmFuZ2UgWzEsIDZdLiBcbiAgICAgKiA1LiBUaGUgJ2JlZ2luX251bWJlcicgbXVzdCBiZSBpbiByYW5nZSBbMCwgOTk5OTk5XS4gXG4gICAgICogNi4gWW91IGNvdWxkIG9ubHkgc3BlY2lmeSAnYmVnaW5fbnVtYmVyJy4gVGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIDcuIFlvdSBhbHNvIGNvdWxkIG9ubHkgc3BlY2lmeSB0aGUgW10gb3IgWyxdLiBUaGUgJ2JlZ2luX251bWJlcicgd2lsbCBiZSBzZXQgYXMgMCBieSBkZWZhdWx0LCB0aGUgJ2JpdHMnIHdpbGwgYmUgc2V0IGFzIDYgYnkgZGVmYXVsdC4gXG4gICAgICogOC4gSWYgdGhlIGJpdHMgb2YgJ2JlZ2luX251bWJlcicgaXMgbGVzcyB0aGFuIHRoZSAnYml0cycgeW91IHNwZWNpZmllZCwgbGlrZSBbMTIzNCwxXSwgdGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW5zdGFuY2VOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW50ZXJuZXRDaGFyZ2VUeXBlOiBJbnN0YW5jZSBpbnRlcm5ldCBhY2Nlc3MgY2hhcmdlIHR5cGUuU3VwcG9ydCAnUGF5QnlCYW5kd2lkdGgnIGFuZCAnUGF5QnlUcmFmZmljJyBvbmx5LiBEZWZhdWx0IGlzIFBheUJ5VHJhZmZpY1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0Q2hhcmdlVHlwZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGludGVybmV0TWF4QmFuZHdpZHRoT3V0OiBTZXQgaW50ZXJuZXQgb3V0cHV0IGJhbmR3aWR0aCBvZiBpbnN0YW5jZS4gVW5pdCBpcyBNYnBzKE1lZ2EgYml0IHBlciBzZWNvbmQpLiBSYW5nZSBpcyBbMCwyMDBdLiBEZWZhdWx0IGlzIDEuV2hpbGUgdGhlIHByb3BlcnR5IGlzIG5vdCAwLCBwdWJsaWMgaXAgd2lsbCBiZSBhc3NpZ25lZCBmb3IgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQ/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpb09wdGltaXplZDogVGhlICdvcHRpbWl6ZWQnIGluc3RhbmNlIGNhbiBwcm92aWRlIGJldHRlciBJTyBwZXJmb3JtYW5jZS4gU3VwcG9ydCAnbm9uZScgYW5kICdvcHRpbWl6ZWQnIG9ubHksIGRlZmF1bHQgaXMgJ29wdGltaXplZCcuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW9PcHRpbWl6ZWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpcHY2QWRkcmVzc0NvdW50OiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiByYW5kb21seSBnZW5lcmF0ZWQgSVB2NiBhZGRyZXNzZXMgZm9yIHRoZSBlbGFzdGljIE5JQy5cbiAgICAgKiBOb3RlIFlvdSBjYW5ub3Qgc3BlY2lmeSB0aGUgcGFyYW1ldGVycyBJcHY2QWRkcmVzc2VzIGFuZCBJcHY2QWRkcmVzc0NvdW50IGF0IHRoZSBzYW1lIHRpbWUuXG4gICAgICogVGhlIGNoYW5nZSBvZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBpcHY2QWRkcmVzc0NvdW50PzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaXB2NkFkZHJlc3NlczogU3BlY2lmeSBvbmUgb3IgbW9yZSBJUHY2IGFkZHJlc3NlcyBmb3IgdGhlIGVsYXN0aWMgTklDLiBDdXJyZW50bHksIHRoZSBtYXhpbXVtIGxpc3Qgc2l6ZSBpcyAxLiBFeGFtcGxlIHZhbHVlOiAyMDAxOmRiODoxMjM0OjFhMDA6OioqKiAuXG4gICAgICogTm90ZSBZb3UgY2Fubm90IHNwZWNpZnkgdGhlIHBhcmFtZXRlcnMgSXB2NkFkZHJlc3NlcyBhbmQgSXB2NkFkZHJlc3NDb3VudCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgICAqIFRoZSBjaGFuZ2Ugb2YgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXB2NkFkZHJlc3Nlcz86IEFycmF5PGFueSB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBrZXlQYWlyTmFtZTogU1NIIGtleSBwYWlyIG5hbWUuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGtleVBhaXJOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbGF1bmNoVGVtcGxhdGVJZDogSUQgb2YgbGF1bmNoIHRlbXBsYXRlLiBMYXVuY2ggdGVtcGxhdGUgaWQgb3IgbmFtZSBtdXN0IGJlIHNwZWNpZmllZCB0byB1c2UgbGF1bmNoIHRlbXBsYXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGxhdW5jaFRlbXBsYXRlTmFtZTogTmFtZSBvZiBsYXVuY2ggdGVtcGxhdGUuIExhdW5jaCB0ZW1wbGF0ZSBpZCBvciBuYW1lIG11c3QgYmUgc3BlY2lmaWVkIHRvIHVzZSBsYXVuY2ggdGVtcGxhdGVcbiAgICAgKi9cbiAgICByZWFkb25seSBsYXVuY2hUZW1wbGF0ZU5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBsYXVuY2hUZW1wbGF0ZVZlcnNpb246IFZlcnNpb24gb2YgbGF1bmNoIHRlbXBsYXRlLiBEZWZhdWx0IHZlcnNpb24gaXMgdXNlZCBpZiB2ZXJzaW9uIGlzIG5vdCBzcGVjaWZpZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVWZXJzaW9uPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbmV0d29ya1R5cGU6IEluc3RhbmNlIG5ldHdvcmsgdHlwZS4gU3VwcG9ydCAndnBjJyBhbmQgJ2NsYXNzaWMnLCBmb3IgY29tcGF0aWJsZSByZWFzb24sIGRlZmF1bHQgaXMgJ2NsYXNzaWMnLiBJZiB2c3dpdGNoIGlkIGFuZCB2cGMgaWQgaXMgc3BlY2lmaWVkLCB0aGUgcHJvcGVydHkgd2lsbCBiZSBmb3JjZWQgdG8gYmUgc2V0IHRvICd2cGMnXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmV0d29ya1R5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwYXNzd29yZDogUGFzc3dvcmQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE11c3QgY29udGFpbiBhdCBsZWFzdCAzIHR5cGVzIG9mIHNwZWNpYWwgY2hhcmFjdGVyLCBsb3dlciBjaGFyYWN0ZXIsIHVwcGVyIGNoYXJhY3RlciwgbnVtYmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhc3N3b3JkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGFzc3dvcmRJbmhlcml0OiBTcGVjaWZpZXMgd2hldGhlciB0byB1c2UgdGhlIHBhc3N3b3JkIHByZXNldCBpbiB0aGUgaW1hZ2UuIFRvIHVzZSB0aGUgUGFzc3dvcmRJbmhlcml0IHBhcmFtZXRlciwgdGhlIFBhc3N3b3JkIHBhcmFtZXRlciBtdXN0IGJlIGVtcHR5IGFuZCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGUgc2VsZWN0ZWQgaW1hZ2UgaGFzIGEgcGFzc3dvcmQgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXNzd29yZEluaGVyaXQ/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVyaW9kOiBQcmVwYWlkIHRpbWUgcGVyaW9kLiBVbml0IGlzIG1vbnRoLCBpdCBjb3VsZCBiZSBmcm9tIDEgdG8gOSBvciAxMiwgMjQsIDM2LCA0OCwgNjAuIERlZmF1bHQgdmFsdWUgaXMgMS5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGVyaW9kPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVyaW9kVW5pdDogVW5pdCBvZiBwcmVwYWlkIHRpbWUgcGVyaW9kLCBpdCBjb3VsZCBiZSBXZWVrXFwvTW9udGhcXC9ZZWFyLiBEZWZhdWx0IHZhbHVlIGlzIE1vbnRoLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwZXJpb2RVbml0Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcHJpdmF0ZUlwQWRkcmVzczogUHJpdmF0ZSBJUCBmb3IgdGhlIGluc3RhbmNlIGNyZWF0ZWQuIE9ubHkgd29ya3MgZm9yIFZQQyBpbnN0YW5jZSBhbmQgY2Fubm90IGR1cGxpY2F0ZWQgd2l0aCBleGlzdGluZyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcml2YXRlSXBBZGRyZXNzPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcHJpdmF0ZVBvb2xPcHRpb25zOiBUaGUgb3B0aW9ucyBvZiB0aGUgcHJpdmF0ZSBwb29sLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHByaXZhdGVQb29sT3B0aW9ucz86IFJvc0luc3RhbmNlR3JvdXAuUHJpdmF0ZVBvb2xPcHRpb25zUHJvcGVydHkgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByYW1Sb2xlTmFtZTogSW5zdGFuY2UgUkFNIHJvbGUgbmFtZS4gVGhlIG5hbWUgaXMgcHJvdmlkZWQgYW5kIG1haW50YWluZWQgYnkgUmVzb3VyY2UgQWNjZXNzIE1hbmFnZW1lbnQgKFJBTSkgYW5kIGNhbiBiZSBxdWVyaWVkIHVzaW5nIExpc3RSb2xlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBSQU0gQVBJIENyZWF0ZVJvbGUgYW5kIExpc3RSb2xlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSByYW1Sb2xlTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHJlc291cmNlR3JvdXBJZDogUmVzb3VyY2UgZ3JvdXAgaWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjdXJpdHlFbmhhbmNlbWVudFN0cmF0ZWd5OlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5RW5oYW5jZW1lbnRTdHJhdGVneT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5R3JvdXBJZDogU2VjdXJpdHkgZ3JvdXAgdG8gY3JlYXRlIGVjcyBpbnN0YW5jZS4gRm9yIGNsYXNzaWMgaW5zdGFuY2UgbmVlZCB0aGUgc2VjdXJpdHkgZ3JvdXAgbm90IGJlbG9uZyB0byBWUEMsIGZvciBWUEMgaW5zdGFuY2UsIHBsZWFzZSBtYWtlIHN1cmUgdGhlIHNlY3VyaXR5IGdyb3VwIGJlbG9uZyB0byBzcGVjaWZpZWQgVlBDLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5R3JvdXBJZHM6IFRoZSBJRHMgb2Ygc2VjdXJpdHkgZ3JvdXBzIE4gdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuIFRoZSB2YWxpZCB2YWx1ZXMgb2YgTiBhcmUgYmFzZWQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mIHNlY3VyaXR5IGdyb3VwcyB0byB3aGljaCBhbiBpbnN0YW5jZSBjYW4gYmVsb25nLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFNlY3VyaXR5IGdyb3VwIGxpbWl0cy5Ob3RlOiBZb3UgY2Fubm90IHNwZWNpZnkgYm90aCBTZWN1cml0eUdyb3VwSWQgYW5kIFNlY3VyaXR5R3JvdXBJZHMgYXQgdGhlIHNhbWUgdGltZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzPzogQXJyYXk8c3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3REdXJhdGlvbjogVGhlIHByb3RlY3Rpb24gcGVyaW9kIG9mIHRoZSBwcmVlbXB0aWJsZSBpbnN0YW5jZS4gVW5pdDogaG91cnMuIFZhbGlkIHZhbHVlczogMCwgMSwgMiwgMywgNCwgNSwgYW5kIDYuXG4gICAgICogUHJvdGVjdGlvbiBwZXJpb2RzIG9mIDIsIDMsIDQsIDUsIGFuZCA2IGhvdXJzIGFyZSBpbiBpbnZpdGF0aW9uYWwgcHJldmlldy4gSWYgeW91IHdhbnQgdG8gc2V0IHRoaXMgcGFyYW1ldGVyIHRvIG9uZSBvZiB0aGVzZSB2YWx1ZXMsIHN1Ym1pdCBhIHRpY2tldC5cbiAgICAgKiBJZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gMCwgbm8gcHJvdGVjdGlvbiBwZXJpb2QgaXMgY29uZmlndXJlZCBmb3IgdGhlIHByZWVtcHRpYmxlIGluc3RhbmNlLlxuICAgICAqIERlZmF1bHQgdmFsdWU6IDEuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdER1cmF0aW9uPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdEludGVycnVwdGlvbkJlaGF2aW9yOiBUaGUgaW50ZXJydXB0aW9uIG1vZGUgb2YgdGhlIHByZWVtcHRpYmxlIGluc3RhbmNlLiBEZWZhdWx0IHZhbHVlOiBUZXJtaW5hdGUuIFNldCB0aGUgdmFsdWUgdG8gVGVybWluYXRlLCB3aGljaCBzcGVjaWZpZXMgdG8gcmVsZWFzZSB0aGUgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdEludGVycnVwdGlvbkJlaGF2aW9yPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdFByaWNlTGltaXQ6IFRoZSBob3VybHkgcHJpY2UgdGhyZXNob2xkIG9mIGEgaW5zdGFuY2UsIGFuZCBpdCB0YWtlcyBlZmZlY3Qgb25seSB3aGVuIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUG9zdFBhaWQuIFRocmVlIGRlY2ltYWxzIGlzIGFsbG93ZWQgYXQgbW9zdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90UHJpY2VMaW1pdD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3RTdHJhdGVneTogVGhlIHNwb3Qgc3RyYXRlZ3kgb2YgYSBQYXktQXMtWW91LUdvIGluc3RhbmNlLCBhbmQgaXQgdGFrZXMgZWZmZWN0IG9ubHkgd2hlbiBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFBvc3RQYWlkLiBWYWx1ZSByYW5nZTogXCJOb1Nwb3Q6IEEgcmVndWxhciBQYXktQXMtWW91LUdvIGluc3RhbmNlXCIsIFwiU3BvdFdpdGhQcmljZUxpbWl0OiBBIHByaWNlIHRocmVzaG9sZCBmb3IgYSBzcG90IGluc3RhbmNlLCBcIlwiU3BvdEFzUHJpY2VHbzogQSBwcmljZSB0aGF0IGlzIGJhc2VkIG9uIHRoZSBoaWdoZXN0IFBheS1Bcy1Zb3UtR28gaW5zdGFuY2UuIFwiRGVmYXVsdCB2YWx1ZTogTm9TcG90LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwb3RTdHJhdGVneT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN0b3JhZ2VTZXRJZDogVGhlIHN0b3JhZ2Ugc2V0IElELlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0b3JhZ2VTZXRJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN0b3JhZ2VTZXRQYXJ0aXRpb25OdW1iZXI6IFRoZSBtYXhpbXVtIG51bWJlciBvZiBwYXJ0aXRpb25zIGluIHRoZSBzdG9yYWdlIHNldC4gVGhlIHZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RvcmFnZVNldFBhcnRpdGlvbk51bWJlcj86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tBdXRvU25hcHNob3RQb2xpY3lJZDogQXV0byBzbmFwc2hvdCBwb2xpY3kgSUQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0F1dG9TbmFwc2hvdFBvbGljeUlkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0J1cnN0aW5nRW5hYmxlZDogV2hldGhlciBlbmFibGUgYnVyc3RpbmcuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0J1cnN0aW5nRW5hYmxlZD86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrQ2F0ZWdvcnk6IENhdGVnb3J5IG9mIHN5c3RlbSBkaXNrLiBEZWZhdWx0IGlzIGNsb3VkX2VmZmljaWVuY3kuIHN1cHBvcnQgY2xvdWR8Y2xvdWRfZWZmaWNpZW5jeXxjbG91ZF9zc2R8Y2xvdWRfZXNzZHxlcGhlbWVyYWxfc3NkfGNsb3VkX2F1dG98Y2xvdWRfZXNzZF9lbnRyeS5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0NhdGVnb3J5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0Rlc2NyaXB0aW9uOiBEZXNjcmlwdGlvbiBvZiBjcmVhdGVkIHN5c3RlbSBkaXNrLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrRGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrRGlza05hbWU6IE5hbWUgb2YgY3JlYXRlZCBzeXN0ZW0gZGlzay5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0Rpc2tOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0VuY3J5cHRBbGdvcml0aG06IFRoZSBhbGdvcml0aG0gdG8gdXNlIHRvIGVuY3J5cHQgdGhlIHN5c3RlbSBkaXNrLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSBhc2UtMjU2XG4gICAgICogLSBzbTQtMTI4XG4gICAgICogRGVmYXVsdCB2YWx1ZTogYXNlLTI1Ni5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrRW5jcnlwdEFsZ29yaXRobT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tFbmNyeXB0ZWQ6IFNwZWNpZmllcyB3aGV0aGVyIHRvIGVuY3J5cHQgdGhlIHN5c3RlbSBkaXNrLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSB0cnVlOiBlbmNyeXB0cyB0aGUgc3lzdGVtIGRpc2suXG4gICAgICogLSBmYWxzZTogZG9lcyBub3QgZW5jcnlwdCB0aGUgc3lzdGVtIGRpc2suXG4gICAgICogRGVmYXVsdCB2YWx1ZTogZmFsc2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0VuY3J5cHRlZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tLbXNLZXlJZDogVGhlIElEIG9mIHRoZSBLTVMga2V5IHRvIHVzZSBmb3IgdGhlIHN5c3RlbSBkaXNrLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tLbXNLZXlJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tQZXJmb3JtYW5jZUxldmVsOiBUaGUgcGVyZm9ybWFuY2UgbGV2ZWwgb2YgdGhlIGVuaGFuY2VkIFNTRCB1c2VkIGFzIHRoZSBzeXN0ZW0gZGlzay5EZWZhdWx0IHZhbHVlOiBQTDEuIFZhbGlkIHZhbHVlczpQTDA6IEEgc2luZ2xlIGVuaGFuY2VkIFNTRCBkZWxpdmVycyB1cCB0byAxMCwwMDAgcmFuZG9tIHJlYWRcXC93cml0ZSBJT1BTLlBMMTogQSBzaW5nbGUgZW5oYW5jZWQgU1NEIGRlbGl2ZXJzIHVwIHRvIDUwLDAwMCByYW5kb20gcmVhZFxcL3dyaXRlIElPUFMuUEwyOiBBIHNpbmdsZSBlbmhhbmNlZCBTU0QgZGVsaXZlcnMgdXAgdG8gMTAwLDAwMCByYW5kb20gcmVhZFxcL3dyaXRlIElPUFMuUEwzOiBBIHNpbmdsZSBlbmhhbmNlZCBTU0QgZGVsaXZlcnMgdXAgdG8gMSwwMDAsMDAwIHJhbmRvbSByZWFkXFwvd3JpdGUgSU9QUy5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrUGVyZm9ybWFuY2VMZXZlbD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tQcm92aXNpb25lZElvcHM6IFByb3Zpc2lvbmluZyBJT1BTLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tQcm92aXNpb25lZElvcHM/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrU2l6ZTogRGlzayBzaXplIG9mIHRoZSBzeXN0ZW0gZGlzaywgcmFuZ2UgZnJvbSAyMCB0byA1MDAgR0IuIElmIHlvdSBzcGVjaWZ5IHdpdGggeW91ciBvd24gaW1hZ2UsIG1ha2Ugc3VyZSB0aGUgc3lzdGVtIGRpc2sgc2l6ZSBiaWdnZXIgdGhhbiBpbWFnZSBzaXplLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tTaXplPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza1N0b3JhZ2VDbHVzdGVySWQ6IFRoZSBJRCBvZiB0aGUgZGVkaWNhdGVkIGJsb2NrIHN0b3JhZ2UgY2x1c3Rlci4gSWYgeW91IHdhbnQgdG8gdXNlIGRpc2tzIGluIGEgZGVkaWNhdGVkIGJsb2NrIHN0b3JhZ2UgY2x1c3RlciBhcyBzeXN0ZW0gZGlza3Mgd2hlbiB5b3UgY3JlYXRlIGluc3RhbmNlcywgeW91IG11c3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrU3RvcmFnZUNsdXN0ZXJJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHRhZ3M6IFRhZ3MgdG8gYXR0YWNoIHRvIGluc3RhbmNlLiBNYXggc3VwcG9ydCAyMCB0YWdzIHRvIGFkZCBkdXJpbmcgY3JlYXRlIGluc3RhbmNlLiBFYWNoIHRhZyB3aXRoIHR3byBwcm9wZXJ0aWVzIEtleSBhbmQgVmFsdWUsIGFuZCBLZXkgaXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGFncz86IFJvc0luc3RhbmNlR3JvdXAuVGFnc1Byb3BlcnR5W107XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB0ZW5hbmN5OiBTcGVjaWZpZXMgd2hldGhlciB0byBjcmVhdGUgdGhlIGluc3RhbmNlIG9uIGEgZGVkaWNhdGVkIGhvc3QuIFZhbGlkIHZhbHVlczpcbiAgICAgKiAtICoqZGVmYXVsdCoqOiBjcmVhdGVzIHRoZSBpbnN0YW5jZSBvbiBhIG5vbi1kZWRpY2F0ZWQgaG9zdC5cbiAgICAgKiAtICoqaG9zdCoqOiBjcmVhdGVzIHRoZSBpbnN0YW5jZSBvbiBhIGRlZGljYXRlZCBob3N0LiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgKipEZWRpY2F0ZWRIb3N0SWQqKiwgQWxpYmFiYSBDbG91ZCBzZWxlY3RzIGEgZGVkaWNhdGVkIGhvc3QgZm9yIHRoZSBpbnN0YW5jZS5cbiAgICAgKiBEZWZhdWx0IHZhbHVlOiAqKmRlZmF1bHQqKi5cbiAgICAgKi9cbiAgICByZWFkb25seSB0ZW5hbmN5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdXBkYXRlUG9saWN5OiBTcGVjaWZ5IHRoZSBwb2xpY3kgYXQgdXBkYXRlLiBcbiAgICAgKiBUaGUgdmFsdWUgY2FuIGJlICdGb3JOZXdJbnN0YW5jZXMnIG9yICdGb3JBbGxJbnN0YW5jZXMnLlxuICAgICAqIElmIFVwZGF0ZVBvbGljeSBpcyAnRm9yQWxsSW5zdGFuY2UnLCBUaGUgdXBkYXRhYmxlIHBhcmFtZXRlcnMgYXJlIEluc3RhbmNlVHlwZSwgSW1hZ2VJZCwgU3lzdGVtRGlza1NpemUsIFN5c3RlbURpc2tDYXRlZ29yeSwgUGFzc3dvcmQsIFVzZXJEYXRhLEludGVybmV0Q2hhcmdlVHlwZSwgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQsIEludGVybmV0TWF4QmFuZHdpZHRoSW4uXG4gICAgICogVGhlIGRlZmF1bHQgaXMgJ0Zvck5ld0luc3RhbmNlcydcbiAgICAgKi9cbiAgICByZWFkb25seSB1cGRhdGVQb2xpY3k/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB1c2VBZGRpdGlvbmFsU2VydmljZTogU3BlY2lmaWVzIHdoZXRoZXIgdG8gdXNlIHRoZSBzeXN0ZW0gY29uZmlndXJhdGlvbnMgZm9yIHZpcnR1YWwgbWFjaGluZXMgcHJvdmlkZWQgYnkgQWxpYmFiYSBDbG91ZC4gU3lzdGVtIGNvbmZpZ3VyYXRpb25zIGZvciBXaW5kb3dzOiBOVFAgYW5kIEtNUy4gU3lzdGVtIGNvbmZpZ3VyYXRpb25zIGZvciBMaW51eDogTlRQIGFuZCBZVU0uXG4gICAgICovXG4gICAgcmVhZG9ubHkgdXNlQWRkaXRpb25hbFNlcnZpY2U/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdXNlckRhdGE6IFVzZXIgZGF0YSB0byBwYXNzIHRvIGluc3RhbmNlLiBbMSwgMTZLQl0gY2hhcmFjdGVycy5Vc2VyIGRhdGEgc2hvdWxkIG5vdCBiZSBiYXNlNjQgZW5jb2RlZC4gSWYgeW91IHdhbnQgdG8gcGFzcyBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgdG8gdGhlIHByb3BlcnR5LCB1c2UgZnVuY3Rpb24gRm46OkJhc2U2NERlY29kZSB0byBkZWNvZGUgdGhlIGJhc2U2NCBzdHJpbmcgZmlyc3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdXNlckRhdGE/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB2cGNJZDogVGhlIFZQQyBpZCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHZwY0lkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdlN3aXRjaElkOiBUaGUgdlN3aXRjaCBJZCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHZTd2l0Y2hJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHpvbmVJZDogVGhlIElEIG9mIHRoZSB6b25lIHRvIHdoaWNoIHRoZSBpbnN0YW5jZSBiZWxvbmdzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgXG4gICAgICogY2FsbCB0aGUgRGVzY3JpYmVab25lcyBvcGVyYXRpb24gdG8gcXVlcnkgdGhlIG1vc3QgcmVjZW50IHpvbmUgbGlzdC4gXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggbWVhbnMgcmFuZG9tIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSB6b25lSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB6b25lSWRzOiBab25lIGlkcyBmb3IgcXVlcnkgcGFyYW1ldGVyc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHpvbmVJZHM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIGFuZCBleHRlbmRzIHRoZSBST1MgcmVzb3VyY2UgdHlwZSBgQUxJWVVOOjpFQ1M6Okluc3RhbmNlR3JvdXBgLCB3aGljaCBpcyB1c2VkIHRvIGNyZWF0ZSBhIGdyb3VwIG9mIEVsYXN0aWMgQ29tcHV0ZSBTZXJ2aWNlIChFQ1MpIGluc3RhbmNlcyB0aGF0IGhhdmUgdGhlIHNhbWUgY29uZmlndXJhdGlvbnMuXG4gKiBATm90ZSBUaGlzIGNsYXNzIG1heSBoYXZlIHNvbWUgbmV3IGZ1bmN0aW9ucyB0byBmYWNpbGl0YXRlIGRldmVsb3BtZW50LCBzbyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBjbGFzcyBpbnN0ZWFkIG9mIGBSb3NJbnN0YW5jZUdyb3VwYGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9hbGl5dW4tZWNzLWluc3RhbmNlZ3JvdXBcbiAqL1xuZXhwb3J0IGNsYXNzIEluc3RhbmNlR3JvdXAgZXh0ZW5kcyByb3MuUmVzb3VyY2Uge1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIEhvc3ROYW1lczogSG9zdCBuYW1lcyBvZiBjcmVhdGVkIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckhvc3ROYW1lczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIElubmVySXBzOiBJbm5lciBJUCBhZGRyZXNzIGxpc3Qgb2YgdGhlIHNwZWNpZmllZCBpbnN0YW5jZXMuIE9ubHkgZm9yIGNsYXNzaWNhbCBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJbm5lcklwczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIEluc3RhbmNlSWRzOiBUaGUgaW5zdGFuY2UgaWQgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckluc3RhbmNlSWRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSXB2NkFkZHJlc3NJZHM6IElQdjYgYWRkcmVzcyBJRHMgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXMuIE5vdGU6IFRoZSByZXR1cm4gdHlwZSBpcyBhIHR3by10aWVyIGxpc3QuSWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGhhdmUgYW55IElQdjYgYWRkcmVzcywgdGhlIGVsZW1lbnQgYXQgdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gdGhlIGxpc3QgaXMgbnVsbC4gSWYgYWxsIGluc3RhbmNlcyBkb2VzIG5vdCBoYXZlIGFueSBJUHYgYWRkcmVzcywgd2lsbCByZXR1cm4gbnVsbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklwdjZBZGRyZXNzSWRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSXB2NkFkZHJlc3NlczogSVB2NiBhZGRyZXNzZXMgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXMuIE5vdGU6IFRoZSByZXR1cm4gdHlwZSBpcyBhIHR3by10aWVyIGxpc3QuIElmIHRoZSBpbnN0YW5jZSBkb2VzIG5vdCBoYXZlIGFueSBJUHY2IGFkZHJlc3MsIHRoZSBlbGVtZW50IGF0IHRoZSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZSBsaXN0IGlzIG51bGwuIElmIGFsbCBpbnN0YW5jZXMgZG9lcyBub3QgaGF2ZSBhbnkgSVB2IGFkZHJlc3MsIHdpbGwgcmV0dXJuIG51bGwuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJcHY2QWRkcmVzc2VzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgT3JkZXJJZDogVGhlIG9yZGVyIGlkIGxpc3Qgb2YgY3JlYXRlZCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ck9yZGVySWQ6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQcml2YXRlSXBzOiBQcml2YXRlIElQIGFkZHJlc3MgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXMuIE9ubHkgZm9yIFZQQyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clByaXZhdGVJcHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQdWJsaWNJcHM6IFB1YmxpYyBJUCBhZGRyZXNzIGxpc3Qgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyUHVibGljSXBzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgWm9uZUlkczogWm9uZSBpZCBvZiBjcmVhdGVkIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clpvbmVJZHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogUGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAgICogUGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnN0YW5jZUdyb3VwUHJvcHMsIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OmJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgY29uc3Qgcm9zSW5zdGFuY2VHcm91cCA9IG5ldyBSb3NJbnN0YW5jZUdyb3VwKHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgZGVkaWNhdGVkSG9zdElkOiBwcm9wcy5kZWRpY2F0ZWRIb3N0SWQsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHByb3BzLnJlc291cmNlR3JvdXBJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEZXNjcmlwdGlvbjogcHJvcHMuc3lzdGVtRGlza0Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW5zdGFuY2VDaGFyZ2VUeXBlOiBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IG51bGwgPyAnUG9zdFBhaWQnIDogcHJvcHMuaW5zdGFuY2VDaGFyZ2VUeXBlLFxuICAgICAgICAgICAgc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wczogcHJvcHMuc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wcyxcbiAgICAgICAgICAgIHN5c3RlbURpc2tFbmNyeXB0QWxnb3JpdGhtOiBwcm9wcy5zeXN0ZW1EaXNrRW5jcnlwdEFsZ29yaXRobSxcbiAgICAgICAgICAgIHJhbVJvbGVOYW1lOiBwcm9wcy5yYW1Sb2xlTmFtZSxcbiAgICAgICAgICAgIHByaXZhdGVQb29sT3B0aW9uczogcHJvcHMucHJpdmF0ZVBvb2xPcHRpb25zLFxuICAgICAgICAgICAgc3lzdGVtRGlza1BlcmZvcm1hbmNlTGV2ZWw6IHByb3BzLnN5c3RlbURpc2tQZXJmb3JtYW5jZUxldmVsLFxuICAgICAgICAgICAgaW1hZ2VJZDogcHJvcHMuaW1hZ2VJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEaXNrTmFtZTogcHJvcHMuc3lzdGVtRGlza0Rpc2tOYW1lLFxuICAgICAgICAgICAgc3RvcmFnZVNldElkOiBwcm9wcy5zdG9yYWdlU2V0SWQsXG4gICAgICAgICAgICB1c2VBZGRpdGlvbmFsU2VydmljZTogcHJvcHMudXNlQWRkaXRpb25hbFNlcnZpY2UsXG4gICAgICAgICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgICAgICAgaG9zdE5hbWU6IHByb3BzLmhvc3ROYW1lLFxuICAgICAgICAgICAgc3lzdGVtRGlza1N0b3JhZ2VDbHVzdGVySWQ6IHByb3BzLnN5c3RlbURpc2tTdG9yYWdlQ2x1c3RlcklkLFxuICAgICAgICAgICAgbGF1bmNoVGVtcGxhdGVOYW1lOiBwcm9wcy5sYXVuY2hUZW1wbGF0ZU5hbWUsXG4gICAgICAgICAgICB1cGRhdGVQb2xpY3k6IHByb3BzLnVwZGF0ZVBvbGljeSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnVwZGF0ZVBvbGljeSA9PT0gbnVsbCA/ICdGb3JOZXdJbnN0YW5jZXMnIDogcHJvcHMudXBkYXRlUG9saWN5LFxuICAgICAgICAgICAgc3lzdGVtRGlza0ttc0tleUlkOiBwcm9wcy5zeXN0ZW1EaXNrS21zS2V5SWQsXG4gICAgICAgICAgICB2U3dpdGNoSWQ6IHByb3BzLnZTd2l0Y2hJZCxcbiAgICAgICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kID09PSB1bmRlZmluZWQgfHwgcHJvcHMucGVyaW9kID09PSBudWxsID8gMSA6IHByb3BzLnBlcmlvZCxcbiAgICAgICAgICAgIGltYWdlRmFtaWx5OiBwcm9wcy5pbWFnZUZhbWlseSxcbiAgICAgICAgICAgIGxhdW5jaFRlbXBsYXRlSWQ6IHByb3BzLmxhdW5jaFRlbXBsYXRlSWQsXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb3BzLmRlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgICAgICAgIGh0dHBFbmRwb2ludDogcHJvcHMuaHR0cEVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkczogcHJvcHMuc2VjdXJpdHlHcm91cElkcyxcbiAgICAgICAgICAgIGludGVybmV0Q2hhcmdlVHlwZTogcHJvcHMuaW50ZXJuZXRDaGFyZ2VUeXBlID09PSB1bmRlZmluZWQgfHwgcHJvcHMuaW50ZXJuZXRDaGFyZ2VUeXBlID09PSBudWxsID8gJ1BheUJ5VHJhZmZpYycgOiBwcm9wcy5pbnRlcm5ldENoYXJnZVR5cGUsXG4gICAgICAgICAgICBzcG90SW50ZXJydXB0aW9uQmVoYXZpb3I6IHByb3BzLnNwb3RJbnRlcnJ1cHRpb25CZWhhdmlvciA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnNwb3RJbnRlcnJ1cHRpb25CZWhhdmlvciA9PT0gbnVsbCA/ICdUZXJtaW5hdGUnIDogcHJvcHMuc3BvdEludGVycnVwdGlvbkJlaGF2aW9yLFxuICAgICAgICAgICAgaW5zdGFuY2VOYW1lOiBwcm9wcy5pbnN0YW5jZU5hbWUsXG4gICAgICAgICAgICBkZXBsb3ltZW50U2V0SWQ6IHByb3BzLmRlcGxveW1lbnRTZXRJZCxcbiAgICAgICAgICAgIGludGVybmV0TWF4QmFuZHdpZHRoT3V0OiBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aE91dCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmludGVybmV0TWF4QmFuZHdpZHRoT3V0ID09PSBudWxsID8gMSA6IHByb3BzLmludGVybmV0TWF4QmFuZHdpZHRoT3V0LFxuICAgICAgICAgICAgdnBjSWQ6IHByb3BzLnZwY0lkLFxuICAgICAgICAgICAgbGF1bmNoVGVtcGxhdGVWZXJzaW9uOiBwcm9wcy5sYXVuY2hUZW1wbGF0ZVZlcnNpb24sXG4gICAgICAgICAgICBhZmZpbml0eTogcHJvcHMuYWZmaW5pdHksXG4gICAgICAgICAgICBzZWN1cml0eUVuaGFuY2VtZW50U3RyYXRlZ3k6IHByb3BzLnNlY3VyaXR5RW5oYW5jZW1lbnRTdHJhdGVneSxcbiAgICAgICAgICAgIGF1dG9SZWxlYXNlVGltZTogcHJvcHMuYXV0b1JlbGVhc2VUaW1lLFxuICAgICAgICAgICAgcGVyaW9kVW5pdDogcHJvcHMucGVyaW9kVW5pdCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlcmlvZFVuaXQgPT09IG51bGwgPyAnTW9udGgnIDogcHJvcHMucGVyaW9kVW5pdCxcbiAgICAgICAgICAgIHRlbmFuY3k6IHByb3BzLnRlbmFuY3ksXG4gICAgICAgICAgICBwcml2YXRlSXBBZGRyZXNzOiBwcm9wcy5wcml2YXRlSXBBZGRyZXNzLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlza01hcHBpbmdzOiBwcm9wcy5kaXNrTWFwcGluZ3MsXG4gICAgICAgICAgICB1c2VyRGF0YTogcHJvcHMudXNlckRhdGEsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrU2l6ZTogcHJvcHMuc3lzdGVtRGlza1NpemUsXG4gICAgICAgICAgICBhdXRvUmVuZXc6IHByb3BzLmF1dG9SZW5ldyA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmF1dG9SZW5ldyA9PT0gbnVsbCA/ICdGYWxzZScgOiBwcm9wcy5hdXRvUmVuZXcsXG4gICAgICAgICAgICBzcG90RHVyYXRpb246IHByb3BzLnNwb3REdXJhdGlvbixcbiAgICAgICAgICAgIHN0b3JhZ2VTZXRQYXJ0aXRpb25OdW1iZXI6IHByb3BzLnN0b3JhZ2VTZXRQYXJ0aXRpb25OdW1iZXIsXG4gICAgICAgICAgICBpcHY2QWRkcmVzc2VzOiBwcm9wcy5pcHY2QWRkcmVzc2VzLFxuICAgICAgICAgICAgc3lzdGVtRGlza0VuY3J5cHRlZDogcHJvcHMuc3lzdGVtRGlza0VuY3J5cHRlZCxcbiAgICAgICAgICAgIG1heEFtb3VudDogcHJvcHMubWF4QW1vdW50LFxuICAgICAgICAgICAgc3lzdGVtRGlza0F1dG9TbmFwc2hvdFBvbGljeUlkOiBwcm9wcy5zeXN0ZW1EaXNrQXV0b1NuYXBzaG90UG9saWN5SWQsXG4gICAgICAgICAgICBuZXR3b3JrVHlwZTogcHJvcHMubmV0d29ya1R5cGUsXG4gICAgICAgICAgICBpcHY2QWRkcmVzc0NvdW50OiBwcm9wcy5pcHY2QWRkcmVzc0NvdW50LFxuICAgICAgICAgICAgc3BvdFByaWNlTGltaXQ6IHByb3BzLnNwb3RQcmljZUxpbWl0LFxuICAgICAgICAgICAgem9uZUlkczogcHJvcHMuem9uZUlkcyxcbiAgICAgICAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgICAgICAgYWxsb2NhdGVQdWJsaWNJcDogcHJvcHMuYWxsb2NhdGVQdWJsaWNJcCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmFsbG9jYXRlUHVibGljSXAgPT09IG51bGwgPyB0cnVlIDogcHJvcHMuYWxsb2NhdGVQdWJsaWNJcCxcbiAgICAgICAgICAgIHNwb3RTdHJhdGVneTogcHJvcHMuc3BvdFN0cmF0ZWd5LFxuICAgICAgICAgICAgcGFzc3dvcmRJbmhlcml0OiBwcm9wcy5wYXNzd29yZEluaGVyaXQsXG4gICAgICAgICAgICBwYXNzd29yZDogcHJvcHMucGFzc3dvcmQsXG4gICAgICAgICAgICBhdXRvUmVuZXdQZXJpb2Q6IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5hdXRvUmVuZXdQZXJpb2QsXG4gICAgICAgICAgICBrZXlQYWlyTmFtZTogcHJvcHMua2V5UGFpck5hbWUsXG4gICAgICAgICAgICBpb09wdGltaXplZDogcHJvcHMuaW9PcHRpbWl6ZWQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pb09wdGltaXplZCA9PT0gbnVsbCA/ICdvcHRpbWl6ZWQnIDogcHJvcHMuaW9PcHRpbWl6ZWQsXG4gICAgICAgICAgICB6b25lSWQ6IHByb3BzLnpvbmVJZCxcbiAgICAgICAgICAgIGhwY0NsdXN0ZXJJZDogcHJvcHMuaHBjQ2x1c3RlcklkLFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkOiBwcm9wcy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICAgICBkZXBsb3ltZW50U2V0R3JvdXBObzogcHJvcHMuZGVwbG95bWVudFNldEdyb3VwTm8sXG4gICAgICAgICAgICBzeXN0ZW1EaXNrQ2F0ZWdvcnk6IHByb3BzLnN5c3RlbURpc2tDYXRlZ29yeSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnN5c3RlbURpc2tDYXRlZ29yeSA9PT0gbnVsbCA/ICdjbG91ZF9lZmZpY2llbmN5JyA6IHByb3BzLnN5c3RlbURpc2tDYXRlZ29yeSxcbiAgICAgICAgICAgIHN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQ6IHByb3BzLnN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQsXG4gICAgICAgICAgICBlbmlNYXBwaW5nczogcHJvcHMuZW5pTWFwcGluZ3MsXG4gICAgICAgICAgICBodHRwVG9rZW5zOiBwcm9wcy5odHRwVG9rZW5zLFxuICAgICAgICAgICAgY3JlZGl0U3BlY2lmaWNhdGlvbjogcHJvcHMuY3JlZGl0U3BlY2lmaWNhdGlvbixcbiAgICAgICAgfSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgJiYgdGhpcy5zdGFjay5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgICAgIHRoaXMucmVzb3VyY2UgPSByb3NJbnN0YW5jZUdyb3VwO1xuICAgICAgICB0aGlzLmF0dHJIb3N0TmFtZXMgPSByb3NJbnN0YW5jZUdyb3VwLmF0dHJIb3N0TmFtZXM7XG4gICAgICAgIHRoaXMuYXR0cklubmVySXBzID0gcm9zSW5zdGFuY2VHcm91cC5hdHRySW5uZXJJcHM7XG4gICAgICAgIHRoaXMuYXR0ckluc3RhbmNlSWRzID0gcm9zSW5zdGFuY2VHcm91cC5hdHRySW5zdGFuY2VJZHM7XG4gICAgICAgIHRoaXMuYXR0cklwdjZBZGRyZXNzSWRzID0gcm9zSW5zdGFuY2VHcm91cC5hdHRySXB2NkFkZHJlc3NJZHM7XG4gICAgICAgIHRoaXMuYXR0cklwdjZBZGRyZXNzZXMgPSByb3NJbnN0YW5jZUdyb3VwLmF0dHJJcHY2QWRkcmVzc2VzO1xuICAgICAgICB0aGlzLmF0dHJPcmRlcklkID0gcm9zSW5zdGFuY2VHcm91cC5hdHRyT3JkZXJJZDtcbiAgICAgICAgdGhpcy5hdHRyUHJpdmF0ZUlwcyA9IHJvc0luc3RhbmNlR3JvdXAuYXR0clByaXZhdGVJcHM7XG4gICAgICAgIHRoaXMuYXR0clB1YmxpY0lwcyA9IHJvc0luc3RhbmNlR3JvdXAuYXR0clB1YmxpY0lwcztcbiAgICAgICAgdGhpcy5hdHRyWm9uZUlkcyA9IHJvc0luc3RhbmNlR3JvdXAuYXR0clpvbmVJZHM7XG4gICAgfVxufVxuIl19
@@ -2,7 +2,8 @@ import * as ros from '@alicloud/ros-cdk-core';
2
2
  import { RosInstanceGroupClone } from './ecs.generated';
3
3
  export { RosInstanceGroupClone as InstanceGroupCloneProperty };
4
4
  /**
5
- * Properties for defining a `ALIYUN::ECS::InstanceGroupClone`
5
+ * Properties for defining a `InstanceGroupClone`.
6
+ * See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instancegroupclone
6
7
  */
7
8
  export interface InstanceGroupCloneProps {
8
9
  /**
@@ -125,7 +126,7 @@ export interface InstanceGroupCloneProps {
125
126
  */
126
127
  readonly period?: number | ros.IResolvable;
127
128
  /**
128
- * Property periodUnit: Unit of prepaid time period, it could be Week/Month/Year. Default value is Month.Old instances will not be changed.
129
+ * Property periodUnit: Unit of prepaid time period, it could be Week\/Month\/Year. Default value is Month.Old instances will not be changed.
129
130
  */
130
131
  readonly periodUnit?: string | ros.IResolvable;
131
132
  /**
@@ -143,7 +144,7 @@ export interface InstanceGroupCloneProps {
143
144
  /**
144
145
  * Property securityGroupIds: The IDs of security groups N to which the instance belongs. The valid values of N are based on the maximum number of security groups to which an instance can belong. For more information, see Security group limits.Note: You cannot specify both SecurityGroupId and SecurityGroupIds at the same time.
145
146
  */
146
- readonly securityGroupIds?: Array<any | ros.IResolvable> | ros.IResolvable;
147
+ readonly securityGroupIds?: Array<string | ros.IResolvable> | ros.IResolvable;
147
148
  /**
148
149
  * Property spotPriceLimit: The hourly price threshold of a instance, and it takes effect only when parameter InstanceChargeType is PostPaid. Three decimals is allowed at most.
149
150
  */
@@ -217,13 +218,11 @@ export interface InstanceGroupCloneProps {
217
218
  readonly zoneId?: string | ros.IResolvable;
218
219
  }
219
220
  /**
220
- * A ROS resource type: `ALIYUN::ECS::InstanceGroupClone`
221
+ * This class encapsulates and extends the ROS resource type `ALIYUN::ECS::InstanceGroupClone`, which is used to create clones of an Elastic Compute Service (ECS) instance.
222
+ * @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstanceGroupClone`for a more convenient development experience.
223
+ * See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instancegroupclone
221
224
  */
222
225
  export declare class InstanceGroupClone extends ros.Resource {
223
- /**
224
- * A factory method that creates a new instance of this class from an object
225
- * containing the properties of this ROS resource, which will be assigned to ROS resource.
226
- */
227
226
  /**
228
227
  * Attribute HostNames: Host names of created instances.
229
228
  */
@@ -261,8 +260,6 @@ export declare class InstanceGroupClone extends ros.Resource {
261
260
  */
262
261
  readonly attrZoneIds: ros.IResolvable;
263
262
  /**
264
- * Create a new `ALIYUN::ECS::InstanceGroupClone`.
265
- *
266
263
  * Param scope - scope in which this resource is defined
267
264
  * Param id - scoped id of the resource
268
265
  * Param props - resource properties
@@ -5,12 +5,12 @@ const ros = require("@alicloud/ros-cdk-core");
5
5
  const ecs_generated_1 = require("./ecs.generated");
6
6
  Object.defineProperty(exports, "InstanceGroupCloneProperty", { enumerable: true, get: function () { return ecs_generated_1.RosInstanceGroupClone; } });
7
7
  /**
8
- * A ROS resource type: `ALIYUN::ECS::InstanceGroupClone`
8
+ * This class encapsulates and extends the ROS resource type `ALIYUN::ECS::InstanceGroupClone`, which is used to create clones of an Elastic Compute Service (ECS) instance.
9
+ * @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstanceGroupClone`for a more convenient development experience.
10
+ * See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instancegroupclone
9
11
  */
10
12
  class InstanceGroupClone extends ros.Resource {
11
13
  /**
12
- * Create a new `ALIYUN::ECS::InstanceGroupClone`.
13
- *
14
14
  * Param scope - scope in which this resource is defined
15
15
  * Param id - scoped id of the resource
16
16
  * Param props - resource properties
@@ -78,4 +78,4 @@ class InstanceGroupClone extends ros.Resource {
78
78
  }
79
79
  }
80
80
  exports.InstanceGroupClone = InstanceGroupClone;
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2Vncm91cGNsb25lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zdGFuY2Vncm91cGNsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE4QztBQUM5QyxtREFBd0Q7QUFFdEIsMkdBRnpCLHFDQUFxQixPQUU4QjtBQXdRNUQ7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBb0RoRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQThCLEVBQUUsbUNBQTJDLElBQUk7UUFDekgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLHFCQUFxQixHQUFHLElBQUkscUNBQXFCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUMvRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxxQkFBcUIsRUFBRSxLQUFLLENBQUMscUJBQXFCO1lBQ2xELHlCQUF5QixFQUFFLEtBQUssQ0FBQyx5QkFBeUI7WUFDMUQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ2hHLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDOUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLDhCQUE4QixFQUFFLEtBQUssQ0FBQyw4QkFBOEI7WUFDcEUsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLDBCQUEwQjtZQUM1RCxXQUFXLEVBQUUsS0FB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O1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7UUFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUM7UUFDN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztJQUN6RCxDQUFDO0NBQ0o7QUF6SEQsZ0RBeUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zSW5zdGFuY2VHcm91cENsb25lIH0gZnJvbSAnLi9lY3MuZ2VuZXJhdGVkJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zSW5zdGFuY2VHcm91cENsb25lIGFzIEluc3RhbmNlR3JvdXBDbG9uZVByb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgQUxJWVVOOjpFQ1M6Okluc3RhbmNlR3JvdXBDbG9uZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZUdyb3VwQ2xvbmVQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBtYXhBbW91bnQ6IE1heCBudW1iZXIgb2YgaW5zdGFuY2VzIHRvIGNyZWF0ZSwgc2hvdWxkIGJlIGJpZ2dlciB0aGFuICdNaW5BbW91bnQnIGFuZCBzbWFsbGVyIHRoYW4gMTAwMC5cbiAgICAgKi9cbiAgICByZWFkb25seSBtYXhBbW91bnQ6IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNvdXJjZUluc3RhbmNlSWQ6IFNvdXJjZSBlY3MgaW5zdGFuY2UgdXNlZCB0byBjb3B5IHByb3BlcnRpZXMgdG8gY2xvbmUgbmV3IGVjcyBpbnN0YW5jZS4gSXQgd2lsbCBjb3B5IHRoZSBJbnN0YW5jZVR5cGUsIEltYWdlSWQsIEludGVybmV0Q2hhcmdlVHlwZSwgSW50ZXJuZXRNYXhCYW5kd2lkdGhJbiwgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgYW5kIHRoZSBzeXN0ZW0gZGlzayBhbmQgZGF0YSBkaXNrIGNvbmZpZ3VyYXRpb25zLiBJZiB0aGUgaW5zdGFuY2UgbmV0d29yayBpcyBWUEMsIGl0IHdpbGwgYWxzbyBjbG9uZSB0aGUgcmVsYXRpdmUgcHJvcGVydGllcy4gSWYgc3BlY2lmaWVkIGluc3RhbmNlIHdpdGggbW9yZSB0aGFuIG9uZSBzZWN1cml0eSBncm91cCwgaXQgd2lsbCB1c2UgdGhlIGZpcnN0IHNlY3VyaXR5IGdyb3VwIHRvIGNyZWF0ZSBpbnN0YW5jZS4geW91IGNhbiBhbHNvIHNwZWNpZnkgdGhlIFNlY3VyaXR5R3JvdXBJZCB0byBvdmVycmlkZSBpdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzb3VyY2VJbnN0YW5jZUlkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVsZWFzZVRpbWU6IEF1dG8gcmVsZWFzZSB0aW1lIGZvciBjcmVhdGVkIGluc3RhbmNlLCBGb2xsb3cgSVNPODYwMSBzdGFuZGFyZCB1c2luZyBVVEMgdGltZS4gZm9ybWF0IGlzICd5eXl5LU1NLWRkVEhIOm1tOnNzWicuIE5vdCBiaWdnZXIgdGhhbiAzIHllYXJzIGZyb20gdGhpcyBkYXkgb253YXJkc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGF1dG9SZWxlYXNlVGltZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGF1dG9SZW5ldzogV2hldGhlciByZW5ldyB0aGUgZmVlIGF1dG9tYXRpY2FsbHk/IFdoZW4gdGhlIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUHJlUGFpZCwgaXQgd2lsbCB0YWtlIGVmZmVjdC4gUmFuZ2Ugb2YgdmFsdWU6VHJ1ZTogYXV0b21hdGljIHJlbmV3YWwuRmFsc2U6IG5vIGF1dG9tYXRpYyByZW5ld2FsLiBEZWZhdWx0IHZhbHVlIGlzIEZhbHNlLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBhdXRvUmVuZXc/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXdQZXJpb2Q6IFRoZSB0aW1lIHBlcmlvZCBvZiBhdXRvIHJlbmV3LiBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuSXQgY291bGQgYmUgMSwgMiwgMywgNiwgMTIsIDI0LCAzNiwgNDgsIDYwLiBEZWZhdWx0IHZhbHVlIGlzIDEuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGF1dG9SZW5ld1BlcmlvZD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGJhY2tlbmRTZXJ2ZXJXZWlnaHQ6IFRoZSB3ZWlnaHQgb2YgYmFja2VuZCBzZXJ2ZXIgb2YgbG9hZCBiYWxhbmNlci4gRnJvbSAwIHRvIDEwMCwgMCBtZWFucyBvZmZsaW5lLiBEZWZhdWx0IGlzIDEwMC5cbiAgICAgKi9cbiAgICByZWFkb25seSBiYWNrZW5kU2VydmVyV2VpZ2h0PzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVsZXRpb25Qcm90ZWN0aW9uOiBXaGV0aGVyIGFuIGluc3RhbmNlIGNhbiBiZSByZWxlYXNlZCBtYW51YWxseSB0aHJvdWdoIHRoZSBjb25zb2xlIG9yIEFQSSwgZGVsZXRpb24gcHJvdGVjdGlvbiBvbmx5IHN1cHBvcnQgcG9zdFBhaWQgaW5zdGFuY2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVwbG95bWVudFNldElkOiBEZXBsb3ltZW50IHNldCBJRC4gVGhlIGNoYW5nZSBvZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXBsb3ltZW50U2V0SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogRGVzY3JpcHRpb24gb2YgdGhlIGluc3RhbmNlLCBbMiwgMjU2XSBjaGFyYWN0ZXJzLiBEbyBub3QgZmlsbCBvciBlbXB0eSwgdGhlIGRlZmF1bHQgaXMgZW1wdHkuIE9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRpc2tNYXBwaW5nczogRGlzayBtYXBwaW5ncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDE2IGRpc2tzLlxuICAgICAqIElmIHRoZSBpbWFnZSBjb250YWlucyBhIGRhdGEgZGlzaywgeW91IGNhbiBzcGVjaWZ5IG90aGVyIHBhcmFtZXRlcnMgb2YgdGhlIGRhdGEgZGlzayB2aWEgdGhlIHNhbWUgdmFsdWUgb2YgcGFyYW1ldGVyIFwiRGV2aWNlXCIuIElmIHBhcmFtZXRlciBcIkNhdGVnb3J5XCIgaXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBiZSBjbG91ZF9lZmZpY2llbmN5IGluc3RlYWQgb2YgXCJDYXRlZ29yeVwiIG9mIGRhdGEgZGlzayBpbiB0aGUgaW1hZ2UuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2tNYXBwaW5ncz86IEFycmF5PFJvc0luc3RhbmNlR3JvdXBDbG9uZS5EaXNrTWFwcGluZ3NQcm9wZXJ0eSB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBlbmlNYXBwaW5nczogTmV0d29ya0ludGVyZmFjZSB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDEgRU5JLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuaU1hcHBpbmdzPzogQXJyYXk8Um9zSW5zdGFuY2VHcm91cENsb25lLkVuaU1hcHBpbmdzUHJvcGVydHkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaHBjQ2x1c3RlcklkOiBUaGUgSFBDIGNsdXN0ZXIgSUQgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuVGhlIGNoYW5nZSBvZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBocGNDbHVzdGVySWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbWFnZUlkOiBJbWFnZSBJRCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGltYWdlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZU5hbWU6IERpc3BsYXkgbmFtZSBvZiB0aGUgaW5zdGFuY2UsIFsyLCAxMjhdIEVuZ2xpc2ggb3IgQ2hpbmVzZSBjaGFyYWN0ZXJzLCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IgQ2hpbmVzZSBpbiBzaXplLCBjYW4gY29udGFpbiBudW1iZXJzLCAnXycgb3IgJy4nLCAnLScuIFxuICAgICAqIFN1cHBvcnQgdG8gdXNlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2V0IHRoZSBkaWZmZXJlbnQgaW5zdGFuY2UgbmFtZSBmb3IgZWFjaCBFQ1MgaW5zdGFuY2UuIEluc3RhbmNlTmFtZSBjb3VsZCBiZSBzcGVjaWZpZWQgYXMgJ25hbWVfcHJlZml4W2JlZ2luX251bWJlcixiaXRzXW5hbWVfc3VmZml4Jywgc3VjaCBhcyAndGVzdGluc3RhbmNlWzEyMyw0XXRhaWwnLiBJZiB5b3UgY3JlYXRlcyAzIGluc3RhbmNlcyB3aXRoIHRoZSBpbnN0YW5jZSBuYW1lICd0ZXN0aW5zdGFuY2VbMTIzLDRddGFpbCcsIGFsbCB0aGUgaW5zdGFuY2VzJyBuYW1lcyBhcmUgdGVzdGluc3RhbmNlMDEyM3RhaWwsIHRlc3RpbnN0YW5jZTAxMjR0YWlsLCB0ZXN0aW5zdGFuY2UwMTI1dGFpbC4gXG4gICAgICogVGhlICduYW1lX3ByZWZpeFtiZWdpbl9udW1iZXIsYml0c11uYW1lX3N1ZmZpeCcgc2hvdWxkIGZvbGxvdyB0aG9zZSBydWxlczogXG4gICAgICogMS4gJ25hbWVfcHJlZml4JyBpcyByZXF1aXJlZC4gXG4gICAgICogMi4gJ25hbWVfc3VmZml4JyBpcyBvcHRpb25hbC4gXG4gICAgICogMy4gVGhlIG5hbWUgcmVndWxhciBleHByZXNzaW9uIGNhbid0IGluY2x1ZGUgYW55IHNwYWNlcy4gXG4gICAgICogNC4gVGhlICdiaXRzJyBtdXN0IGJlIGluIHJhbmdlIFsxLCA2XS4gXG4gICAgICogNS4gVGhlICdiZWdpbl9udW1iZXInIG11c3QgYmUgaW4gcmFuZ2UgWzAsIDk5OTk5OV0uIFxuICAgICAqIDYuIFlvdSBjb3VsZCBvbmx5IHNwZWNpZnkgJ2JlZ2luX251bWJlcicuIFRoZSAnYml0cycgd2lsbCBiZSBzZXQgYXMgNiBieSBkZWZhdWx0LiBcbiAgICAgKiA3LiBZb3UgYWxzbyBjb3VsZCBvbmx5IHNwZWNpZnkgdGhlIFtdIG9yIFssXS4gVGhlICdiZWdpbl9udW1iZXInIHdpbGwgYmUgc2V0IGFzIDAgYnkgZGVmYXVsdCwgdGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIDguIElmIHRoZSBiaXRzIG9mICdiZWdpbl9udW1iZXInIGlzIGxlc3MgdGhhbiB0aGUgJ2JpdHMnIHlvdSBzcGVjaWZpZWQsIGxpa2UgWzEyMzQsMV0sIHRoZSAnYml0cycgd2lsbCBiZSBzZXQgYXMgNiBieSBkZWZhdWx0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGludGVybmV0TWF4QmFuZHdpZHRoSW46IE1heCBpbnRlcm5ldCBvdXQgYmFuZCB3aWR0aCBzZXR0aW5nLCB1bml0IGluIE1icHMoTWVnYSBiaXQgcGVyIHNlY29uZCkuIFRoZSByYW5nZSBpcyBbMCwyMDBdLCBkZWZhdWx0IGlzIDIwMCBNYnBzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0TWF4QmFuZHdpZHRoSW4/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnRlcm5ldE1heEJhbmR3aWR0aE91dDogU2V0IGludGVybmV0IG91dHB1dCBiYW5kd2lkdGggb2YgaW5zdGFuY2UuIFVuaXQgaXMgTWJwcyhNZWdhIGJpdCBwZXIgc2Vjb25kKS4gUmFuZ2UgaXMgWzAsMjAwXS4gRGVmYXVsdCBpcyAxLldoaWxlIHRoZSBwcm9wZXJ0eSBpcyBub3QgMCwgcHVibGljIGlwIHdpbGwgYmUgYXNzaWduZWQgZm9yIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0TWF4QmFuZHdpZHRoT3V0PzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaXB2NkFkZHJlc3NDb3VudDogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcmFuZG9tbHkgZ2VuZXJhdGVkIElQdjYgYWRkcmVzc2VzIGZvciB0aGUgZWxhc3RpYyBOSUMuXG4gICAgICogTm90ZSBZb3UgY2Fubm90IHNwZWNpZnkgdGhlIHBhcmFtZXRlcnMgSXB2NkFkZHJlc3NlcyBhbmQgSXB2NkFkZHJlc3NDb3VudCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgICAqIFRoZSBjaGFuZ2Ugb2YgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXB2NkFkZHJlc3NDb3VudD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGlwdjZBZGRyZXNzZXM6IFNwZWNpZnkgb25lIG9yIG1vcmUgSVB2NiBhZGRyZXNzZXMgZm9yIHRoZSBlbGFzdGljIE5JQy4gQ3VycmVudGx5LCB0aGUgbWF4aW11bSBsaXN0IHNpemUgaXMgMS4gRXhhbXBsZSB2YWx1ZTogMjAwMTpkYjg6MTIzNDoxYTAwOjoqKiogLlxuICAgICAqIE5vdGUgWW91IGNhbm5vdCBzcGVjaWZ5IHRoZSBwYXJhbWV0ZXJzIElwdjZBZGRyZXNzZXMgYW5kIElwdjZBZGRyZXNzQ291bnQgYXQgdGhlIHNhbWUgdGltZS5cbiAgICAgKiBUaGUgY2hhbmdlIG9mIHRoZSBwcm9wZXJ0eSBkb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlwdjZBZGRyZXNzZXM/OiBBcnJheTxhbnkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkga2V5UGFpck5hbWU6IFNTSCBrZXkgcGFpciBuYW1lLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlQYWlyTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGxhdW5jaFRlbXBsYXRlSWQ6IElEIG9mIGxhdW5jaCB0ZW1wbGF0ZS4gTGF1bmNoIHRlbXBsYXRlIGlkIG9yIG5hbWUgbXVzdCBiZSBzcGVjaWZpZWQgdG8gdXNlIGxhdW5jaCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBsYXVuY2hUZW1wbGF0ZU5hbWU6IE5hbWUgb2YgbGF1bmNoIHRlbXBsYXRlLiBMYXVuY2ggdGVtcGxhdGUgaWQgb3IgbmFtZSBtdXN0IGJlIHNwZWNpZmllZCB0byB1c2UgbGF1bmNoIHRlbXBsYXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbGF1bmNoVGVtcGxhdGVWZXJzaW9uOiBWZXJzaW9uIG9mIGxhdW5jaCB0ZW1wbGF0ZS4gRGVmYXVsdCB2ZXJzaW9uIGlzIHVzZWQgaWYgdmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlVmVyc2lvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGxvYWRCYWxhbmNlcklkVG9BdHRhY2g6IEFmdGVyIHRoZSBpbnN0YW5jZSBpcyBjcmVhdGVkLiBBdXRvbWF0aWMgYXR0YWNoIGl0IHRvIHRoZSBsb2FkIGJhbGFuY2VyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxvYWRCYWxhbmNlcklkVG9BdHRhY2g/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwYXNzd29yZDogUGFzc3dvcmQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE11c3QgY29udGFpbiBhdCBsZWFzdCAzIHR5cGVzIG9mIHNwZWNpYWwgY2hhcmFjdGVyLCBsb3dlciBjaGFyYWN0ZXIsIHVwcGVyIGNoYXJhY3RlciwgbnVtYmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhc3N3b3JkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGFzc3dvcmRJbmhlcml0OiBTcGVjaWZpZXMgd2hldGhlciB0byB1c2UgdGhlIHBhc3N3b3JkIHByZXNldCBpbiB0aGUgaW1hZ2UuIFRvIHVzZSB0aGUgUGFzc3dvcmRJbmhlcml0IHBhcmFtZXRlciwgdGhlIFBhc3N3b3JkIHBhcmFtZXRlciBtdXN0IGJlIGVtcHR5IGFuZCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGUgc2VsZWN0ZWQgaW1hZ2UgaGFzIGEgcGFzc3dvcmQgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXNzd29yZEluaGVyaXQ/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVyaW9kOiBQcmVwYWlkIHRpbWUgcGVyaW9kLiBVbml0IGlzIG1vbnRoLCBpdCBjb3VsZCBiZSBmcm9tIDEgdG8gOSBvciAxMiwgMjQsIDM2LCA0OCwgNjAuIERlZmF1bHQgdmFsdWUgaXMgMS5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGVyaW9kPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVyaW9kVW5pdDogVW5pdCBvZiBwcmVwYWlkIHRpbWUgcGVyaW9kLCBpdCBjb3VsZCBiZSBXZWVrL01vbnRoL1llYXIuIERlZmF1bHQgdmFsdWUgaXMgTW9udGguT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBlcmlvZFVuaXQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByYW1Sb2xlTmFtZTogSW5zdGFuY2UgUkFNIHJvbGUgbmFtZS4gVGhlIG5hbWUgaXMgcHJvdmlkZWQgYW5kIG1haW50YWluZWQgYnkgUmVzb3VyY2UgQWNjZXNzIE1hbmFnZW1lbnQgKFJBTSkgYW5kIGNhbiBiZSBxdWVyaWVkIHVzaW5nIExpc3RSb2xlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBSQU0gQVBJIENyZWF0ZVJvbGUgYW5kIExpc3RSb2xlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSByYW1Sb2xlTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHJlc291cmNlR3JvdXBJZDogUmVzb3VyY2UgZ3JvdXAgaWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjdXJpdHlHcm91cElkOiBTZWN1cml0eSBncm91cCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLiBGb3IgY2xhc3NpYyBpbnN0YW5jZSBuZWVkIHRoZSBzZWN1cml0eSBncm91cCBub3QgYmVsb25nIHRvIFZQQywgZm9yIFZQQyBpbnN0YW5jZSwgcGxlYXNlIG1ha2Ugc3VyZSB0aGUgc2VjdXJpdHkgZ3JvdXAgYmVsb25nIHRvIHNwZWNpZmllZCBWUEMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjdXJpdHlHcm91cElkczogVGhlIElEcyBvZiBzZWN1cml0eSBncm91cHMgTiB0byB3aGljaCB0aGUgaW5zdGFuY2UgYmVsb25ncy4gVGhlIHZhbGlkIHZhbHVlcyBvZiBOIGFyZSBiYXNlZCBvbiB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc2VjdXJpdHkgZ3JvdXBzIHRvIHdoaWNoIGFuIGluc3RhbmNlIGNhbiBiZWxvbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgU2VjdXJpdHkgZ3JvdXAgbGltaXRzLk5vdGU6IFlvdSBjYW5ub3Qgc3BlY2lmeSBib3RoIFNlY3VyaXR5R3JvdXBJZCBhbmQgU2VjdXJpdHlHcm91cElkcyBhdCB0aGUgc2FtZSB0aW1lLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZHM/OiBBcnJheTxhbnkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdFByaWNlTGltaXQ6IFRoZSBob3VybHkgcHJpY2UgdGhyZXNob2xkIG9mIGEgaW5zdGFuY2UsIGFuZCBpdCB0YWtlcyBlZmZlY3Qgb25seSB3aGVuIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUG9zdFBhaWQuIFRocmVlIGRlY2ltYWxzIGlzIGFsbG93ZWQgYXQgbW9zdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90UHJpY2VMaW1pdD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3RTdHJhdGVneTogVGhlIHNwb3Qgc3RyYXRlZ3kgb2YgYSBQYXktQXMtWW91LUdvIGluc3RhbmNlLCBhbmQgaXQgdGFrZXMgZWZmZWN0IG9ubHkgd2hlbiBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFBvc3RQYWlkLiBWYWx1ZSByYW5nZTogXCJOb1Nwb3Q6IEEgcmVndWxhciBQYXktQXMtWW91LUdvIGluc3RhbmNlXCIsIFwiU3BvdFdpdGhQcmljZUxpbWl0OiBBIHByaWNlIHRocmVzaG9sZCBmb3IgYSBzcG90IGluc3RhbmNlLCBcIlwiU3BvdEFzUHJpY2VHbzogQSBwcmljZSB0aGF0IGlzIGJhc2VkIG9uIHRoZSBoaWdoZXN0IFBheS1Bcy1Zb3UtR28gaW5zdGFuY2UuIFwiRGVmYXVsdCB2YWx1ZTogTm9TcG90LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwb3RTdHJhdGVneT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tBdXRvU25hcHNob3RQb2xpY3lJZDogQXV0byBzbmFwc2hvdCBwb2xpY3kgSUQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0F1dG9TbmFwc2hvdFBvbGljeUlkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0J1cnN0aW5nRW5hYmxlZDogV2hldGhlciBlbmFibGUgYnVyc3RpbmcuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0J1cnN0aW5nRW5hYmxlZD86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrQ2F0ZWdvcnk6IENhdGVnb3J5IG9mIHN5c3RlbSBkaXNrLiBEZWZhdWx0IGlzIGNsb3VkX2VmZmljaWVuY3kuIHN1cHBvcnQgY2xvdWR8Y2xvdWRfZWZmaWNpZW5jeXxjbG91ZF9zc2R8Y2xvdWRfZXNzZHxlcGhlbWVyYWxfc3NkfGNsb3VkX2F1dG98Y2xvdWRfZXNzZF9lbnRyeS5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0NhdGVnb3J5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0Rlc2NyaXB0aW9uOiBEZXNjcmlwdGlvbiBvZiBjcmVhdGVkIHN5c3RlbSBkaXNrLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrRGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrRGlza05hbWU6IE5hbWUgb2YgY3JlYXRlZCBzeXN0ZW0gZGlzay5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0Rpc2tOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0VuY3J5cHRBbGdvcml0aG06IFRoZSBhbGdvcml0aG0gdG8gdXNlIHRvIGVuY3J5cHQgdGhlIHN5c3RlbSBkaXNrLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSBhc2UtMjU2XG4gICAgICogLSBzbTQtMTI4XG4gICAgICogRGVmYXVsdCB2YWx1ZTogYXNlLTI1Ni5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrRW5jcnlwdEFsZ29yaXRobT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tFbmNyeXB0ZWQ6IFNwZWNpZmllcyB3aGV0aGVyIHRvIGVuY3J5cHQgdGhlIHN5c3RlbSBkaXNrLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSB0cnVlOiBlbmNyeXB0cyB0aGUgc3lzdGVtIGRpc2suXG4gICAgICogLSBmYWxzZTogZG9lcyBub3QgZW5jcnlwdCB0aGUgc3lzdGVtIGRpc2suXG4gICAgICogRGVmYXVsdCB2YWx1ZTogZmFsc2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0VuY3J5cHRlZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tLbXNLZXlJZDogVGhlIElEIG9mIHRoZSBLTVMga2V5IHRvIHVzZSBmb3IgdGhlIHN5c3RlbSBkaXNrLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tLbXNLZXlJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tQcm92aXNpb25lZElvcHM6IFByb3Zpc2lvbmluZyBJT1BTLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tQcm92aXNpb25lZElvcHM/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrU3RvcmFnZUNsdXN0ZXJJZDogVGhlIElEIG9mIHRoZSBkZWRpY2F0ZWQgYmxvY2sgc3RvcmFnZSBjbHVzdGVyLiBJZiB5b3Ugd2FudCB0byB1c2UgZGlza3MgaW4gYSBkZWRpY2F0ZWQgYmxvY2sgc3RvcmFnZSBjbHVzdGVyIGFzIHN5c3RlbSBkaXNrcyB3aGVuIHlvdSBjcmVhdGUgaW5zdGFuY2VzLCB5b3UgbXVzdCBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tTdG9yYWdlQ2x1c3RlcklkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdGFnczogVGFncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDIwIHRhZ3MgdG8gYWRkIGR1cmluZyBjcmVhdGUgaW5zdGFuY2UuIEVhY2ggdGFnIHdpdGggdHdvIHByb3BlcnRpZXMgS2V5IGFuZCBWYWx1ZSwgYW5kIEtleSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB0YWdzPzogUm9zSW5zdGFuY2VHcm91cENsb25lLlRhZ3NQcm9wZXJ0eVtdO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdXBkYXRlUG9saWN5OiBTcGVjaWZ5IHRoZSBwb2xpY3kgYXQgdXBkYXRlLiBcbiAgICAgKiBUaGUgdmFsdWUgY2FuIGJlICdGb3JOZXdJbnN0YW5jZXMnIG9yICdGb3JBbGxJbnN0YW5jZXMnLlxuICAgICAqIElmIFVwZGF0ZVBvbGljeSBpcyAnRm9yQWxsSW5zdGFuY2UnLCBUaGUgdXBkYXRhYmxlIHBhcmFtZXRlcnMgYXJlIEluc3RhbmNlVHlwZSwgSW1hZ2VJZCwgU3lzdGVtRGlza1NpemUsIFN5c3RlbURpc2tDYXRlZ29yeSwgUGFzc3dvcmQsIFVzZXJEYXRhLEludGVybmV0Q2hhcmdlVHlwZSwgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQsIEludGVybmV0TWF4QmFuZHdpZHRoSW4uXG4gICAgICogVGhlIGRlZmF1bHQgaXMgJ0Zvck5ld0luc3RhbmNlcydcbiAgICAgKi9cbiAgICByZWFkb25seSB1cGRhdGVQb2xpY3k/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB6b25lSWQ6IFRoZSBJRCBvZiB0aGUgem9uZSB0byB3aGljaCB0aGUgaW5zdGFuY2UgYmVsb25ncy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIFxuICAgICAqIGNhbGwgdGhlIERlc2NyaWJlWm9uZXMgb3BlcmF0aW9uIHRvIHF1ZXJ5IHRoZSBtb3N0IHJlY2VudCB6b25lIGxpc3QuIFxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgZW1wdHksIHdoaWNoIG1lYW5zIHJhbmRvbSBzZWxlY3Rpb24uXG4gICAgICovXG4gICAgcmVhZG9ubHkgem9uZUlkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xufVxuXG4vKipcbiAqIEEgUk9TIHJlc291cmNlIHR5cGU6ICBgQUxJWVVOOjpFQ1M6Okluc3RhbmNlR3JvdXBDbG9uZWBcbiAqL1xuZXhwb3J0IGNsYXNzIEluc3RhbmNlR3JvdXBDbG9uZSBleHRlbmRzIHJvcy5SZXNvdXJjZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGZyb20gYW4gb2JqZWN0XG4gICAgICogY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIFJPUyByZXNvdXJjZSwgd2hpY2ggd2lsbCBiZSBhc3NpZ25lZCB0byBST1MgcmVzb3VyY2UuXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSG9zdE5hbWVzOiBIb3N0IG5hbWVzIG9mIGNyZWF0ZWQgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySG9zdE5hbWVzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSW5uZXJJcHM6IElubmVyIElQIGFkZHJlc3MgbGlzdCBvZiB0aGUgc3BlY2lmaWVkIGluc3RhbmNlcy4gT25seSBmb3IgY2xhc3NpY2FsIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklubmVySXBzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSW5zdGFuY2VJZHM6IFRoZSBpbnN0YW5jZSBpZCBsaXN0IG9mIGNyZWF0ZWQgZWNzIGluc3RhbmNlc1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySW5zdGFuY2VJZHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJcHY2QWRkcmVzc0lkczogSVB2NiBhZGRyZXNzIElEcyBsaXN0IG9mIGNyZWF0ZWQgZWNzIGluc3RhbmNlcy4gTm90ZTogVGhlIHJldHVybiB0eXBlIGlzIGEgdHdvLXRpZXIgbGlzdC5JZiB0aGUgaW5zdGFuY2UgZG9lcyBub3QgaGF2ZSBhbnkgSVB2NiBhZGRyZXNzLCB0aGUgZWxlbWVudCBhdCB0aGUgY29ycmVzcG9uZGluZyBwb3NpdGlvbiBpbiB0aGUgbGlzdCBpcyBudWxsLiBJZiBhbGwgaW5zdGFuY2VzIGRvZXMgbm90IGhhdmUgYW55IElQdiBhZGRyZXNzLCB3aWxsIHJldHVybiBudWxsLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySXB2NkFkZHJlc3NJZHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJcHY2QWRkcmVzc2VzOiBJUHY2IGFkZHJlc3NlcyBsaXN0IG9mIGNyZWF0ZWQgZWNzIGluc3RhbmNlcy4gTm90ZTogVGhlIHJldHVybiB0eXBlIGlzIGEgdHdvLXRpZXIgbGlzdC4gSWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGhhdmUgYW55IElQdjYgYWRkcmVzcywgdGhlIGVsZW1lbnQgYXQgdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gdGhlIGxpc3QgaXMgbnVsbC4gSWYgYWxsIGluc3RhbmNlcyBkb2VzIG5vdCBoYXZlIGFueSBJUHYgYWRkcmVzcywgd2lsbCByZXR1cm4gbnVsbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklwdjZBZGRyZXNzZXM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBPcmRlcklkOiBUaGUgb3JkZXIgaWQgbGlzdCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyT3JkZXJJZDogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFByaXZhdGVJcHM6IFByaXZhdGUgSVAgYWRkcmVzcyBsaXN0IG9mIGNyZWF0ZWQgZWNzIGluc3RhbmNlcy4gT25seSBmb3IgVlBDIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyUHJpdmF0ZUlwczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFB1YmxpY0lwczogUHVibGljIElQIGFkZHJlc3MgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJQdWJsaWNJcHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBab25lSWRzOiBab25lIGlkIG9mIGNyZWF0ZWQgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyWm9uZUlkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgbmV3IGBBTElZVU46OkVDUzo6SW5zdGFuY2VHcm91cENsb25lYC5cbiAgICAgKlxuICAgICAqIFBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogUGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAgICogUGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnN0YW5jZUdyb3VwQ2xvbmVQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6Ym9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICBjb25zdCByb3NJbnN0YW5jZUdyb3VwQ2xvbmUgPSBuZXcgUm9zSW5zdGFuY2VHcm91cENsb25lKHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlza01hcHBpbmdzOiBwcm9wcy5kaXNrTWFwcGluZ3MsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHByb3BzLnJlc291cmNlR3JvdXBJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEZXNjcmlwdGlvbjogcHJvcHMuc3lzdGVtRGlza0Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wczogcHJvcHMuc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wcyxcbiAgICAgICAgICAgIGF1dG9SZW5ldzogcHJvcHMuYXV0b1JlbmV3ID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYXV0b1JlbmV3ID09PSBudWxsID8gJ0ZhbHNlJyA6IHByb3BzLmF1dG9SZW5ldyxcbiAgICAgICAgICAgIGlwdjZBZGRyZXNzZXM6IHByb3BzLmlwdjZBZGRyZXNzZXMsXG4gICAgICAgICAgICBzb3VyY2VJbnN0YW5jZUlkOiBwcm9wcy5zb3VyY2VJbnN0YW5jZUlkLFxuICAgICAgICAgICAgc3lzdGVtRGlza0VuY3J5cHRlZDogcHJvcHMuc3lzdGVtRGlza0VuY3J5cHRlZCxcbiAgICAgICAgICAgIG1heEFtb3VudDogcHJvcHMubWF4QW1vdW50LFxuICAgICAgICAgICAgc3lzdGVtRGlza0F1dG9TbmFwc2hvdFBvbGljeUlkOiBwcm9wcy5zeXN0ZW1EaXNrQXV0b1NuYXBzaG90UG9saWN5SWQsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrRW5jcnlwdEFsZ29yaXRobTogcHJvcHMuc3lzdGVtRGlza0VuY3J5cHRBbGdvcml0aG0sXG4gICAgICAgICAgICByYW1Sb2xlTmFtZTogcHJvcHMucmFtUm9sZU5hbWUsXG4gICAgICAgICAgICBpcHY2QWRkcmVzc0NvdW50OiBwcm9wcy5pcHY2QWRkcmVzc0NvdW50LFxuICAgICAgICAgICAgaW1hZ2VJZDogcHJvcHMuaW1hZ2VJZCxcbiAgICAgICAgICAgIHNwb3RQcmljZUxpbWl0OiBwcm9wcy5zcG90UHJpY2VMaW1pdCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEaXNrTmFtZTogcHJvcHMuc3lzdGVtRGlza0Rpc2tOYW1lLFxuICAgICAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgICAgICAgIHNwb3RTdHJhdGVneTogcHJvcHMuc3BvdFN0cmF0ZWd5LFxuICAgICAgICAgICAgcGFzc3dvcmRJbmhlcml0OiBwcm9wcy5wYXNzd29yZEluaGVyaXQsXG4gICAgICAgICAgICBwYXNzd29yZDogcHJvcHMucGFzc3dvcmQsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrU3RvcmFnZUNsdXN0ZXJJZDogcHJvcHMuc3lzdGVtRGlza1N0b3JhZ2VDbHVzdGVySWQsXG4gICAgICAgICAgICBhdXRvUmVuZXdQZXJpb2Q6IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5hdXRvUmVuZXdQZXJpb2QsXG4gICAgICAgICAgICBiYWNrZW5kU2VydmVyV2VpZ2h0OiBwcm9wcy5iYWNrZW5kU2VydmVyV2VpZ2h0ID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYmFja2VuZFNlcnZlcldlaWdodCA9PT0gbnVsbCA/IDEwMCA6IHByb3BzLmJhY2tlbmRTZXJ2ZXJXZWlnaHQsXG4gICAgICAgICAgICBrZXlQYWlyTmFtZTogcHJvcHMua2V5UGFpck5hbWUsXG4gICAgICAgICAgICBsYXVuY2hUZW1wbGF0ZU5hbWU6IHByb3BzLmxhdW5jaFRlbXBsYXRlTmFtZSxcbiAgICAgICAgICAgIHVwZGF0ZVBvbGljeTogcHJvcHMudXBkYXRlUG9saWN5ID09PSB1bmRlZmluZWQgfHwgcHJvcHMudXBkYXRlUG9saWN5ID09PSBudWxsID8gJ0Zvck5ld0luc3RhbmNlcycgOiBwcm9wcy51cGRhdGVQb2xpY3ksXG4gICAgICAgICAgICB6b25lSWQ6IHByb3BzLnpvbmVJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tLbXNLZXlJZDogcHJvcHMuc3lzdGVtRGlza0ttc0tleUlkLFxuICAgICAgICAgICAgaHBjQ2x1c3RlcklkOiBwcm9wcy5ocGNDbHVzdGVySWQsXG4gICAgICAgICAgICBzZWN1cml0eUdyb3VwSWQ6IHByb3BzLnNlY3VyaXR5R3JvdXBJZCxcbiAgICAgICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kID09PSB1bmRlZmluZWQgfHwgcHJvcHMucGVyaW9kID09PSBudWxsID8gMSA6IHByb3BzLnBlcmlvZCxcbiAgICAgICAgICAgIGxhdW5jaFRlbXBsYXRlSWQ6IHByb3BzLmxhdW5jaFRlbXBsYXRlSWQsXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb3BzLmRlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IHByb3BzLnNlY3VyaXR5R3JvdXBJZHMsXG4gICAgICAgICAgICBsb2FkQmFsYW5jZXJJZFRvQXR0YWNoOiBwcm9wcy5sb2FkQmFsYW5jZXJJZFRvQXR0YWNoLFxuICAgICAgICAgICAgc3lzdGVtRGlza0NhdGVnb3J5OiBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnkgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnkgPT09IG51bGwgPyAnY2xvdWRfZWZmaWNpZW5jeScgOiBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnksXG4gICAgICAgICAgICBpbnN0YW5jZU5hbWU6IHByb3BzLmluc3RhbmNlTmFtZSxcbiAgICAgICAgICAgIGVuaU1hcHBpbmdzOiBwcm9wcy5lbmlNYXBwaW5ncyxcbiAgICAgICAgICAgIHN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQ6IHByb3BzLnN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQsXG4gICAgICAgICAgICBkZXBsb3ltZW50U2V0SWQ6IHByb3BzLmRlcGxveW1lbnRTZXRJZCxcbiAgICAgICAgICAgIGludGVybmV0TWF4QmFuZHdpZHRoT3V0OiBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aE91dCxcbiAgICAgICAgICAgIGludGVybmV0TWF4QmFuZHdpZHRoSW46IHByb3BzLmludGVybmV0TWF4QmFuZHdpZHRoSW4gPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aEluID09PSBudWxsID8gMjAwIDogcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhJbixcbiAgICAgICAgICAgIGxhdW5jaFRlbXBsYXRlVmVyc2lvbjogcHJvcHMubGF1bmNoVGVtcGxhdGVWZXJzaW9uLFxuICAgICAgICAgICAgcGVyaW9kVW5pdDogcHJvcHMucGVyaW9kVW5pdCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlcmlvZFVuaXQgPT09IG51bGwgPyAnTW9udGgnIDogcHJvcHMucGVyaW9kVW5pdCxcbiAgICAgICAgICAgIGF1dG9SZWxlYXNlVGltZTogcHJvcHMuYXV0b1JlbGVhc2VUaW1lLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0luc3RhbmNlR3JvdXBDbG9uZTtcbiAgICAgICAgdGhpcy5hdHRySG9zdE5hbWVzID0gcm9zSW5zdGFuY2VHcm91cENsb25lLmF0dHJIb3N0TmFtZXM7XG4gICAgICAgIHRoaXMuYXR0cklubmVySXBzID0gcm9zSW5zdGFuY2VHcm91cENsb25lLmF0dHJJbm5lcklwcztcbiAgICAgICAgdGhpcy5hdHRySW5zdGFuY2VJZHMgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0ckluc3RhbmNlSWRzO1xuICAgICAgICB0aGlzLmF0dHJJcHY2QWRkcmVzc0lkcyA9IHJvc0luc3RhbmNlR3JvdXBDbG9uZS5hdHRySXB2NkFkZHJlc3NJZHM7XG4gICAgICAgIHRoaXMuYXR0cklwdjZBZGRyZXNzZXMgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0cklwdjZBZGRyZXNzZXM7XG4gICAgICAgIHRoaXMuYXR0ck9yZGVySWQgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0ck9yZGVySWQ7XG4gICAgICAgIHRoaXMuYXR0clByaXZhdGVJcHMgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0clByaXZhdGVJcHM7XG4gICAgICAgIHRoaXMuYXR0clB1YmxpY0lwcyA9IHJvc0luc3RhbmNlR3JvdXBDbG9uZS5hdHRyUHVibGljSXBzO1xuICAgICAgICB0aGlzLmF0dHJab25lSWRzID0gcm9zSW5zdGFuY2VHcm91cENsb25lLmF0dHJab25lSWRzO1xuICAgIH1cbn1cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2Vncm91cGNsb25lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zdGFuY2Vncm91cGNsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE4QztBQUM5QyxtREFBd0Q7QUFFdEIsMkdBRnpCLHFDQUFxQixPQUU4QjtBQXlRNUQ7Ozs7R0FJRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUErQ2hEOzs7O09BSUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQThCLEVBQUUsbUNBQTJDLElBQUk7UUFDekgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLHFCQUFxQixHQUFHLElBQUkscUNBQXFCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUMvRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxxQkFBcUIsRUFBRSxLQUFLLENBQUMscUJBQXFCO1lBQ2xELHlCQUF5QixFQUFFLEtBQUssQ0FBQyx5QkFBeUI7WUFDMUQsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ2hHLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDOUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLDhCQUE4QixFQUFFLEtBQUssQ0FBQyw4QkFBOEI7WUFDcEUsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLDBCQUEwQjtZQUM1RCxXQUFXLEVBQUUsS0FB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O1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcscUJBQXFCLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxZQUFZLENBQUM7UUFDdkQsSUFBSSxDQUFDLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUM7UUFDN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDO1FBQ25FLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLGNBQWMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQztRQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztJQUN6RCxDQUFDO0NBQ0o7QUFsSEQsZ0RBa0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zSW5zdGFuY2VHcm91cENsb25lIH0gZnJvbSAnLi9lY3MuZ2VuZXJhdGVkJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zSW5zdGFuY2VHcm91cENsb25lIGFzIEluc3RhbmNlR3JvdXBDbG9uZVByb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgSW5zdGFuY2VHcm91cENsb25lYC5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWVjcy1pbnN0YW5jZWdyb3VwY2xvbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZUdyb3VwQ2xvbmVQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBtYXhBbW91bnQ6IE1heCBudW1iZXIgb2YgaW5zdGFuY2VzIHRvIGNyZWF0ZSwgc2hvdWxkIGJlIGJpZ2dlciB0aGFuICdNaW5BbW91bnQnIGFuZCBzbWFsbGVyIHRoYW4gMTAwMC5cbiAgICAgKi9cbiAgICByZWFkb25seSBtYXhBbW91bnQ6IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNvdXJjZUluc3RhbmNlSWQ6IFNvdXJjZSBlY3MgaW5zdGFuY2UgdXNlZCB0byBjb3B5IHByb3BlcnRpZXMgdG8gY2xvbmUgbmV3IGVjcyBpbnN0YW5jZS4gSXQgd2lsbCBjb3B5IHRoZSBJbnN0YW5jZVR5cGUsIEltYWdlSWQsIEludGVybmV0Q2hhcmdlVHlwZSwgSW50ZXJuZXRNYXhCYW5kd2lkdGhJbiwgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgYW5kIHRoZSBzeXN0ZW0gZGlzayBhbmQgZGF0YSBkaXNrIGNvbmZpZ3VyYXRpb25zLiBJZiB0aGUgaW5zdGFuY2UgbmV0d29yayBpcyBWUEMsIGl0IHdpbGwgYWxzbyBjbG9uZSB0aGUgcmVsYXRpdmUgcHJvcGVydGllcy4gSWYgc3BlY2lmaWVkIGluc3RhbmNlIHdpdGggbW9yZSB0aGFuIG9uZSBzZWN1cml0eSBncm91cCwgaXQgd2lsbCB1c2UgdGhlIGZpcnN0IHNlY3VyaXR5IGdyb3VwIHRvIGNyZWF0ZSBpbnN0YW5jZS4geW91IGNhbiBhbHNvIHNwZWNpZnkgdGhlIFNlY3VyaXR5R3JvdXBJZCB0byBvdmVycmlkZSBpdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzb3VyY2VJbnN0YW5jZUlkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVsZWFzZVRpbWU6IEF1dG8gcmVsZWFzZSB0aW1lIGZvciBjcmVhdGVkIGluc3RhbmNlLCBGb2xsb3cgSVNPODYwMSBzdGFuZGFyZCB1c2luZyBVVEMgdGltZS4gZm9ybWF0IGlzICd5eXl5LU1NLWRkVEhIOm1tOnNzWicuIE5vdCBiaWdnZXIgdGhhbiAzIHllYXJzIGZyb20gdGhpcyBkYXkgb253YXJkc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGF1dG9SZWxlYXNlVGltZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGF1dG9SZW5ldzogV2hldGhlciByZW5ldyB0aGUgZmVlIGF1dG9tYXRpY2FsbHk/IFdoZW4gdGhlIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUHJlUGFpZCwgaXQgd2lsbCB0YWtlIGVmZmVjdC4gUmFuZ2Ugb2YgdmFsdWU6VHJ1ZTogYXV0b21hdGljIHJlbmV3YWwuRmFsc2U6IG5vIGF1dG9tYXRpYyByZW5ld2FsLiBEZWZhdWx0IHZhbHVlIGlzIEZhbHNlLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBhdXRvUmVuZXc/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXdQZXJpb2Q6IFRoZSB0aW1lIHBlcmlvZCBvZiBhdXRvIHJlbmV3LiBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuSXQgY291bGQgYmUgMSwgMiwgMywgNiwgMTIsIDI0LCAzNiwgNDgsIDYwLiBEZWZhdWx0IHZhbHVlIGlzIDEuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGF1dG9SZW5ld1BlcmlvZD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGJhY2tlbmRTZXJ2ZXJXZWlnaHQ6IFRoZSB3ZWlnaHQgb2YgYmFja2VuZCBzZXJ2ZXIgb2YgbG9hZCBiYWxhbmNlci4gRnJvbSAwIHRvIDEwMCwgMCBtZWFucyBvZmZsaW5lLiBEZWZhdWx0IGlzIDEwMC5cbiAgICAgKi9cbiAgICByZWFkb25seSBiYWNrZW5kU2VydmVyV2VpZ2h0PzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVsZXRpb25Qcm90ZWN0aW9uOiBXaGV0aGVyIGFuIGluc3RhbmNlIGNhbiBiZSByZWxlYXNlZCBtYW51YWxseSB0aHJvdWdoIHRoZSBjb25zb2xlIG9yIEFQSSwgZGVsZXRpb24gcHJvdGVjdGlvbiBvbmx5IHN1cHBvcnQgcG9zdFBhaWQgaW5zdGFuY2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVwbG95bWVudFNldElkOiBEZXBsb3ltZW50IHNldCBJRC4gVGhlIGNoYW5nZSBvZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXBsb3ltZW50U2V0SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogRGVzY3JpcHRpb24gb2YgdGhlIGluc3RhbmNlLCBbMiwgMjU2XSBjaGFyYWN0ZXJzLiBEbyBub3QgZmlsbCBvciBlbXB0eSwgdGhlIGRlZmF1bHQgaXMgZW1wdHkuIE9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRpc2tNYXBwaW5nczogRGlzayBtYXBwaW5ncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDE2IGRpc2tzLlxuICAgICAqIElmIHRoZSBpbWFnZSBjb250YWlucyBhIGRhdGEgZGlzaywgeW91IGNhbiBzcGVjaWZ5IG90aGVyIHBhcmFtZXRlcnMgb2YgdGhlIGRhdGEgZGlzayB2aWEgdGhlIHNhbWUgdmFsdWUgb2YgcGFyYW1ldGVyIFwiRGV2aWNlXCIuIElmIHBhcmFtZXRlciBcIkNhdGVnb3J5XCIgaXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBiZSBjbG91ZF9lZmZpY2llbmN5IGluc3RlYWQgb2YgXCJDYXRlZ29yeVwiIG9mIGRhdGEgZGlzayBpbiB0aGUgaW1hZ2UuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2tNYXBwaW5ncz86IEFycmF5PFJvc0luc3RhbmNlR3JvdXBDbG9uZS5EaXNrTWFwcGluZ3NQcm9wZXJ0eSB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBlbmlNYXBwaW5nczogTmV0d29ya0ludGVyZmFjZSB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDEgRU5JLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuaU1hcHBpbmdzPzogQXJyYXk8Um9zSW5zdGFuY2VHcm91cENsb25lLkVuaU1hcHBpbmdzUHJvcGVydHkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaHBjQ2x1c3RlcklkOiBUaGUgSFBDIGNsdXN0ZXIgSUQgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuVGhlIGNoYW5nZSBvZiB0aGUgcHJvcGVydHkgZG9lcyBub3QgYWZmZWN0IGV4aXN0aW5nIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBocGNDbHVzdGVySWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbWFnZUlkOiBJbWFnZSBJRCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGltYWdlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZU5hbWU6IERpc3BsYXkgbmFtZSBvZiB0aGUgaW5zdGFuY2UsIFsyLCAxMjhdIEVuZ2xpc2ggb3IgQ2hpbmVzZSBjaGFyYWN0ZXJzLCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IgQ2hpbmVzZSBpbiBzaXplLCBjYW4gY29udGFpbiBudW1iZXJzLCAnXycgb3IgJy4nLCAnLScuIFxuICAgICAqIFN1cHBvcnQgdG8gdXNlIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gdG8gc2V0IHRoZSBkaWZmZXJlbnQgaW5zdGFuY2UgbmFtZSBmb3IgZWFjaCBFQ1MgaW5zdGFuY2UuIEluc3RhbmNlTmFtZSBjb3VsZCBiZSBzcGVjaWZpZWQgYXMgJ25hbWVfcHJlZml4W2JlZ2luX251bWJlcixiaXRzXW5hbWVfc3VmZml4Jywgc3VjaCBhcyAndGVzdGluc3RhbmNlWzEyMyw0XXRhaWwnLiBJZiB5b3UgY3JlYXRlcyAzIGluc3RhbmNlcyB3aXRoIHRoZSBpbnN0YW5jZSBuYW1lICd0ZXN0aW5zdGFuY2VbMTIzLDRddGFpbCcsIGFsbCB0aGUgaW5zdGFuY2VzJyBuYW1lcyBhcmUgdGVzdGluc3RhbmNlMDEyM3RhaWwsIHRlc3RpbnN0YW5jZTAxMjR0YWlsLCB0ZXN0aW5zdGFuY2UwMTI1dGFpbC4gXG4gICAgICogVGhlICduYW1lX3ByZWZpeFtiZWdpbl9udW1iZXIsYml0c11uYW1lX3N1ZmZpeCcgc2hvdWxkIGZvbGxvdyB0aG9zZSBydWxlczogXG4gICAgICogMS4gJ25hbWVfcHJlZml4JyBpcyByZXF1aXJlZC4gXG4gICAgICogMi4gJ25hbWVfc3VmZml4JyBpcyBvcHRpb25hbC4gXG4gICAgICogMy4gVGhlIG5hbWUgcmVndWxhciBleHByZXNzaW9uIGNhbid0IGluY2x1ZGUgYW55IHNwYWNlcy4gXG4gICAgICogNC4gVGhlICdiaXRzJyBtdXN0IGJlIGluIHJhbmdlIFsxLCA2XS4gXG4gICAgICogNS4gVGhlICdiZWdpbl9udW1iZXInIG11c3QgYmUgaW4gcmFuZ2UgWzAsIDk5OTk5OV0uIFxuICAgICAqIDYuIFlvdSBjb3VsZCBvbmx5IHNwZWNpZnkgJ2JlZ2luX251bWJlcicuIFRoZSAnYml0cycgd2lsbCBiZSBzZXQgYXMgNiBieSBkZWZhdWx0LiBcbiAgICAgKiA3LiBZb3UgYWxzbyBjb3VsZCBvbmx5IHNwZWNpZnkgdGhlIFtdIG9yIFssXS4gVGhlICdiZWdpbl9udW1iZXInIHdpbGwgYmUgc2V0IGFzIDAgYnkgZGVmYXVsdCwgdGhlICdiaXRzJyB3aWxsIGJlIHNldCBhcyA2IGJ5IGRlZmF1bHQuIFxuICAgICAqIDguIElmIHRoZSBiaXRzIG9mICdiZWdpbl9udW1iZXInIGlzIGxlc3MgdGhhbiB0aGUgJ2JpdHMnIHlvdSBzcGVjaWZpZWQsIGxpa2UgWzEyMzQsMV0sIHRoZSAnYml0cycgd2lsbCBiZSBzZXQgYXMgNiBieSBkZWZhdWx0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGludGVybmV0TWF4QmFuZHdpZHRoSW46IE1heCBpbnRlcm5ldCBvdXQgYmFuZCB3aWR0aCBzZXR0aW5nLCB1bml0IGluIE1icHMoTWVnYSBiaXQgcGVyIHNlY29uZCkuIFRoZSByYW5nZSBpcyBbMCwyMDBdLCBkZWZhdWx0IGlzIDIwMCBNYnBzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0TWF4QmFuZHdpZHRoSW4/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnRlcm5ldE1heEJhbmR3aWR0aE91dDogU2V0IGludGVybmV0IG91dHB1dCBiYW5kd2lkdGggb2YgaW5zdGFuY2UuIFVuaXQgaXMgTWJwcyhNZWdhIGJpdCBwZXIgc2Vjb25kKS4gUmFuZ2UgaXMgWzAsMjAwXS4gRGVmYXVsdCBpcyAxLldoaWxlIHRoZSBwcm9wZXJ0eSBpcyBub3QgMCwgcHVibGljIGlwIHdpbGwgYmUgYXNzaWduZWQgZm9yIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0TWF4QmFuZHdpZHRoT3V0PzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaXB2NkFkZHJlc3NDb3VudDogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgcmFuZG9tbHkgZ2VuZXJhdGVkIElQdjYgYWRkcmVzc2VzIGZvciB0aGUgZWxhc3RpYyBOSUMuXG4gICAgICogTm90ZSBZb3UgY2Fubm90IHNwZWNpZnkgdGhlIHBhcmFtZXRlcnMgSXB2NkFkZHJlc3NlcyBhbmQgSXB2NkFkZHJlc3NDb3VudCBhdCB0aGUgc2FtZSB0aW1lLlxuICAgICAqIFRoZSBjaGFuZ2Ugb2YgdGhlIHByb3BlcnR5IGRvZXMgbm90IGFmZmVjdCBleGlzdGluZyBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaXB2NkFkZHJlc3NDb3VudD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGlwdjZBZGRyZXNzZXM6IFNwZWNpZnkgb25lIG9yIG1vcmUgSVB2NiBhZGRyZXNzZXMgZm9yIHRoZSBlbGFzdGljIE5JQy4gQ3VycmVudGx5LCB0aGUgbWF4aW11bSBsaXN0IHNpemUgaXMgMS4gRXhhbXBsZSB2YWx1ZTogMjAwMTpkYjg6MTIzNDoxYTAwOjoqKiogLlxuICAgICAqIE5vdGUgWW91IGNhbm5vdCBzcGVjaWZ5IHRoZSBwYXJhbWV0ZXJzIElwdjZBZGRyZXNzZXMgYW5kIElwdjZBZGRyZXNzQ291bnQgYXQgdGhlIHNhbWUgdGltZS5cbiAgICAgKiBUaGUgY2hhbmdlIG9mIHRoZSBwcm9wZXJ0eSBkb2VzIG5vdCBhZmZlY3QgZXhpc3RpbmcgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlwdjZBZGRyZXNzZXM/OiBBcnJheTxhbnkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkga2V5UGFpck5hbWU6IFNTSCBrZXkgcGFpciBuYW1lLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlQYWlyTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGxhdW5jaFRlbXBsYXRlSWQ6IElEIG9mIGxhdW5jaCB0ZW1wbGF0ZS4gTGF1bmNoIHRlbXBsYXRlIGlkIG9yIG5hbWUgbXVzdCBiZSBzcGVjaWZpZWQgdG8gdXNlIGxhdW5jaCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBsYXVuY2hUZW1wbGF0ZU5hbWU6IE5hbWUgb2YgbGF1bmNoIHRlbXBsYXRlLiBMYXVuY2ggdGVtcGxhdGUgaWQgb3IgbmFtZSBtdXN0IGJlIHNwZWNpZmllZCB0byB1c2UgbGF1bmNoIHRlbXBsYXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgbGF1bmNoVGVtcGxhdGVOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbGF1bmNoVGVtcGxhdGVWZXJzaW9uOiBWZXJzaW9uIG9mIGxhdW5jaCB0ZW1wbGF0ZS4gRGVmYXVsdCB2ZXJzaW9uIGlzIHVzZWQgaWYgdmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxhdW5jaFRlbXBsYXRlVmVyc2lvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGxvYWRCYWxhbmNlcklkVG9BdHRhY2g6IEFmdGVyIHRoZSBpbnN0YW5jZSBpcyBjcmVhdGVkLiBBdXRvbWF0aWMgYXR0YWNoIGl0IHRvIHRoZSBsb2FkIGJhbGFuY2VyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGxvYWRCYWxhbmNlcklkVG9BdHRhY2g/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwYXNzd29yZDogUGFzc3dvcmQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE11c3QgY29udGFpbiBhdCBsZWFzdCAzIHR5cGVzIG9mIHNwZWNpYWwgY2hhcmFjdGVyLCBsb3dlciBjaGFyYWN0ZXIsIHVwcGVyIGNoYXJhY3RlciwgbnVtYmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhc3N3b3JkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGFzc3dvcmRJbmhlcml0OiBTcGVjaWZpZXMgd2hldGhlciB0byB1c2UgdGhlIHBhc3N3b3JkIHByZXNldCBpbiB0aGUgaW1hZ2UuIFRvIHVzZSB0aGUgUGFzc3dvcmRJbmhlcml0IHBhcmFtZXRlciwgdGhlIFBhc3N3b3JkIHBhcmFtZXRlciBtdXN0IGJlIGVtcHR5IGFuZCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGUgc2VsZWN0ZWQgaW1hZ2UgaGFzIGEgcGFzc3dvcmQgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXNzd29yZEluaGVyaXQ/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVyaW9kOiBQcmVwYWlkIHRpbWUgcGVyaW9kLiBVbml0IGlzIG1vbnRoLCBpdCBjb3VsZCBiZSBmcm9tIDEgdG8gOSBvciAxMiwgMjQsIDM2LCA0OCwgNjAuIERlZmF1bHQgdmFsdWUgaXMgMS5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGVyaW9kPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVyaW9kVW5pdDogVW5pdCBvZiBwcmVwYWlkIHRpbWUgcGVyaW9kLCBpdCBjb3VsZCBiZSBXZWVrXFwvTW9udGhcXC9ZZWFyLiBEZWZhdWx0IHZhbHVlIGlzIE1vbnRoLk9sZCBpbnN0YW5jZXMgd2lsbCBub3QgYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwZXJpb2RVbml0Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcmFtUm9sZU5hbWU6IEluc3RhbmNlIFJBTSByb2xlIG5hbWUuIFRoZSBuYW1lIGlzIHByb3ZpZGVkIGFuZCBtYWludGFpbmVkIGJ5IFJlc291cmNlIEFjY2VzcyBNYW5hZ2VtZW50IChSQU0pIGFuZCBjYW4gYmUgcXVlcmllZCB1c2luZyBMaXN0Um9sZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgUkFNIEFQSSBDcmVhdGVSb2xlIGFuZCBMaXN0Um9sZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmFtUm9sZU5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByZXNvdXJjZUdyb3VwSWQ6IFJlc291cmNlIGdyb3VwIGlkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5R3JvdXBJZDogU2VjdXJpdHkgZ3JvdXAgdG8gY3JlYXRlIGVjcyBpbnN0YW5jZS4gRm9yIGNsYXNzaWMgaW5zdGFuY2UgbmVlZCB0aGUgc2VjdXJpdHkgZ3JvdXAgbm90IGJlbG9uZyB0byBWUEMsIGZvciBWUEMgaW5zdGFuY2UsIHBsZWFzZSBtYWtlIHN1cmUgdGhlIHNlY3VyaXR5IGdyb3VwIGJlbG9uZyB0byBzcGVjaWZpZWQgVlBDLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5R3JvdXBJZHM6IFRoZSBJRHMgb2Ygc2VjdXJpdHkgZ3JvdXBzIE4gdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuIFRoZSB2YWxpZCB2YWx1ZXMgb2YgTiBhcmUgYmFzZWQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mIHNlY3VyaXR5IGdyb3VwcyB0byB3aGljaCBhbiBpbnN0YW5jZSBjYW4gYmVsb25nLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFNlY3VyaXR5IGdyb3VwIGxpbWl0cy5Ob3RlOiBZb3UgY2Fubm90IHNwZWNpZnkgYm90aCBTZWN1cml0eUdyb3VwSWQgYW5kIFNlY3VyaXR5R3JvdXBJZHMgYXQgdGhlIHNhbWUgdGltZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzPzogQXJyYXk8c3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3RQcmljZUxpbWl0OiBUaGUgaG91cmx5IHByaWNlIHRocmVzaG9sZCBvZiBhIGluc3RhbmNlLCBhbmQgaXQgdGFrZXMgZWZmZWN0IG9ubHkgd2hlbiBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFBvc3RQYWlkLiBUaHJlZSBkZWNpbWFscyBpcyBhbGxvd2VkIGF0IG1vc3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdFByaWNlTGltaXQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzcG90U3RyYXRlZ3k6IFRoZSBzcG90IHN0cmF0ZWd5IG9mIGEgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZSwgYW5kIGl0IHRha2VzIGVmZmVjdCBvbmx5IHdoZW4gcGFyYW1ldGVyIEluc3RhbmNlQ2hhcmdlVHlwZSBpcyBQb3N0UGFpZC4gVmFsdWUgcmFuZ2U6IFwiTm9TcG90OiBBIHJlZ3VsYXIgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZVwiLCBcIlNwb3RXaXRoUHJpY2VMaW1pdDogQSBwcmljZSB0aHJlc2hvbGQgZm9yIGEgc3BvdCBpbnN0YW5jZSwgXCJcIlNwb3RBc1ByaWNlR286IEEgcHJpY2UgdGhhdCBpcyBiYXNlZCBvbiB0aGUgaGlnaGVzdCBQYXktQXMtWW91LUdvIGluc3RhbmNlLiBcIkRlZmF1bHQgdmFsdWU6IE5vU3BvdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90U3RyYXRlZ3k/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrQXV0b1NuYXBzaG90UG9saWN5SWQ6IEF1dG8gc25hcHNob3QgcG9saWN5IElELlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tBdXRvU25hcHNob3RQb2xpY3lJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQ6IFdoZXRoZXIgZW5hYmxlIGJ1cnN0aW5nLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQ/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0NhdGVnb3J5OiBDYXRlZ29yeSBvZiBzeXN0ZW0gZGlzay4gRGVmYXVsdCBpcyBjbG91ZF9lZmZpY2llbmN5LiBzdXBwb3J0IGNsb3VkfGNsb3VkX2VmZmljaWVuY3l8Y2xvdWRfc3NkfGNsb3VkX2Vzc2R8ZXBoZW1lcmFsX3NzZHxjbG91ZF9hdXRvfGNsb3VkX2Vzc2RfZW50cnkuT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tDYXRlZ29yeT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tEZXNjcmlwdGlvbjogRGVzY3JpcHRpb24gb2YgY3JlYXRlZCBzeXN0ZW0gZGlzay5PbGQgaW5zdGFuY2VzIHdpbGwgbm90IGJlIGNoYW5nZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0Rlc2NyaXB0aW9uPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0Rpc2tOYW1lOiBOYW1lIG9mIGNyZWF0ZWQgc3lzdGVtIGRpc2suT2xkIGluc3RhbmNlcyB3aWxsIG5vdCBiZSBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tEaXNrTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tFbmNyeXB0QWxnb3JpdGhtOiBUaGUgYWxnb3JpdGhtIHRvIHVzZSB0byBlbmNyeXB0IHRoZSBzeXN0ZW0gZGlzay4gVmFsaWQgdmFsdWVzOlxuICAgICAqIC0gYXNlLTI1NlxuICAgICAqIC0gc200LTEyOFxuICAgICAqIERlZmF1bHQgdmFsdWU6IGFzZS0yNTYuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0VuY3J5cHRBbGdvcml0aG0/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrRW5jcnlwdGVkOiBTcGVjaWZpZXMgd2hldGhlciB0byBlbmNyeXB0IHRoZSBzeXN0ZW0gZGlzay4gVmFsaWQgdmFsdWVzOlxuICAgICAqIC0gdHJ1ZTogZW5jcnlwdHMgdGhlIHN5c3RlbSBkaXNrLlxuICAgICAqIC0gZmFsc2U6IGRvZXMgbm90IGVuY3J5cHQgdGhlIHN5c3RlbSBkaXNrLlxuICAgICAqIERlZmF1bHQgdmFsdWU6IGZhbHNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tFbmNyeXB0ZWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrS21zS2V5SWQ6IFRoZSBJRCBvZiB0aGUgS01TIGtleSB0byB1c2UgZm9yIHRoZSBzeXN0ZW0gZGlzay5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrS21zS2V5SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrUHJvdmlzaW9uZWRJb3BzOiBQcm92aXNpb25pbmcgSU9QUy5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrUHJvdmlzaW9uZWRJb3BzPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza1N0b3JhZ2VDbHVzdGVySWQ6IFRoZSBJRCBvZiB0aGUgZGVkaWNhdGVkIGJsb2NrIHN0b3JhZ2UgY2x1c3Rlci4gSWYgeW91IHdhbnQgdG8gdXNlIGRpc2tzIGluIGEgZGVkaWNhdGVkIGJsb2NrIHN0b3JhZ2UgY2x1c3RlciBhcyBzeXN0ZW0gZGlza3Mgd2hlbiB5b3UgY3JlYXRlIGluc3RhbmNlcywgeW91IG11c3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrU3RvcmFnZUNsdXN0ZXJJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHRhZ3M6IFRhZ3MgdG8gYXR0YWNoIHRvIGluc3RhbmNlLiBNYXggc3VwcG9ydCAyMCB0YWdzIHRvIGFkZCBkdXJpbmcgY3JlYXRlIGluc3RhbmNlLiBFYWNoIHRhZyB3aXRoIHR3byBwcm9wZXJ0aWVzIEtleSBhbmQgVmFsdWUsIGFuZCBLZXkgaXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGFncz86IFJvc0luc3RhbmNlR3JvdXBDbG9uZS5UYWdzUHJvcGVydHlbXTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHVwZGF0ZVBvbGljeTogU3BlY2lmeSB0aGUgcG9saWN5IGF0IHVwZGF0ZS4gXG4gICAgICogVGhlIHZhbHVlIGNhbiBiZSAnRm9yTmV3SW5zdGFuY2VzJyBvciAnRm9yQWxsSW5zdGFuY2VzJy5cbiAgICAgKiBJZiBVcGRhdGVQb2xpY3kgaXMgJ0ZvckFsbEluc3RhbmNlJywgVGhlIHVwZGF0YWJsZSBwYXJhbWV0ZXJzIGFyZSBJbnN0YW5jZVR5cGUsIEltYWdlSWQsIFN5c3RlbURpc2tTaXplLCBTeXN0ZW1EaXNrQ2F0ZWdvcnksIFBhc3N3b3JkLCBVc2VyRGF0YSxJbnRlcm5ldENoYXJnZVR5cGUsIEludGVybmV0TWF4QmFuZHdpZHRoT3V0LCBJbnRlcm5ldE1heEJhbmR3aWR0aEluLlxuICAgICAqIFRoZSBkZWZhdWx0IGlzICdGb3JOZXdJbnN0YW5jZXMnXG4gICAgICovXG4gICAgcmVhZG9ubHkgdXBkYXRlUG9saWN5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgem9uZUlkOiBUaGUgSUQgb2YgdGhlIHpvbmUgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBcbiAgICAgKiBjYWxsIHRoZSBEZXNjcmliZVpvbmVzIG9wZXJhdGlvbiB0byBxdWVyeSB0aGUgbW9zdCByZWNlbnQgem9uZSBsaXN0LiBcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGVtcHR5LCB3aGljaCBtZWFucyByYW5kb20gc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHpvbmVJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBUaGlzIGNsYXNzIGVuY2Fwc3VsYXRlcyBhbmQgZXh0ZW5kcyB0aGUgUk9TIHJlc291cmNlIHR5cGUgYEFMSVlVTjo6RUNTOjpJbnN0YW5jZUdyb3VwQ2xvbmVgLCB3aGljaCBpcyB1c2VkIHRvIGNyZWF0ZSBjbG9uZXMgb2YgYW4gRWxhc3RpYyBDb21wdXRlIFNlcnZpY2UgKEVDUykgaW5zdGFuY2UuXG4gKiBATm90ZSBUaGlzIGNsYXNzIG1heSBoYXZlIHNvbWUgbmV3IGZ1bmN0aW9ucyB0byBmYWNpbGl0YXRlIGRldmVsb3BtZW50LCBzbyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBjbGFzcyBpbnN0ZWFkIG9mIGBSb3NJbnN0YW5jZUdyb3VwQ2xvbmVgZm9yIGEgbW9yZSBjb252ZW5pZW50IGRldmVsb3BtZW50IGV4cGVyaWVuY2UuXG4gKiBTZWUgaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL3Jvcy9kZXZlbG9wZXItcmVmZXJlbmNlL2FsaXl1bi1lY3MtaW5zdGFuY2Vncm91cGNsb25lXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZUdyb3VwQ2xvbmUgZXh0ZW5kcyByb3MuUmVzb3VyY2Uge1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIEhvc3ROYW1lczogSG9zdCBuYW1lcyBvZiBjcmVhdGVkIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckhvc3ROYW1lczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIElubmVySXBzOiBJbm5lciBJUCBhZGRyZXNzIGxpc3Qgb2YgdGhlIHNwZWNpZmllZCBpbnN0YW5jZXMuIE9ubHkgZm9yIGNsYXNzaWNhbCBpbnN0YW5jZXMuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJbm5lcklwczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIEluc3RhbmNlSWRzOiBUaGUgaW5zdGFuY2UgaWQgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckluc3RhbmNlSWRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSXB2NkFkZHJlc3NJZHM6IElQdjYgYWRkcmVzcyBJRHMgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXMuIE5vdGU6IFRoZSByZXR1cm4gdHlwZSBpcyBhIHR3by10aWVyIGxpc3QuSWYgdGhlIGluc3RhbmNlIGRvZXMgbm90IGhhdmUgYW55IElQdjYgYWRkcmVzcywgdGhlIGVsZW1lbnQgYXQgdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpb24gaW4gdGhlIGxpc3QgaXMgbnVsbC4gSWYgYWxsIGluc3RhbmNlcyBkb2VzIG5vdCBoYXZlIGFueSBJUHYgYWRkcmVzcywgd2lsbCByZXR1cm4gbnVsbC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklwdjZBZGRyZXNzSWRzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSXB2NkFkZHJlc3NlczogSVB2NiBhZGRyZXNzZXMgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXMuIE5vdGU6IFRoZSByZXR1cm4gdHlwZSBpcyBhIHR3by10aWVyIGxpc3QuIElmIHRoZSBpbnN0YW5jZSBkb2VzIG5vdCBoYXZlIGFueSBJUHY2IGFkZHJlc3MsIHRoZSBlbGVtZW50IGF0IHRoZSBjb3JyZXNwb25kaW5nIHBvc2l0aW9uIGluIHRoZSBsaXN0IGlzIG51bGwuIElmIGFsbCBpbnN0YW5jZXMgZG9lcyBub3QgaGF2ZSBhbnkgSVB2IGFkZHJlc3MsIHdpbGwgcmV0dXJuIG51bGwuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJJcHY2QWRkcmVzc2VzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgT3JkZXJJZDogVGhlIG9yZGVyIGlkIGxpc3Qgb2YgY3JlYXRlZCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ck9yZGVySWQ6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQcml2YXRlSXBzOiBQcml2YXRlIElQIGFkZHJlc3MgbGlzdCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZXMuIE9ubHkgZm9yIFZQQyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clByaXZhdGVJcHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQdWJsaWNJcHM6IFB1YmxpYyBJUCBhZGRyZXNzIGxpc3Qgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyUHVibGljSXBzOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgWm9uZUlkczogWm9uZSBpZCBvZiBjcmVhdGVkIGluc3RhbmNlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clpvbmVJZHM6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogUGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAgICogUGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnN0YW5jZUdyb3VwQ2xvbmVQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6Ym9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICBjb25zdCByb3NJbnN0YW5jZUdyb3VwQ2xvbmUgPSBuZXcgUm9zSW5zdGFuY2VHcm91cENsb25lKHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlza01hcHBpbmdzOiBwcm9wcy5kaXNrTWFwcGluZ3MsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHByb3BzLnJlc291cmNlR3JvdXBJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEZXNjcmlwdGlvbjogcHJvcHMuc3lzdGVtRGlza0Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wczogcHJvcHMuc3lzdGVtRGlza1Byb3Zpc2lvbmVkSW9wcyxcbiAgICAgICAgICAgIGF1dG9SZW5ldzogcHJvcHMuYXV0b1JlbmV3ID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYXV0b1JlbmV3ID09PSBudWxsID8gJ0ZhbHNlJyA6IHByb3BzLmF1dG9SZW5ldyxcbiAgICAgICAgICAgIGlwdjZBZGRyZXNzZXM6IHByb3BzLmlwdjZBZGRyZXNzZXMsXG4gICAgICAgICAgICBzb3VyY2VJbnN0YW5jZUlkOiBwcm9wcy5zb3VyY2VJbnN0YW5jZUlkLFxuICAgICAgICAgICAgc3lzdGVtRGlza0VuY3J5cHRlZDogcHJvcHMuc3lzdGVtRGlza0VuY3J5cHRlZCxcbiAgICAgICAgICAgIG1heEFtb3VudDogcHJvcHMubWF4QW1vdW50LFxuICAgICAgICAgICAgc3lzdGVtRGlza0F1dG9TbmFwc2hvdFBvbGljeUlkOiBwcm9wcy5zeXN0ZW1EaXNrQXV0b1NuYXBzaG90UG9saWN5SWQsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrRW5jcnlwdEFsZ29yaXRobTogcHJvcHMuc3lzdGVtRGlza0VuY3J5cHRBbGdvcml0aG0sXG4gICAgICAgICAgICByYW1Sb2xlTmFtZTogcHJvcHMucmFtUm9sZU5hbWUsXG4gICAgICAgICAgICBpcHY2QWRkcmVzc0NvdW50OiBwcm9wcy5pcHY2QWRkcmVzc0NvdW50LFxuICAgICAgICAgICAgaW1hZ2VJZDogcHJvcHMuaW1hZ2VJZCxcbiAgICAgICAgICAgIHNwb3RQcmljZUxpbWl0OiBwcm9wcy5zcG90UHJpY2VMaW1pdCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEaXNrTmFtZTogcHJvcHMuc3lzdGVtRGlza0Rpc2tOYW1lLFxuICAgICAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgICAgICAgIHNwb3RTdHJhdGVneTogcHJvcHMuc3BvdFN0cmF0ZWd5LFxuICAgICAgICAgICAgcGFzc3dvcmRJbmhlcml0OiBwcm9wcy5wYXNzd29yZEluaGVyaXQsXG4gICAgICAgICAgICBwYXNzd29yZDogcHJvcHMucGFzc3dvcmQsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrU3RvcmFnZUNsdXN0ZXJJZDogcHJvcHMuc3lzdGVtRGlza1N0b3JhZ2VDbHVzdGVySWQsXG4gICAgICAgICAgICBhdXRvUmVuZXdQZXJpb2Q6IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5hdXRvUmVuZXdQZXJpb2QsXG4gICAgICAgICAgICBiYWNrZW5kU2VydmVyV2VpZ2h0OiBwcm9wcy5iYWNrZW5kU2VydmVyV2VpZ2h0ID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYmFja2VuZFNlcnZlcldlaWdodCA9PT0gbnVsbCA/IDEwMCA6IHByb3BzLmJhY2tlbmRTZXJ2ZXJXZWlnaHQsXG4gICAgICAgICAgICBrZXlQYWlyTmFtZTogcHJvcHMua2V5UGFpck5hbWUsXG4gICAgICAgICAgICBsYXVuY2hUZW1wbGF0ZU5hbWU6IHByb3BzLmxhdW5jaFRlbXBsYXRlTmFtZSxcbiAgICAgICAgICAgIHVwZGF0ZVBvbGljeTogcHJvcHMudXBkYXRlUG9saWN5ID09PSB1bmRlZmluZWQgfHwgcHJvcHMudXBkYXRlUG9saWN5ID09PSBudWxsID8gJ0Zvck5ld0luc3RhbmNlcycgOiBwcm9wcy51cGRhdGVQb2xpY3ksXG4gICAgICAgICAgICB6b25lSWQ6IHByb3BzLnpvbmVJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tLbXNLZXlJZDogcHJvcHMuc3lzdGVtRGlza0ttc0tleUlkLFxuICAgICAgICAgICAgaHBjQ2x1c3RlcklkOiBwcm9wcy5ocGNDbHVzdGVySWQsXG4gICAgICAgICAgICBzZWN1cml0eUdyb3VwSWQ6IHByb3BzLnNlY3VyaXR5R3JvdXBJZCxcbiAgICAgICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kID09PSB1bmRlZmluZWQgfHwgcHJvcHMucGVyaW9kID09PSBudWxsID8gMSA6IHByb3BzLnBlcmlvZCxcbiAgICAgICAgICAgIGxhdW5jaFRlbXBsYXRlSWQ6IHByb3BzLmxhdW5jaFRlbXBsYXRlSWQsXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb3BzLmRlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IHByb3BzLnNlY3VyaXR5R3JvdXBJZHMsXG4gICAgICAgICAgICBsb2FkQmFsYW5jZXJJZFRvQXR0YWNoOiBwcm9wcy5sb2FkQmFsYW5jZXJJZFRvQXR0YWNoLFxuICAgICAgICAgICAgc3lzdGVtRGlza0NhdGVnb3J5OiBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnkgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnkgPT09IG51bGwgPyAnY2xvdWRfZWZmaWNpZW5jeScgOiBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnksXG4gICAgICAgICAgICBpbnN0YW5jZU5hbWU6IHByb3BzLmluc3RhbmNlTmFtZSxcbiAgICAgICAgICAgIGVuaU1hcHBpbmdzOiBwcm9wcy5lbmlNYXBwaW5ncyxcbiAgICAgICAgICAgIHN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQ6IHByb3BzLnN5c3RlbURpc2tCdXJzdGluZ0VuYWJsZWQsXG4gICAgICAgICAgICBkZXBsb3ltZW50U2V0SWQ6IHByb3BzLmRlcGxveW1lbnRTZXRJZCxcbiAgICAgICAgICAgIGludGVybmV0TWF4QmFuZHdpZHRoT3V0OiBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aE91dCxcbiAgICAgICAgICAgIGludGVybmV0TWF4QmFuZHdpZHRoSW46IHByb3BzLmludGVybmV0TWF4QmFuZHdpZHRoSW4gPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aEluID09PSBudWxsID8gMjAwIDogcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhJbixcbiAgICAgICAgICAgIGxhdW5jaFRlbXBsYXRlVmVyc2lvbjogcHJvcHMubGF1bmNoVGVtcGxhdGVWZXJzaW9uLFxuICAgICAgICAgICAgcGVyaW9kVW5pdDogcHJvcHMucGVyaW9kVW5pdCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlcmlvZFVuaXQgPT09IG51bGwgPyAnTW9udGgnIDogcHJvcHMucGVyaW9kVW5pdCxcbiAgICAgICAgICAgIGF1dG9SZWxlYXNlVGltZTogcHJvcHMuYXV0b1JlbGVhc2VUaW1lLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0luc3RhbmNlR3JvdXBDbG9uZTtcbiAgICAgICAgdGhpcy5hdHRySG9zdE5hbWVzID0gcm9zSW5zdGFuY2VHcm91cENsb25lLmF0dHJIb3N0TmFtZXM7XG4gICAgICAgIHRoaXMuYXR0cklubmVySXBzID0gcm9zSW5zdGFuY2VHcm91cENsb25lLmF0dHJJbm5lcklwcztcbiAgICAgICAgdGhpcy5hdHRySW5zdGFuY2VJZHMgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0ckluc3RhbmNlSWRzO1xuICAgICAgICB0aGlzLmF0dHJJcHY2QWRkcmVzc0lkcyA9IHJvc0luc3RhbmNlR3JvdXBDbG9uZS5hdHRySXB2NkFkZHJlc3NJZHM7XG4gICAgICAgIHRoaXMuYXR0cklwdjZBZGRyZXNzZXMgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0cklwdjZBZGRyZXNzZXM7XG4gICAgICAgIHRoaXMuYXR0ck9yZGVySWQgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0ck9yZGVySWQ7XG4gICAgICAgIHRoaXMuYXR0clByaXZhdGVJcHMgPSByb3NJbnN0YW5jZUdyb3VwQ2xvbmUuYXR0clByaXZhdGVJcHM7XG4gICAgICAgIHRoaXMuYXR0clB1YmxpY0lwcyA9IHJvc0luc3RhbmNlR3JvdXBDbG9uZS5hdHRyUHVibGljSXBzO1xuICAgICAgICB0aGlzLmF0dHJab25lSWRzID0gcm9zSW5zdGFuY2VHcm91cENsb25lLmF0dHJab25lSWRzO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,7 +2,8 @@ import * as ros from '@alicloud/ros-cdk-core';
2
2
  import { RosInvocation } from './ecs.generated';
3
3
  export { RosInvocation as InvocationProperty };
4
4
  /**
5
- * Properties for defining a `ALIYUN::ECS::Invocation`
5
+ * Properties for defining a `Invocation`.
6
+ * See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-invocation
6
7
  */
7
8
  export interface InvocationProps {
8
9
  /**
@@ -17,6 +18,23 @@ export interface InvocationProps {
17
18
  * Property commandName: The name of command. Only system commands whose provide is AlibabaCloud are supported
18
19
  */
19
20
  readonly commandName?: string | ros.IResolvable;
21
+ /**
22
+ * Property containerId: The ID of the container. Only 64-bit hexadecimal strings are supported. You can use container IDs that are prefixed with docker:\/\/, containerd:\/\/, or cri-o:\/\/ to specify container runtimes.
23
+ * Take note of the following items:
24
+ * - If you specify this parameter, Cloud Assistant runs scripts in the specified container of the instance.
25
+ * - If you specify this parameter, make sure that the version of Cloud Assistant Agent installed on Linux instances is 2.2.3.344 or later.- If you specify this parameter, Username that is specified in a request to call this operation and WorkingDir that is specified in a request to call the CreateCommand operation do not take effect. You can run the command only in the default working directory of the container by using the default user of the container.
26
+ * - If you specify this parameter, only shell scripts can be run in Linux containers. You cannot add a command in the format similar to #!\/usr\/bin\/python at the beginning of a script to specify a script interpreter.
27
+ */
28
+ readonly containerId?: string | ros.IResolvable;
29
+ /**
30
+ * Property containerName: The name of the container.
31
+ * Take note of the following items:
32
+ * - If you specify this parameter, Cloud Assistant runs scripts in the specified container of the instance.
33
+ * - If you specify this parameter, make sure that the version of Cloud Assistant Agent installed on Linux instances is 2.2.3.344 or later.
34
+ * - If you specify this parameter, Username that is specified in a request to call this operation and WorkingDir that is specified in a request to call the CreateCommand operation do not take effect. You can run the command only in the default working directory of the container by using the default user of the container.
35
+ * - If you specify this parameter, only shell scripts can be run in Linux containers. You cannot add a command in the format similar to #!\/usr\/bin\/python at the beginning of a script to specify a script interpreter.
36
+ */
37
+ readonly containerName?: string | ros.IResolvable;
20
38
  /**
21
39
  * Property frequency: The frequency of timing execution (the shortest frequency is performed every 1 minute). It iss mandatory when Timing is True.The value rule follows the rules of the cron expression.
22
40
  */
@@ -33,23 +51,56 @@ export interface InvocationProps {
33
51
  readonly parameters?: {
34
52
  [key: string]: (any | ros.IResolvable);
35
53
  } | ros.IResolvable;
54
+ /**
55
+ * Property repeatMode: Specifies how to run the command. Valid values:
56
+ * - **Once**: immediately runs the command.
57
+ * - **Period**: runs the command on a schedule. If you set this parameter to Period, you must specify **Frequency**.
58
+ * - **NextRebootOnly**: runs the command the next time the instance is started.
59
+ * - **EveryReboot*: runs the command every time the instance is started.
60
+ * Default value:
61
+ * - If you do not specify Frequency, the default value is Once.
62
+ * - If you specify **Frequency**, **Period** is used as the value of RepeatMode regardless of whether RepeatMode is set to Period.
63
+ */
64
+ readonly repeatMode?: string | ros.IResolvable;
65
+ /**
66
+ * Property resourceGroupId: The ID of the resource group to which to assign the command executions. The instances specified by InstanceIds must belong to the specified resource group.
67
+ */
68
+ readonly resourceGroupId?: string | ros.IResolvable;
36
69
  /**
37
70
  * Property sync: Whether to invoke synchronously.
38
71
  */
39
72
  readonly sync?: boolean | ros.IResolvable;
40
73
  /**
41
- * Property timed: Whether it is timed execution. Default is False.
74
+ * Property tags: Tags to attach to invocation. Max support 20 tags to add during create invocation. Each tag with two properties Key and Value, and Key is required.
42
75
  */
43
- readonly timed?: boolean | ros.IResolvable;
76
+ readonly tags?: RosInvocation.TagsProperty[];
77
+ /**
78
+ * Property timeout: The timeout period for the command execution. Unit: seconds.
79
+ * - The timeout period cannot be less than 10 seconds.
80
+ * - A timeout error occurs if the command cannot be run because the process slows down or because a specific module or Cloud Assistant Agent does not exist. When the specified timeout period ends, the command process is forcefully terminated.
81
+ * - If you do not specify this parameter, the timeout period that is specified when the command is created is used.
82
+ * - This timeout period is applicable only to this execution. The timeout period of the command is not modified.
83
+ */
84
+ readonly timeout?: number | ros.IResolvable;
85
+ /**
86
+ * Property username: The username to use to run the command on instances. The username can be up to 255 characters in length.
87
+ * - For Linux instances, the root username is used by default.
88
+ * - For Windows instances, the System username is used by default.
89
+ * You can also specify other usernames that already exist in the instances to run the command. For security purposes, we recommend that you run Cloud Assistant commands as a regular user.
90
+ */
91
+ readonly username?: string | ros.IResolvable;
92
+ /**
93
+ * Property windowsPasswordName: The name of the password to use to run the command on Windows instances. The name can be up to 255 characters in length.
94
+ * If you do not want to use the default System user to run the command on Windows instances, specify both **WindowsPasswordName** and **Username**. To mitigate the risk of password leaks, the password is stored in plaintext in Operation Orchestration Service (OOS) Parameter Store, and only the name of the password is passed in by using WindowsPasswordName.
95
+ */
96
+ readonly windowsPasswordName?: string | ros.IResolvable;
44
97
  }
45
98
  /**
46
- * A ROS resource type: `ALIYUN::ECS::Invocation`
99
+ * This class encapsulates and extends the ROS resource type `ALIYUN::ECS::Invocation`, which is used to run a Cloud Assistant command on Elastic Compute Service (ECS) instances.
100
+ * @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInvocation`for a more convenient development experience.
101
+ * See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-invocation
47
102
  */
48
103
  export declare class Invocation extends ros.Resource {
49
- /**
50
- * A factory method that creates a new instance of this class from an object
51
- * containing the properties of this ROS resource, which will be assigned to ROS resource.
52
- */
53
104
  /**
54
105
  * Attribute InvokeId: The id of command execution.
55
106
  */
@@ -63,8 +114,6 @@ export declare class Invocation extends ros.Resource {
63
114
  */
64
115
  readonly attrInvokeResults: ros.IResolvable;
65
116
  /**
66
- * Create a new `ALIYUN::ECS::Invocation`.
67
- *
68
117
  * Param scope - scope in which this resource is defined
69
118
  * Param id - scoped id of the resource
70
119
  * Param props - resource properties