@microsoft/terraform-cdk-constructs 0.0.3-pre.10 → 0.0.3-pre.11

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 (77) hide show
  1. package/.jsii +639 -585
  2. package/API.md +316 -312
  3. package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +3 -3
  4. package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +2 -2
  5. package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +3 -3
  6. package/lib/azure-actiongroup/lib/actiongroup.d.ts +1 -1
  7. package/lib/azure-actiongroup/lib/actiongroup.js +4 -4
  8. package/lib/azure-actiongroup/model/action-group-props.d.ts +3 -2
  9. package/lib/azure-actiongroup/model/action-group-props.js +1 -1
  10. package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +1 -12
  11. package/lib/azure-applicationgateway/lib/gateway.d.ts +5 -3
  12. package/lib/azure-applicationgateway/lib/gateway.js +14 -7
  13. package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +1 -16
  14. package/lib/azure-applicationinsights/lib/appinsights.d.ts +4 -3
  15. package/lib/azure-applicationinsights/lib/appinsights.js +6 -6
  16. package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +1 -7
  17. package/lib/azure-containerregistry/lib/registry.d.ts +4 -3
  18. package/lib/azure-containerregistry/lib/registry.js +5 -5
  19. package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +1 -7
  20. package/lib/azure-eventhub/lib/authorization.js +1 -1
  21. package/lib/azure-eventhub/lib/consumer.js +1 -1
  22. package/lib/azure-eventhub/lib/{cluster.d.ts → eventhubcluster.d.ts} +11 -7
  23. package/lib/azure-eventhub/lib/eventhubcluster.js +64 -0
  24. package/lib/azure-eventhub/lib/index.d.ts +1 -1
  25. package/lib/azure-eventhub/lib/index.js +2 -2
  26. package/lib/azure-eventhub/lib/instance.js +1 -1
  27. package/lib/azure-eventhub/lib/kusto-connection.js +1 -1
  28. package/lib/azure-eventhub/lib/namespace.d.ts +7 -6
  29. package/lib/azure-eventhub/lib/namespace.js +20 -22
  30. package/lib/azure-eventhub/test/AzureEventhub.spec.js +1 -7
  31. package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
  32. package/lib/azure-keyvault/lib/certificate.js +2 -2
  33. package/lib/azure-keyvault/lib/key.js +1 -1
  34. package/lib/azure-keyvault/lib/policy.js +1 -1
  35. package/lib/azure-keyvault/lib/secret.js +1 -1
  36. package/lib/azure-keyvault/lib/vault.d.ts +3 -2
  37. package/lib/azure-keyvault/lib/vault.js +4 -4
  38. package/lib/azure-keyvault/test/AzureKeyVault.spec.js +1 -7
  39. package/lib/azure-kubernetes/lib/cluster.js +1 -1
  40. package/lib/azure-kusto/lib/cluster.d.ts +6 -5
  41. package/lib/azure-kusto/lib/cluster.js +23 -23
  42. package/lib/azure-kusto/lib/compute-specification.js +1 -1
  43. package/lib/azure-kusto/lib/database.js +7 -7
  44. package/lib/azure-kusto/test/AzureKusto.spec.js +1 -7
  45. package/lib/azure-loganalytics/lib/workspace.d.ts +4 -3
  46. package/lib/azure-loganalytics/lib/workspace.js +6 -6
  47. package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +1 -7
  48. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  49. package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
  50. package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +4 -3
  51. package/lib/azure-networksecuritygroup/lib/securitygroup.js +7 -7
  52. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +1 -7
  53. package/lib/azure-queryrulealert/lib/query-rule-alert.js +1 -1
  54. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  55. package/lib/azure-storageaccount/lib/account.js +1 -1
  56. package/lib/azure-storageaccount/lib/container.js +2 -2
  57. package/lib/azure-storageaccount/lib/fileshare.js +2 -2
  58. package/lib/azure-storageaccount/lib/queue.js +1 -1
  59. package/lib/azure-storageaccount/lib/table.js +1 -1
  60. package/lib/azure-virtualmachine/lib/image-references.js +2 -2
  61. package/lib/azure-virtualmachine/lib/vm.d.ts +8 -6
  62. package/lib/azure-virtualmachine/lib/vm.js +15 -15
  63. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +2 -9
  64. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +1 -7
  65. package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +8 -6
  66. package/lib/azure-virtualmachinescaleset/lib/cluster.js +11 -11
  67. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +2 -9
  68. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +1 -7
  69. package/lib/azure-virtualnetwork/lib/network.d.ts +4 -3
  70. package/lib/azure-virtualnetwork/lib/network.js +7 -6
  71. package/lib/azure-virtualnetwork/lib/peering.js +1 -1
  72. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +2 -9
  73. package/lib/core-azure/lib/diagsettings.js +1 -1
  74. package/lib/core-azure/lib/rbac.js +1 -1
  75. package/lib/core-azure/lib/resource.js +4 -4
  76. package/package.json +29 -10
  77. package/lib/azure-eventhub/lib/cluster.js +0 -64
@@ -295,7 +295,7 @@
295
295
  "resource_group_name": "${azurerm_resource_group.rg.name}",
296
296
  "sku_name": "standard",
297
297
  "soft_delete_retention_days": 90,
298
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
298
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
299
299
  }
300
300
  },
301
301
  "azurerm_key_vault_access_policy": {
@@ -312,7 +312,7 @@
312
312
  "Get",
313
313
  "List"
314
314
  ],
315
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
315
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
316
316
  },
317
317
  "keyvault_kv_custom_policy_access_TfTokenTOKEN11_policy_9AEE43DF": {
318
318
  "//": {
@@ -359,7 +359,7 @@
359
359
  "Set",
360
360
  "Delete"
361
361
  ],
362
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
362
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
363
363
  }
364
364
  },
365
365
  "azurerm_key_vault_certificate": {
@@ -120,7 +120,7 @@
120
120
  "Purge"
121
121
  ],
122
122
  "storage_permissions": null,
123
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
123
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
124
124
  }
125
125
  ],
126
126
  "location": "${azurerm_resource_group.rg.location}",
@@ -129,7 +129,7 @@
129
129
  "resource_group_name": "${azurerm_resource_group.rg.name}",
130
130
  "sku_name": "standard",
131
131
  "soft_delete_retention_days": 7,
132
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
132
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
133
133
  }
134
134
  },
135
135
  "azurerm_key_vault_secret": {
@@ -98,7 +98,7 @@
98
98
  "resource_group_name": "${azurerm_resource_group.rg.name}",
99
99
  "sku_name": "standard",
100
100
  "soft_delete_retention_days": 7,
101
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
101
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
102
102
  }
103
103
  },
104
104
  "azurerm_key_vault_access_policy": {
@@ -153,7 +153,7 @@
153
153
  "Set",
154
154
  "Delete"
155
155
  ],
156
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
156
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
157
157
  },
158
158
  "kv_kv_secret_admin_access_bc26a701-6acb-4117-93e0-e44054e22d60_policy_BF8031B5": {
159
159
  "//": {
@@ -173,7 +173,7 @@
173
173
  "Restore",
174
174
  "Recover"
175
175
  ],
176
- "tenant_id": "123e4567-e89b-12d3-a456-426614174000"
176
+ "tenant_id": "24e2975c-af72-454e-8dc0-579d886a1589"
177
177
  }
178
178
  },
179
179
  "azurerm_key_vault_certificate": {
@@ -15,7 +15,7 @@ export declare class ActionGroup extends AzureResource {
15
15
  * @param id - The unique identifier for this instance of the Action Group.
16
16
  * @param props - Configuration properties for the Action Group. These properties may include:
17
17
  * - `name`: The name of the Action Group.
18
- * - `resourceGroup`: The resource group under which the Action Group is created.
18
+ * - `resourceGroup`: Optional. Reference to the resource group for deployment.
19
19
  * - `shortName`: A shorter name for the Action Group used in notifications.
20
20
  * - `enabled`: Specifies if the Action Group is active. Defaults to true.
21
21
  * - `location`: The Azure region where the Action Group is hosted. Defaults to global.
@@ -15,7 +15,7 @@ class ActionGroup extends lib_1.AzureResource {
15
15
  * @param id - The unique identifier for this instance of the Action Group.
16
16
  * @param props - Configuration properties for the Action Group. These properties may include:
17
17
  * - `name`: The name of the Action Group.
18
- * - `resourceGroup`: The resource group under which the Action Group is created.
18
+ * - `resourceGroup`: Optional. Reference to the resource group for deployment.
19
19
  * - `shortName`: A shorter name for the Action Group used in notifications.
20
20
  * - `enabled`: Specifies if the Action Group is active. Defaults to true.
21
21
  * - `location`: The Azure region where the Action Group is hosted. Defaults to global.
@@ -48,7 +48,7 @@ class ActionGroup extends lib_1.AzureResource {
48
48
  constructor(scope, id, props) {
49
49
  super(scope, id);
50
50
  this.props = props;
51
- this.resourceGroup = props.resourceGroup;
51
+ this.resourceGroup = this.setupResourceGroup(props);
52
52
  /**
53
53
  * Define default values.
54
54
  */
@@ -61,7 +61,7 @@ class ActionGroup extends lib_1.AzureResource {
61
61
  const azurermMonitorActionGroup = new monitor_action_group_1.MonitorActionGroup(this, "actiongroup", {
62
62
  ...defaults,
63
63
  name: props.name,
64
- resourceGroupName: props.resourceGroup.name,
64
+ resourceGroupName: this.resourceGroup.name,
65
65
  shortName: props.shortName,
66
66
  armRoleReceiver: cdktf.listMapper(model.monitorActionGroupArmRoleReceiverToTerraform, true)(this.props.armRoleReceivers),
67
67
  emailReceiver: cdktf.listMapper(model.monitorActionGroupEmailReceiverToTerraform, true)(this.props.emailReceivers),
@@ -82,4 +82,4 @@ class ActionGroup extends lib_1.AzureResource {
82
82
  }
83
83
  }
84
84
  exports.ActionGroup = ActionGroup;
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtYWN0aW9uZ3JvdXAvbGliL2FjdGlvbmdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJGQUFzRjtBQUV0RiwrQkFBK0I7QUFFL0IsOENBQXFEO0FBQ3JELGtDQUFrQztBQUVsQyxNQUFhLFdBQVksU0FBUSxtQkFBYTtJQUk1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQ0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBRXpDOztXQUVHO1FBQ0gsTUFBTSxRQUFRLEdBQUc7WUFDZixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJO1lBQzlCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLFFBQVE7WUFDcEMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRTtTQUN2QixDQUFDO1FBRUYsdURBQXVEO1FBQ3ZELE1BQU0seUJBQXlCLEdBQUcsSUFBSSx5Q0FBa0IsQ0FDdEQsSUFBSSxFQUNKLGFBQWEsRUFDYjtZQUNFLEdBQUcsUUFBUTtZQUNYLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDM0MsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUMvQixLQUFLLENBQUMsNENBQTRDLEVBQ2xELElBQUksQ0FDTCxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7WUFFOUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQzdCLEtBQUssQ0FBQywwQ0FBMEMsRUFDaEQsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFFNUIsYUFBYSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQzdCLEtBQUssQ0FBQywwQ0FBMEMsRUFDaEQsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFFNUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQzNCLEtBQUssQ0FBQyx3Q0FBd0MsRUFDOUMsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFFMUIsZUFBZSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQy9CLEtBQUssQ0FBQyw0Q0FBNEMsRUFDbEQsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztZQUU5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUNoQyxLQUFLLENBQUMsNkNBQTZDLEVBQ25ELElBQUksQ0FDTCxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFFL0Isb0JBQW9CLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FDcEMsS0FBSyxDQUFDLGlEQUFpRCxFQUN2RCxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1lBRW5DLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQ2hDLEtBQUssQ0FBQyw2Q0FBNkMsRUFDbkQsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUNoQyxDQUNGLENBQUM7UUFFRixvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLEVBQUUsR0FBRyx5QkFBeUIsQ0FBQyxFQUFFLENBQUM7UUFFdkMsTUFBTSxpQ0FBaUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQ2pFLElBQUksRUFDSixJQUFJLEVBQ0o7WUFDRSxLQUFLLEVBQUUseUJBQXlCLENBQUMsRUFBRTtTQUNwQyxDQUNGLENBQUM7UUFFRixnSUFBZ0k7UUFDaEksaUNBQWlDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBM0hELGtDQTJIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbml0b3JBY3Rpb25Hcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbW9uaXRvci1hY3Rpb24tZ3JvdXBcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5pbXBvcnQgKiBhcyBtb2RlbCBmcm9tIFwiLi4vbW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkdyb3VwIGV4dGVuZHMgQXp1cmVSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHByb3BzOiBtb2RlbC5BY3Rpb25Hcm91cFByb3BzO1xuICBwdWJsaWMgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYW5hZ2VzIGFuIEF6dXJlIE1vbml0b3IgQWN0aW9uIEdyb3VwLCB3aGljaCBpcyB1c2VkIHRvIHRyaWdnZXIgYWN0aW9ucyBvciBub3RpZmljYXRpb25zIGJhc2VkIG9uIGFsZXJ0cyBvciBjb25kaXRpb25zIG1ldCB3aXRoaW4gQXp1cmUgTW9uaXRvci5cbiAgICpcbiAgICogQW4gQWN0aW9uIEdyb3VwIGluIEF6dXJlIE1vbml0b3IgZGVmaW5lcyBhIGNvbGxlY3Rpb24gb2YgaW5kaXZpZHVhbCBhY3Rpb25zIHRoYXQgYXJlIHRyaWdnZXJlZCB3aGVuIHRoZSBjb25kaXRpb25zIG9mIGFuIGFzc29jaWF0ZWQgYWxlcnQgcnVsZSBhcmUgbWV0LiBBY3Rpb25zIGNhbiBpbmNsdWRlIHNlbmRpbmcgZW1haWxzLCB0cmlnZ2VyaW5nIEF6dXJlIEZ1bmN0aW9ucywgY2FsbGluZyB3ZWJob29rcywgYW5kIG1vcmUuIFRoaXMgY2xhc3MgYWxsb3dzIGZvciBjb25maWd1cmluZyBhbmQgbWFuYWdpbmcgdGhlc2UgYWN0aW9ucywgbWFraW5nIGl0IGVzc2VudGlhbCBmb3Igc2V0dGluZyB1cCBjb21wcmVoZW5zaXZlIG1vbml0b3JpbmcgYW5kIHJlc3BvbnNlIHN5c3RlbXMgaW4gQXp1cmUgYXBwbGljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LCB0eXBpY2FsbHkgcmVwcmVzZW50aW5nIHRoZSBDbG91ZCBEZXZlbG9wbWVudCBLaXQgKENESykgc3RhY2suXG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZSBvZiB0aGUgQWN0aW9uIEdyb3VwLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBBY3Rpb24gR3JvdXAuIFRoZXNlIHByb3BlcnRpZXMgbWF5IGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgIC0gYG5hbWVgOiBUaGUgbmFtZSBvZiB0aGUgQWN0aW9uIEdyb3VwLlxuICAgKiAgICAgICAgICAgICAgICAtIGByZXNvdXJjZUdyb3VwYDogVGhlIHJlc291cmNlIGdyb3VwIHVuZGVyIHdoaWNoIHRoZSBBY3Rpb24gR3JvdXAgaXMgY3JlYXRlZC5cbiAgICogICAgICAgICAgICAgICAgLSBgc2hvcnROYW1lYDogQSBzaG9ydGVyIG5hbWUgZm9yIHRoZSBBY3Rpb24gR3JvdXAgdXNlZCBpbiBub3RpZmljYXRpb25zLlxuICAgKiAgICAgICAgICAgICAgICAtIGBlbmFibGVkYDogU3BlY2lmaWVzIGlmIHRoZSBBY3Rpb24gR3JvdXAgaXMgYWN0aXZlLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIEFjdGlvbiBHcm91cCBpcyBob3N0ZWQuIERlZmF1bHRzIHRvIGdsb2JhbC5cbiAgICogICAgICAgICAgICAgICAgLSBgdGFnc2A6IEEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBBY3Rpb24gR3JvdXAgZm9yIHJlc291cmNlIG1hbmFnZW1lbnQuXG4gICAqICAgICAgICAgICAgICAgIC0gUmVjZWl2ZXJzOiBDb25maWd1cmF0aW9ucyBmb3IgdmFyaW91cyB0eXBlcyBvZiBub3RpZmljYXRpb25zIChlLmcuLCBlbWFpbCwgU01TLCB3ZWJob29rKS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhY3Rpb25Hcm91cCA9IG5ldyBBY3Rpb25Hcm91cCh0aGlzLCAnbXlBY3Rpb25Hcm91cCcsIHtcbiAgICogICBuYW1lOiAnY3JpdGljYWxBbGVydHNHcm91cCcsXG4gICAqICAgcmVzb3VyY2VHcm91cDogbXlSZXNvdXJjZUdyb3VwLFxuICAgKiAgIHNob3J0TmFtZTogJ0FsZXJ0cycsXG4gICAqICAgbG9jYXRpb246ICdFYXN0IFVTJyxcbiAgICogICBlbWFpbFJlY2VpdmVyczogW3tcbiAgICogICAgIG5hbWU6ICdhZG1pbicsXG4gICAqICAgICBlbWFpbEFkZHJlc3M6ICdhZG1pbkBleGFtcGxlLmNvbSdcbiAgICogICB9XSxcbiAgICogICBzbXNSZWNlaXZlcnM6IFt7XG4gICAqICAgICBuYW1lOiAnYWRtaW5TbXMnLFxuICAgKiAgICAgY291bnRyeUNvZGU6ICcxJyxcbiAgICogICAgIHBob25lTnVtYmVyOiAnNTU1MTIzNDU2NydcbiAgICogICB9XSxcbiAgICogICB0YWdzOiB7XG4gICAqICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nXG4gICAqICAgfVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgc2V0dXAgY3JlYXRlcyBhbiBBY3Rpb24gR3JvdXAgdGhhdCBzZW5kcyBlbWFpbCBhbmQgU01TIG5vdGlmaWNhdGlvbnMgd2hlbiB0cmlnZ2VyZWQgYnkgYW4gYWxlcnQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogbW9kZWwuQWN0aW9uR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gcHJvcHMucmVzb3VyY2VHcm91cDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSBkZWZhdWx0IHZhbHVlcy5cbiAgICAgKi9cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIGVuYWJsZWQ6IHByb3BzLmVuYWJsZWQgPz8gdHJ1ZSxcbiAgICAgIGxvY2F0aW9uOiBwcm9wcy5sb2NhdGlvbiA/PyBcImdsb2JhbFwiLFxuICAgICAgdGFnczogcHJvcHMudGFncyA/PyB7fSxcbiAgICB9O1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBBY3Rpb24gR3JvdXAgd2l0aCB0aGUgcHJvdmlkZWQgcHJvcGVydGllc1xuICAgIGNvbnN0IGF6dXJlcm1Nb25pdG9yQWN0aW9uR3JvdXAgPSBuZXcgTW9uaXRvckFjdGlvbkdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIFwiYWN0aW9uZ3JvdXBcIixcbiAgICAgIHtcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIHNob3J0TmFtZTogcHJvcHMuc2hvcnROYW1lLFxuICAgICAgICBhcm1Sb2xlUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwQXJtUm9sZVJlY2VpdmVyVG9UZXJyYWZvcm0sXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSh0aGlzLnByb3BzLmFybVJvbGVSZWNlaXZlcnMpLFxuXG4gICAgICAgIGVtYWlsUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwRW1haWxSZWNlaXZlclRvVGVycmFmb3JtLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICkodGhpcy5wcm9wcy5lbWFpbFJlY2VpdmVycyksXG5cbiAgICAgICAgdm9pY2VSZWNlaXZlcjogY2RrdGYubGlzdE1hcHBlcihcbiAgICAgICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBWb2ljZVJlY2VpdmVyVG9UZXJyYWZvcm0sXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSh0aGlzLnByb3BzLnZvaWNlUmVjZWl2ZXJzKSxcblxuICAgICAgICBzbXNSZWNlaXZlcjogY2RrdGYubGlzdE1hcHBlcihcbiAgICAgICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBTbXNSZWNlaXZlclRvVGVycmFmb3JtLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICkodGhpcy5wcm9wcy5zbXNSZWNlaXZlcnMpLFxuXG4gICAgICAgIHdlYmhvb2tSZWNlaXZlcjogY2RrdGYubGlzdE1hcHBlcihcbiAgICAgICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBXZWJob29rUmVjZWl2ZXJUb1RlcnJhZm9ybSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApKHRoaXMucHJvcHMud2ViaG9va1JlY2VpdmVycyksXG5cbiAgICAgICAgZXZlbnRIdWJSZWNlaXZlcjogY2RrdGYubGlzdE1hcHBlcihcbiAgICAgICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBFdmVudEh1YlJlY2VpdmVyVG9UZXJyYWZvcm0sXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSh0aGlzLnByb3BzLmV2ZW50SHViUmVjZWl2ZXJzKSxcblxuICAgICAgICBhenVyZUFwcFB1c2hSZWNlaXZlcjogY2RrdGYubGlzdE1hcHBlcihcbiAgICAgICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBBenVyZUFwcFB1c2hSZWNlaXZlclRvVGVycmFmb3JtLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICkodGhpcy5wcm9wcy5henVyZUFwcFB1c2hSZWNlaXZlcnMpLFxuXG4gICAgICAgIGxvZ2ljQXBwUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwTG9naWNBcHBSZWNlaXZlclRvVGVycmFmb3JtLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICkodGhpcy5wcm9wcy5sb2dpY0FwcFJlY2VpdmVycyksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBUZXJyYWZvcm0gT3V0cHV0c1xuICAgIHRoaXMuaWQgPSBhenVyZXJtTW9uaXRvckFjdGlvbkdyb3VwLmlkO1xuXG4gICAgY29uc3QgY2RrdGZUZXJyYWZvcm1PdXRwdXRBY3Rpb25Hcm91cElkID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImlkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtTW9uaXRvckFjdGlvbkdyb3VwLmlkLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLypUaGlzIGFsbG93cyB0aGUgVGVycmFmb3JtIHJlc291cmNlIG5hbWUgdG8gbWF0Y2ggdGhlIG9yaWdpbmFsIG5hbWUuIFlvdSBjYW4gcmVtb3ZlIHRoZSBjYWxsIGlmIHlvdSBkb24ndCBuZWVkIHRoZW0gdG8gbWF0Y2guKi9cbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dEFjdGlvbkdyb3VwSWQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgfVxufVxuIl19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtYWN0aW9uZ3JvdXAvbGliL2FjdGlvbmdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJGQUFzRjtBQUV0RiwrQkFBK0I7QUFFL0IsOENBQXFEO0FBQ3JELGtDQUFrQztBQUVsQyxNQUFhLFdBQVksU0FBUSxtQkFBYTtJQUk1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQ0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTZCO1FBQ3JFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEQ7O1dBRUc7UUFDSCxNQUFNLFFBQVEsR0FBRztZQUNmLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUk7WUFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUTtZQUNwQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1NBQ3ZCLENBQUM7UUFFRix1REFBdUQ7UUFDdkQsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLHlDQUFrQixDQUN0RCxJQUFJLEVBQ0osYUFBYSxFQUNiO1lBQ0UsR0FBRyxRQUFRO1lBQ1gsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUMxQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsZUFBZSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQy9CLEtBQUssQ0FBQyw0Q0FBNEMsRUFDbEQsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztZQUU5QixhQUFhLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FDN0IsS0FBSyxDQUFDLDBDQUEwQyxFQUNoRCxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUU1QixhQUFhLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FDN0IsS0FBSyxDQUFDLDBDQUEwQyxFQUNoRCxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUU1QixXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FDM0IsS0FBSyxDQUFDLHdDQUF3QyxFQUM5QyxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUUxQixlQUFlLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FDL0IsS0FBSyxDQUFDLDRDQUE0QyxFQUNsRCxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1lBRTlCLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQ2hDLEtBQUssQ0FBQyw2Q0FBNkMsRUFDbkQsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztZQUUvQixvQkFBb0IsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUNwQyxLQUFLLENBQUMsaURBQWlELEVBQ3ZELElBQUksQ0FDTCxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUM7WUFFbkMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FDaEMsS0FBSyxDQUFDLDZDQUE2QyxFQUNuRCxJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1NBQ2hDLENBQ0YsQ0FBQztRQUVGLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsRUFBRSxHQUFHLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztRQUV2QyxNQUFNLGlDQUFpQyxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDakUsSUFBSSxFQUNKLElBQUksRUFDSjtZQUNFLEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxFQUFFO1NBQ3BDLENBQ0YsQ0FBQztRQUVGLGdJQUFnSTtRQUNoSSxpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0Y7QUEzSEQsa0NBMkhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uaXRvckFjdGlvbkdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9tb25pdG9yLWFjdGlvbi1ncm91cFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF6dXJlUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWJcIjtcbmltcG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuLi9tb2RlbFwiO1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uR3JvdXAgZXh0ZW5kcyBBenVyZVJlc291cmNlIHtcbiAgcmVhZG9ubHkgcHJvcHM6IG1vZGVsLkFjdGlvbkdyb3VwUHJvcHM7XG4gIHB1YmxpYyByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIE1hbmFnZXMgYW4gQXp1cmUgTW9uaXRvciBBY3Rpb24gR3JvdXAsIHdoaWNoIGlzIHVzZWQgdG8gdHJpZ2dlciBhY3Rpb25zIG9yIG5vdGlmaWNhdGlvbnMgYmFzZWQgb24gYWxlcnRzIG9yIGNvbmRpdGlvbnMgbWV0IHdpdGhpbiBBenVyZSBNb25pdG9yLlxuICAgKlxuICAgKiBBbiBBY3Rpb24gR3JvdXAgaW4gQXp1cmUgTW9uaXRvciBkZWZpbmVzIGEgY29sbGVjdGlvbiBvZiBpbmRpdmlkdWFsIGFjdGlvbnMgdGhhdCBhcmUgdHJpZ2dlcmVkIHdoZW4gdGhlIGNvbmRpdGlvbnMgb2YgYW4gYXNzb2NpYXRlZCBhbGVydCBydWxlIGFyZSBtZXQuIEFjdGlvbnMgY2FuIGluY2x1ZGUgc2VuZGluZyBlbWFpbHMsIHRyaWdnZXJpbmcgQXp1cmUgRnVuY3Rpb25zLCBjYWxsaW5nIHdlYmhvb2tzLCBhbmQgbW9yZS4gVGhpcyBjbGFzcyBhbGxvd3MgZm9yIGNvbmZpZ3VyaW5nIGFuZCBtYW5hZ2luZyB0aGVzZSBhY3Rpb25zLCBtYWtpbmcgaXQgZXNzZW50aWFsIGZvciBzZXR0aW5nIHVwIGNvbXByZWhlbnNpdmUgbW9uaXRvcmluZyBhbmQgcmVzcG9uc2Ugc3lzdGVtcyBpbiBBenVyZSBhcHBsaWNhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBzdGFjay5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBBY3Rpb24gR3JvdXAuXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEFjdGlvbiBHcm91cC4gVGhlc2UgcHJvcGVydGllcyBtYXkgaW5jbHVkZTpcbiAgICogICAgICAgICAgICAgICAgLSBgbmFtZWA6IFRoZSBuYW1lIG9mIHRoZSBBY3Rpb24gR3JvdXAuXG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBPcHRpb25hbC4gUmVmZXJlbmNlIHRvIHRoZSByZXNvdXJjZSBncm91cCBmb3IgZGVwbG95bWVudC5cbiAgICogICAgICAgICAgICAgICAgLSBgc2hvcnROYW1lYDogQSBzaG9ydGVyIG5hbWUgZm9yIHRoZSBBY3Rpb24gR3JvdXAgdXNlZCBpbiBub3RpZmljYXRpb25zLlxuICAgKiAgICAgICAgICAgICAgICAtIGBlbmFibGVkYDogU3BlY2lmaWVzIGlmIHRoZSBBY3Rpb24gR3JvdXAgaXMgYWN0aXZlLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIEFjdGlvbiBHcm91cCBpcyBob3N0ZWQuIERlZmF1bHRzIHRvIGdsb2JhbC5cbiAgICogICAgICAgICAgICAgICAgLSBgdGFnc2A6IEEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBBY3Rpb24gR3JvdXAgZm9yIHJlc291cmNlIG1hbmFnZW1lbnQuXG4gICAqICAgICAgICAgICAgICAgIC0gUmVjZWl2ZXJzOiBDb25maWd1cmF0aW9ucyBmb3IgdmFyaW91cyB0eXBlcyBvZiBub3RpZmljYXRpb25zIChlLmcuLCBlbWFpbCwgU01TLCB3ZWJob29rKS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBhY3Rpb25Hcm91cCA9IG5ldyBBY3Rpb25Hcm91cCh0aGlzLCAnbXlBY3Rpb25Hcm91cCcsIHtcbiAgICogICBuYW1lOiAnY3JpdGljYWxBbGVydHNHcm91cCcsXG4gICAqICAgcmVzb3VyY2VHcm91cDogbXlSZXNvdXJjZUdyb3VwLFxuICAgKiAgIHNob3J0TmFtZTogJ0FsZXJ0cycsXG4gICAqICAgbG9jYXRpb246ICdFYXN0IFVTJyxcbiAgICogICBlbWFpbFJlY2VpdmVyczogW3tcbiAgICogICAgIG5hbWU6ICdhZG1pbicsXG4gICAqICAgICBlbWFpbEFkZHJlc3M6ICdhZG1pbkBleGFtcGxlLmNvbSdcbiAgICogICB9XSxcbiAgICogICBzbXNSZWNlaXZlcnM6IFt7XG4gICAqICAgICBuYW1lOiAnYWRtaW5TbXMnLFxuICAgKiAgICAgY291bnRyeUNvZGU6ICcxJyxcbiAgICogICAgIHBob25lTnVtYmVyOiAnNTU1MTIzNDU2NydcbiAgICogICB9XSxcbiAgICogICB0YWdzOiB7XG4gICAqICAgICBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nXG4gICAqICAgfVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgc2V0dXAgY3JlYXRlcyBhbiBBY3Rpb24gR3JvdXAgdGhhdCBzZW5kcyBlbWFpbCBhbmQgU01TIG5vdGlmaWNhdGlvbnMgd2hlbiB0cmlnZ2VyZWQgYnkgYW4gYWxlcnQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogbW9kZWwuQWN0aW9uR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gdGhpcy5zZXR1cFJlc291cmNlR3JvdXAocHJvcHMpO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIGRlZmF1bHQgdmFsdWVzLlxuICAgICAqL1xuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgZW5hYmxlZDogcHJvcHMuZW5hYmxlZCA/PyB0cnVlLFxuICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uID8/IFwiZ2xvYmFsXCIsXG4gICAgICB0YWdzOiBwcm9wcy50YWdzID8/IHt9LFxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgdGhlIEFjdGlvbiBHcm91cCB3aXRoIHRoZSBwcm92aWRlZCBwcm9wZXJ0aWVzXG4gICAgY29uc3QgYXp1cmVybU1vbml0b3JBY3Rpb25Hcm91cCA9IG5ldyBNb25pdG9yQWN0aW9uR3JvdXAoXG4gICAgICB0aGlzLFxuICAgICAgXCJhY3Rpb25ncm91cFwiLFxuICAgICAge1xuICAgICAgICAuLi5kZWZhdWx0cyxcbiAgICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHRoaXMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgICBzaG9ydE5hbWU6IHByb3BzLnNob3J0TmFtZSxcbiAgICAgICAgYXJtUm9sZVJlY2VpdmVyOiBjZGt0Zi5saXN0TWFwcGVyKFxuICAgICAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEFybVJvbGVSZWNlaXZlclRvVGVycmFmb3JtLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICkodGhpcy5wcm9wcy5hcm1Sb2xlUmVjZWl2ZXJzKSxcblxuICAgICAgICBlbWFpbFJlY2VpdmVyOiBjZGt0Zi5saXN0TWFwcGVyKFxuICAgICAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEVtYWlsUmVjZWl2ZXJUb1RlcnJhZm9ybSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApKHRoaXMucHJvcHMuZW1haWxSZWNlaXZlcnMpLFxuXG4gICAgICAgIHZvaWNlUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwVm9pY2VSZWNlaXZlclRvVGVycmFmb3JtLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICkodGhpcy5wcm9wcy52b2ljZVJlY2VpdmVycyksXG5cbiAgICAgICAgc21zUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwU21zUmVjZWl2ZXJUb1RlcnJhZm9ybSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApKHRoaXMucHJvcHMuc21zUmVjZWl2ZXJzKSxcblxuICAgICAgICB3ZWJob29rUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwV2ViaG9va1JlY2VpdmVyVG9UZXJyYWZvcm0sXG4gICAgICAgICAgdHJ1ZSxcbiAgICAgICAgKSh0aGlzLnByb3BzLndlYmhvb2tSZWNlaXZlcnMpLFxuXG4gICAgICAgIGV2ZW50SHViUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwRXZlbnRIdWJSZWNlaXZlclRvVGVycmFmb3JtLFxuICAgICAgICAgIHRydWUsXG4gICAgICAgICkodGhpcy5wcm9wcy5ldmVudEh1YlJlY2VpdmVycyksXG5cbiAgICAgICAgYXp1cmVBcHBQdXNoUmVjZWl2ZXI6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwQXp1cmVBcHBQdXNoUmVjZWl2ZXJUb1RlcnJhZm9ybSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApKHRoaXMucHJvcHMuYXp1cmVBcHBQdXNoUmVjZWl2ZXJzKSxcblxuICAgICAgICBsb2dpY0FwcFJlY2VpdmVyOiBjZGt0Zi5saXN0TWFwcGVyKFxuICAgICAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cExvZ2ljQXBwUmVjZWl2ZXJUb1RlcnJhZm9ybSxcbiAgICAgICAgICB0cnVlLFxuICAgICAgICApKHRoaXMucHJvcHMubG9naWNBcHBSZWNlaXZlcnMpLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gVGVycmFmb3JtIE91dHB1dHNcbiAgICB0aGlzLmlkID0gYXp1cmVybU1vbml0b3JBY3Rpb25Hcm91cC5pZDtcblxuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0QWN0aW9uR3JvdXBJZCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJpZFwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybU1vbml0b3JBY3Rpb25Hcm91cC5pZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8qVGhpcyBhbGxvd3MgdGhlIFRlcnJhZm9ybSByZXNvdXJjZSBuYW1lIHRvIG1hdGNoIHRoZSBvcmlnaW5hbCBuYW1lLiBZb3UgY2FuIHJlbW92ZSB0aGUgY2FsbCBpZiB5b3UgZG9uJ3QgbmVlZCB0aGVtIHRvIG1hdGNoLiovXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRBY3Rpb25Hcm91cElkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gIH1cbn1cbiJdfQ==
@@ -13,9 +13,10 @@ export interface ActionGroupProps {
13
13
  */
14
14
  readonly name: string;
15
15
  /**
16
- * The name of the resource group in which to create the Action Group instance.
16
+ * An optional reference to the resource group in which to deploy the Action Group.
17
+ * If not provided, the Action Group will be deployed in the default resource group.
17
18
  */
18
- readonly resourceGroup: ResourceGroup;
19
+ readonly resourceGroup?: ResourceGroup;
19
20
  /**
20
21
  * The short name of the action group. This will be used in SMS messages. The length should be in the range (1 - 12).
21
22
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWFjdGlvbmdyb3VwL21vZGVsL2FjdGlvbi1ncm91cC1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCB7IEFybVJvbGVSZWNlaXZlclByb3BzIH0gZnJvbSBcIi4vYXJtLXJvbGUtcmVjZWl2ZXItcHJvcHNcIjtcbmltcG9ydCB7IEF6dXJlQXBwUHVzaFJlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi9henVyZS1hcHAtcHVzaC1yZWNlaXZlci1wcm9wc1wiO1xuaW1wb3J0IHsgRW1haWxSZWNlaXZlcnNQcm9wcyB9IGZyb20gXCIuL2VtYWlsLXJlY2VpdmVyLXByb3BzXCI7XG5pbXBvcnQgeyBFdmVudGh1YlJlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi9ldmVudGh1Yi1yZWNlaXZlci1wcm9wc1wiO1xuaW1wb3J0IHsgTG9naWNBcHBSZWNlaXZlclByb3BzIH0gZnJvbSBcIi4vbG9naWMtYXBwLXJlY2VpdmVyLXByb3BzXCI7XG5pbXBvcnQgeyBTbXNSZWNlaXZlclByb3BzIH0gZnJvbSBcIi4vc21zLXJlY2VpdmVyLXByb3BzXCI7XG5pbXBvcnQgeyBWb2ljZVJlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi92b2ljZS1yZWNlaXZlci1wcm9wc1wiO1xuaW1wb3J0IHsgV2ViaG9va1JlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi93ZWJob29rLXJlY2VpdmVyLXByb3BzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uR3JvdXBQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQWN0aW9uIEdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgQWN0aW9uIEdyb3VwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcbiAgLyoqXG4gICAqIFRoZSBzaG9ydCBuYW1lIG9mIHRoZSBhY3Rpb24gZ3JvdXAuIFRoaXMgd2lsbCBiZSB1c2VkIGluIFNNUyBtZXNzYWdlcy4gVGhlIGxlbmd0aCBzaG91bGQgYmUgaW4gdGhlIHJhbmdlICgxIC0gMTIpLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvcnROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgYWN0aW9uIGdyb3VwIGlzIGVuYWJsZWQuIElmIGFuIGFjdGlvbiBncm91cCBpcyBub3QgZW5hYmxlZCwgdGhlbiBub25lIG9mIGl0cyByZWNlaXZlcnMgd2lsbCByZWNlaXZlIGNvbW11bmljYXRpb25zLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBBenVyZSBSZWdpb24gd2hlcmUgdGhlIEFjdGlvbiBHcm91cCBzaG91bGQgZXhpc3QuXG4gICAqIEBkZWZhdWx0IGdsb2JhbFxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIG1hcHBpbmcgb2YgdGFncyB0byBhc3NpZ24gdG8gdGhlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgcmVhZG9ubHkgYXJtUm9sZVJlY2VpdmVycz86IEFybVJvbGVSZWNlaXZlclByb3BzW107XG5cbiAgcmVhZG9ubHkgZW1haWxSZWNlaXZlcnM/OiBFbWFpbFJlY2VpdmVyc1Byb3BzW107XG5cbiAgcmVhZG9ubHkgdm9pY2VSZWNlaXZlcnM/OiBWb2ljZVJlY2VpdmVyUHJvcHNbXTtcblxuICByZWFkb25seSBzbXNSZWNlaXZlcnM/OiBTbXNSZWNlaXZlclByb3BzW107XG5cbiAgcmVhZG9ubHkgd2ViaG9va1JlY2VpdmVycz86IFdlYmhvb2tSZWNlaXZlclByb3BzW107XG5cbiAgcmVhZG9ubHkgZXZlbnRIdWJSZWNlaXZlcnM/OiBFdmVudGh1YlJlY2VpdmVyUHJvcHNbXTtcblxuICByZWFkb25seSBhenVyZUFwcFB1c2hSZWNlaXZlcnM/OiBBenVyZUFwcFB1c2hSZWNlaXZlclByb3BzW107XG5cbiAgcmVhZG9ubHkgbG9naWNBcHBSZWNlaXZlcnM/OiBMb2dpY0FwcFJlY2VpdmVyUHJvcHNbXTtcblxuICAvLyBUT0RPOlxuICAvLyByZWFkb25seSBpdHNtUmVjZWl2ZXJzO1xuICAvLyByZWFkb25seSBhdXRvbWF0aW9uUnVuYm9va1JlY2VpdmVycztcbiAgLy8gcmVhZG9ubHkgYXp1cmVGdW5jdGlvblJlY2VpdmVycztcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWdyb3VwLXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWFjdGlvbmdyb3VwL21vZGVsL2FjdGlvbi1ncm91cC1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCB7IEFybVJvbGVSZWNlaXZlclByb3BzIH0gZnJvbSBcIi4vYXJtLXJvbGUtcmVjZWl2ZXItcHJvcHNcIjtcbmltcG9ydCB7IEF6dXJlQXBwUHVzaFJlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi9henVyZS1hcHAtcHVzaC1yZWNlaXZlci1wcm9wc1wiO1xuaW1wb3J0IHsgRW1haWxSZWNlaXZlcnNQcm9wcyB9IGZyb20gXCIuL2VtYWlsLXJlY2VpdmVyLXByb3BzXCI7XG5pbXBvcnQgeyBFdmVudGh1YlJlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi9ldmVudGh1Yi1yZWNlaXZlci1wcm9wc1wiO1xuaW1wb3J0IHsgTG9naWNBcHBSZWNlaXZlclByb3BzIH0gZnJvbSBcIi4vbG9naWMtYXBwLXJlY2VpdmVyLXByb3BzXCI7XG5pbXBvcnQgeyBTbXNSZWNlaXZlclByb3BzIH0gZnJvbSBcIi4vc21zLXJlY2VpdmVyLXByb3BzXCI7XG5pbXBvcnQgeyBWb2ljZVJlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi92b2ljZS1yZWNlaXZlci1wcm9wc1wiO1xuaW1wb3J0IHsgV2ViaG9va1JlY2VpdmVyUHJvcHMgfSBmcm9tIFwiLi93ZWJob29rLXJlY2VpdmVyLXByb3BzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uR3JvdXBQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQWN0aW9uIEdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCByZWZlcmVuY2UgdG8gdGhlIHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRvIGRlcGxveSB0aGUgQWN0aW9uIEdyb3VwLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHRoZSBBY3Rpb24gR3JvdXAgd2lsbCBiZSBkZXBsb3llZCBpbiB0aGUgZGVmYXVsdCByZXNvdXJjZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA/OiBSZXNvdXJjZUdyb3VwO1xuICAvKipcbiAgICogVGhlIHNob3J0IG5hbWUgb2YgdGhlIGFjdGlvbiBncm91cC4gVGhpcyB3aWxsIGJlIHVzZWQgaW4gU01TIG1lc3NhZ2VzLiBUaGUgbGVuZ3RoIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UgKDEgLSAxMikuXG4gICAqL1xuICByZWFkb25seSBzaG9ydE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBhY3Rpb24gZ3JvdXAgaXMgZW5hYmxlZC4gSWYgYW4gYWN0aW9uIGdyb3VwIGlzIG5vdCBlbmFibGVkLCB0aGVuIG5vbmUgb2YgaXRzIHJlY2VpdmVycyB3aWxsIHJlY2VpdmUgY29tbXVuaWNhdGlvbnMuIERlZmF1bHRzIHRvIHRydWUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIEF6dXJlIFJlZ2lvbiB3aGVyZSB0aGUgQWN0aW9uIEdyb3VwIHNob3VsZCBleGlzdC5cbiAgICogQGRlZmF1bHQgZ2xvYmFsXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIEEgbWFwcGluZyBvZiB0YWdzIHRvIGFzc2lnbiB0byB0aGUgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICByZWFkb25seSBhcm1Sb2xlUmVjZWl2ZXJzPzogQXJtUm9sZVJlY2VpdmVyUHJvcHNbXTtcblxuICByZWFkb25seSBlbWFpbFJlY2VpdmVycz86IEVtYWlsUmVjZWl2ZXJzUHJvcHNbXTtcblxuICByZWFkb25seSB2b2ljZVJlY2VpdmVycz86IFZvaWNlUmVjZWl2ZXJQcm9wc1tdO1xuXG4gIHJlYWRvbmx5IHNtc1JlY2VpdmVycz86IFNtc1JlY2VpdmVyUHJvcHNbXTtcblxuICByZWFkb25seSB3ZWJob29rUmVjZWl2ZXJzPzogV2ViaG9va1JlY2VpdmVyUHJvcHNbXTtcblxuICByZWFkb25seSBldmVudEh1YlJlY2VpdmVycz86IEV2ZW50aHViUmVjZWl2ZXJQcm9wc1tdO1xuXG4gIHJlYWRvbmx5IGF6dXJlQXBwUHVzaFJlY2VpdmVycz86IEF6dXJlQXBwUHVzaFJlY2VpdmVyUHJvcHNbXTtcblxuICByZWFkb25seSBsb2dpY0FwcFJlY2VpdmVycz86IExvZ2ljQXBwUmVjZWl2ZXJQcm9wc1tdO1xuXG4gIC8vIFRPRE86XG4gIC8vIHJlYWRvbmx5IGl0c21SZWNlaXZlcnM7XG4gIC8vIHJlYWRvbmx5IGF1dG9tYXRpb25SdW5ib29rUmVjZWl2ZXJzO1xuICAvLyByZWFkb25seSBhenVyZUZ1bmN0aW9uUmVjZWl2ZXJzO1xufVxuIl19
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
4
- const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
5
4
  const cdktf_1 = require("cdktf");
6
5
  const ExampleAzureActionGroup_1 = require("./ExampleAzureActionGroup");
7
6
  require("cdktf/lib/testing/adapters/jest");
@@ -15,13 +14,8 @@ describe("Action Group With Defaults", () => {
15
14
  const app = cdktf_1.Testing.app();
16
15
  stack = new cdktf_1.TerraformStack(app, "test");
17
16
  new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
18
- const resourceGroup = new resource_group_1.ResourceGroup(stack, "MyResourceGroup", {
19
- name: "testrg",
20
- location: "eastus",
21
- });
22
17
  new __1.ActionGroup(stack, "testAzureActionGroupDefaults", {
23
18
  name: "testactiongroup",
24
- resourceGroup: resourceGroup,
25
19
  shortName: "testshortn",
26
20
  });
27
21
  fullSynthResult = cdktf_1.Testing.fullSynth(stack); // Save the result for reuse
@@ -43,13 +37,8 @@ describe("Action Group With Defaults 2", () => {
43
37
  const app = cdktf_1.Testing.app();
44
38
  stack = new cdktf_1.TerraformStack(app, "test2");
45
39
  new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
46
- const resourceGroup2 = new resource_group_1.ResourceGroup(stack, "MyResourceGroup2", {
47
- name: "testrg2",
48
- location: "eastus",
49
- });
50
40
  new __1.ActionGroup(stack, "testAzureActionGroupDefaults", {
51
41
  name: "testactiongroup",
52
- resourceGroup: resourceGroup2,
53
42
  shortName: "testshortn",
54
43
  enabled: false,
55
44
  location: "global",
@@ -291,4 +280,4 @@ describe("Action Group Helper Functions Unit Test for LogicAppReceiverProps", ()
291
280
  expect(model.monitorActionGroupLogicAppReceiverToTerraform(logicAppReceiverProps3)).toBeUndefined();
292
281
  });
293
282
  });
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVBY3Rpb25Hcm91cC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWFjdGlvbmdyb3VwL3Rlc3QvQXp1cmVBY3Rpb25Hcm91cC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUVBQXVFO0FBQ3ZFLCtFQUEyRTtBQUMzRSxpQ0FBZ0Q7QUFDaEQsdUVBQW9FO0FBQ3BFLDJDQUF5QztBQUN6QywwQkFBaUM7QUFDakMsd0RBQXdEO0FBQ3hELGtDQUFrQztBQUVsQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsR0FBRyxFQUFFO0lBQzFDLElBQUksS0FBcUIsQ0FBQztJQUMxQixJQUFJLGVBQW9CLENBQUM7SUFFekIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLE1BQU0sR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixLQUFLLEdBQUcsSUFBSSxzQkFBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUV4QyxJQUFJLDBCQUFlLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdELE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7WUFDaEUsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLGVBQVcsQ0FBQyxLQUFLLEVBQUUsOEJBQThCLEVBQUU7WUFDckQsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixhQUFhLEVBQUUsYUFBYTtZQUM1QixTQUFTLEVBQUUsWUFBWTtTQUN4QixDQUFDLENBQUM7UUFFSCxlQUFlLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtJQUMxRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyREFBMkQsRUFBRSxHQUFHLEVBQUU7UUFDbkUsTUFBTSxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztJQUN2RixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7UUFDaEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyx1QkFBdUI7SUFDdkUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsdUJBQXVCO0lBQ3ZFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO0lBQzVDLElBQUksS0FBcUIsQ0FBQztJQUMxQixJQUFJLGVBQW9CLENBQUM7SUFFekIsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLE1BQU0sR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixLQUFLLEdBQUcsSUFBSSxzQkFBYyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUV6QyxJQUFJLDBCQUFlLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdELE1BQU0sY0FBYyxHQUFHLElBQUksOEJBQWEsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUU7WUFDbEUsSUFBSSxFQUFFLFNBQVM7WUFDZixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7UUFFSCxJQUFJLGVBQVcsQ0FBQyxLQUFLLEVBQUUsOEJBQThCLEVBQUU7WUFDckQsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixhQUFhLEVBQUUsY0FBYztZQUM3QixTQUFTLEVBQUUsWUFBWTtZQUN2QixPQUFPLEVBQUUsS0FBSztZQUNkLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTthQUNiO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsZUFBZSxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkRBQTJELEVBQUUsR0FBRyxFQUFFO1FBQ25FLE1BQU0sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxxQ0FBcUM7SUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO1FBQ2hFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsdUJBQXVCO0lBQ3ZFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUN0QyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtJQUN2RSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtJQUNwQyxFQUFFLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO1FBQ3JDLDRGQUE0RjtRQUM1RixNQUFNLE1BQU0sR0FBRyxlQUFPLENBQUMsS0FBSyxDQUMxQixJQUFJLGlEQUF1QixDQUFDLGVBQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxDQUNuRSxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekQsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdEQUF3RCxFQUFFLEdBQUcsRUFBRTtRQUNoRSxpRUFBaUU7UUFDakUsTUFBTSxDQUNKLGVBQU8sQ0FBQyxTQUFTLENBQ2YsSUFBSSxpREFBdUIsQ0FBQyxlQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsc0JBQXNCLENBQUMsQ0FDbkUsQ0FDRixDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLGlFQUFpRTtRQUNqRSxNQUFNLENBQ0osZUFBTyxDQUFDLFNBQVMsQ0FDZixJQUFJLGlEQUF1QixDQUFDLGVBQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxDQUNuRSxDQUNGLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxRQUFRLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO0lBQ2hGLElBQUkscUJBQXFCLEdBQStCO1FBQ3RELElBQUksRUFBRSwwQkFBMEI7UUFDaEMsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixvQkFBb0IsRUFBRSxJQUFJO0tBQzNCLENBQUM7SUFDRixJQUFJLHFCQUFxQixHQUErQjtRQUN0RCxJQUFJLEVBQUUsMEJBQTBCO1FBQ2hDLE1BQU0sRUFBRSxnQkFBZ0I7S0FDekIsQ0FBQztJQUNGLElBQUkscUJBQWlELENBQUM7SUFFdEQsRUFBRSxDQUFDLDBEQUEwRCxFQUFFLEdBQUcsRUFBRTtRQUNsRSxNQUFNLENBQ0osS0FBSyxDQUFDLDRDQUE0QyxDQUFDLHFCQUFxQixDQUFDLENBQzFFLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkRBQTZELEVBQUUsR0FBRyxFQUFFO1FBQ3JFLE1BQU0sQ0FDSixLQUFLLENBQUMsNENBQTRDLENBQUMscUJBQXFCLENBQUMsQ0FDMUUsQ0FBQyxhQUFhLENBQUM7WUFDZCxJQUFJLEVBQUUsMEJBQTBCO1lBQ2hDLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDMUMsTUFBTSxDQUNKLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUMxRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsaUVBQWlFLEVBQUUsR0FBRyxFQUFFO0lBQy9FLElBQUksbUJBQW1CLEdBQThCO1FBQ25ELElBQUksRUFBRSx1QkFBdUI7UUFDN0IsWUFBWSxFQUFFLHNCQUFzQjtRQUNwQyxvQkFBb0IsRUFBRSxJQUFJO0tBQzNCLENBQUM7SUFDRixJQUFJLG1CQUFtQixHQUE4QjtRQUNuRCxJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLFlBQVksRUFBRSxzQkFBc0I7S0FDckMsQ0FBQztJQUNGLElBQUksbUJBQThDLENBQUM7SUFFbkQsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtRQUMvRCxNQUFNLENBQ0osS0FBSyxDQUFDLDBDQUEwQyxDQUFDLG1CQUFtQixDQUFDLENBQ3RFLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixZQUFZLEVBQUUsc0JBQXNCO1lBQ3BDLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1FBQ2xFLE1BQU0sQ0FDSixLQUFLLENBQUMsMENBQTBDLENBQUMsbUJBQW1CLENBQUMsQ0FDdEUsQ0FBQyxhQUFhLENBQUM7WUFDZCxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFlBQVksRUFBRSxzQkFBc0I7WUFDcEMsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxDQUNKLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUN0RSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsZ0VBQWdFLEVBQUUsR0FBRyxFQUFFO0lBQzlFLElBQUksbUJBQW1CLEdBQTZCO1FBQ2xELElBQUksRUFBRSx1QkFBdUI7UUFDN0IsV0FBVyxFQUFFLEdBQUc7UUFDaEIsV0FBVyxFQUFFLFlBQVk7S0FDMUIsQ0FBQztJQUNGLElBQUksbUJBQTZDLENBQUM7SUFFbEQsRUFBRSxDQUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtRQUNyQyxNQUFNLENBQ0osS0FBSyxDQUFDLDBDQUEwQyxDQUFDLG1CQUFtQixDQUFDLENBQ3RFLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixXQUFXLEVBQUUsR0FBRztZQUNoQixXQUFXLEVBQUUsWUFBWTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFDdkMsTUFBTSxDQUNKLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUN0RSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO0lBQzVFLElBQUksaUJBQWlCLEdBQTJCO1FBQzlDLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsV0FBVyxFQUFFLEdBQUc7UUFDaEIsV0FBVyxFQUFFLFlBQVk7S0FDMUIsQ0FBQztJQUNGLElBQUksaUJBQXlDLENBQUM7SUFFOUMsRUFBRSxDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxNQUFNLENBQ0osS0FBSyxDQUFDLHdDQUF3QyxDQUFDLGlCQUFpQixDQUFDLENBQ2xFLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixXQUFXLEVBQUUsR0FBRztZQUNoQixXQUFXLEVBQUUsWUFBWTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxHQUFHLEVBQUU7UUFDckMsTUFBTSxDQUNKLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxpQkFBaUIsQ0FBQyxDQUNsRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxFQUFFO0lBQ2hGLElBQUkscUJBQXFCLEdBQStCO1FBQ3RELElBQUksRUFBRSx5QkFBeUI7UUFDL0IsVUFBVSxFQUFFLDRCQUE0QjtRQUN4QyxvQkFBb0IsRUFBRSxJQUFJO0tBQzNCLENBQUM7SUFDRixJQUFJLHFCQUFxQixHQUErQjtRQUN0RCxJQUFJLEVBQUUseUJBQXlCO1FBQy9CLFVBQVUsRUFBRSw0QkFBNEI7S0FDekMsQ0FBQztJQUNGLElBQUkscUJBQWlELENBQUM7SUFFdEQsRUFBRSxDQUFDLHlEQUF5RCxFQUFFLEdBQUcsRUFBRTtRQUNqRSxNQUFNLENBQ0osS0FBSyxDQUFDLDRDQUE0QyxDQUFDLHFCQUFxQixDQUFDLENBQzFFLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLHlCQUF5QjtZQUMvQixVQUFVLEVBQUUsNEJBQTRCO1lBQ3hDLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNERBQTRELEVBQUUsR0FBRyxFQUFFO1FBQ3BFLE1BQU0sQ0FDSixLQUFLLENBQUMsNENBQTRDLENBQUMscUJBQXFCLENBQUMsQ0FDMUUsQ0FBQyxhQUFhLENBQUM7WUFDZCxJQUFJLEVBQUUseUJBQXlCO1lBQy9CLFVBQVUsRUFBRSw0QkFBNEI7WUFDeEMsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7UUFDekMsTUFBTSxDQUNKLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUMxRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsbUVBQW1FLEVBQUUsR0FBRyxFQUFFO0lBQ2pGLElBQUksc0JBQXNCLEdBQWdDO1FBQ3hELElBQUksRUFBRSwwQkFBMEI7UUFDaEMsWUFBWSxFQUFFLG1CQUFtQjtRQUNqQyxpQkFBaUIsRUFBRSxnQkFBZ0I7UUFDbkMsb0JBQW9CLEVBQUUsSUFBSTtLQUMzQixDQUFDO0lBQ0YsSUFBSSxzQkFBc0IsR0FBZ0M7UUFDeEQsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxZQUFZLEVBQUUsbUJBQW1CO1FBQ2pDLGlCQUFpQixFQUFFLGdCQUFnQjtLQUNwQyxDQUFDO0lBQ0YsSUFBSSxzQkFBbUQsQ0FBQztJQUV4RCxFQUFFLENBQUMsMERBQTBELEVBQUUsR0FBRyxFQUFFO1FBQ2xFLE1BQU0sQ0FDSixLQUFLLENBQUMsNkNBQTZDLENBQ2pELHNCQUFzQixDQUN2QixDQUNGLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLGlCQUFpQixFQUFFLGdCQUFnQjtZQUNuQyxvQkFBb0IsRUFBRSxJQUFJO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDZEQUE2RCxFQUFFLEdBQUcsRUFBRTtRQUNyRSxNQUFNLENBQ0osS0FBSyxDQUFDLDZDQUE2QyxDQUNqRCxzQkFBc0IsQ0FDdkIsQ0FDRixDQUFDLGFBQWEsQ0FBQztZQUNkLElBQUksRUFBRSwwQkFBMEI7WUFDaEMsWUFBWSxFQUFFLG1CQUFtQjtZQUNqQyxpQkFBaUIsRUFBRSxnQkFBZ0I7WUFDbkMsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDMUMsTUFBTSxDQUNKLEtBQUssQ0FBQyw2Q0FBNkMsQ0FDakQsc0JBQXNCLENBQ3ZCLENBQ0YsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLHVFQUF1RSxFQUFFLEdBQUcsRUFBRTtJQUNyRixJQUFJLDBCQUEwQixHQUFvQztRQUNoRSxJQUFJLEVBQUUsZ0NBQWdDO1FBQ3RDLFlBQVksRUFBRSwwQkFBMEI7S0FDekMsQ0FBQztJQUNGLElBQUksMEJBQTJELENBQUM7SUFFaEUsRUFBRSxDQUFDLGdFQUFnRSxFQUFFLEdBQUcsRUFBRTtRQUN4RSxNQUFNLENBQ0osS0FBSyxDQUFDLGlEQUFpRCxDQUNyRCwwQkFBMEIsQ0FDM0IsQ0FDRixDQUFDLGFBQWEsQ0FBQztZQUNkLElBQUksRUFBRSxnQ0FBZ0M7WUFDdEMsWUFBWSxFQUFFLDBCQUEwQjtTQUN6QyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsTUFBTSxDQUNKLEtBQUssQ0FBQyxpREFBaUQsQ0FDckQsMEJBQTBCLENBQzNCLENBQ0YsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLG1FQUFtRSxFQUFFLEdBQUcsRUFBRTtJQUNqRixJQUFJLHNCQUFzQixHQUFnQztRQUN4RCxJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsV0FBVyxFQUFFLDhCQUE4QjtRQUMzQyxvQkFBb0IsRUFBRSxJQUFJO0tBQzNCLENBQUM7SUFDRixJQUFJLHNCQUFzQixHQUFnQztRQUN4RCxJQUFJLEVBQUUsMkJBQTJCO1FBQ2pDLFVBQVUsRUFBRSxvQkFBb0I7UUFDaEMsV0FBVyxFQUFFLDhCQUE4QjtLQUM1QyxDQUFDO0lBQ0YsSUFBSSxzQkFBbUQsQ0FBQztJQUV4RCxFQUFFLENBQUMsMkRBQTJELEVBQUUsR0FBRyxFQUFFO1FBQ25FLE1BQU0sQ0FDSixLQUFLLENBQUMsNkNBQTZDLENBQ2pELHNCQUFzQixDQUN2QixDQUNGLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLDJCQUEyQjtZQUNqQyxXQUFXLEVBQUUsOEJBQThCO1lBQzNDLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO1FBQ3RFLE1BQU0sQ0FDSixLQUFLLENBQUMsNkNBQTZDLENBQ2pELHNCQUFzQixDQUN2QixDQUNGLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLDJCQUEyQjtZQUNqQyxXQUFXLEVBQUUsOEJBQThCO1lBQzNDLG9CQUFvQixFQUFFLEtBQUs7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sQ0FDSixLQUFLLENBQUMsNkNBQTZDLENBQ2pELHNCQUFzQixDQUN2QixDQUNGLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF6dXJlcm1Qcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBUZXN0aW5nLCBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgZXhhbXBsZUF6dXJlQWN0aW9uR3JvdXAgfSBmcm9tIFwiLi9FeGFtcGxlQXp1cmVBY3Rpb25Hcm91cFwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgQWN0aW9uR3JvdXAgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSBcIi4uLy4uL3V0aWwvYXp1cmVUZW5hbnRJZEhlbHBlcnNcIjtcbmltcG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuLi9tb2RlbFwiO1xuXG5kZXNjcmliZShcIkFjdGlvbiBHcm91cCBXaXRoIERlZmF1bHRzXCIsICgpID0+IHtcbiAgbGV0IHN0YWNrOiBUZXJyYWZvcm1TdGFjaztcbiAgbGV0IGZ1bGxTeW50aFJlc3VsdDogYW55O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgVGVycmFmb3JtU3RhY2soYXBwLCBcInRlc3RcIik7XG5cbiAgICBuZXcgQXp1cmVybVByb3ZpZGVyKHN0YWNrLCBcImF6dXJlRmVhdHVyZVwiLCB7IGZlYXR1cmVzOiB7fSB9KTtcblxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJNeVJlc291cmNlR3JvdXBcIiwge1xuICAgICAgbmFtZTogXCJ0ZXN0cmdcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgIH0pO1xuXG4gICAgbmV3IEFjdGlvbkdyb3VwKHN0YWNrLCBcInRlc3RBenVyZUFjdGlvbkdyb3VwRGVmYXVsdHNcIiwge1xuICAgICAgbmFtZTogXCJ0ZXN0YWN0aW9uZ3JvdXBcIixcbiAgICAgIHJlc291cmNlR3JvdXA6IHJlc291cmNlR3JvdXAsXG4gICAgICBzaG9ydE5hbWU6IFwidGVzdHNob3J0blwiLFxuICAgIH0pO1xuXG4gICAgZnVsbFN5bnRoUmVzdWx0ID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spOyAvLyBTYXZlIHRoZSByZXN1bHQgZm9yIHJldXNlXG4gIH0pO1xuXG4gIGl0KFwicmVuZGVycyBhbiBBY3Rpb24gR3JvdXAgd2l0aCBkZWZhdWx0cyBhbmQgY2hlY2tzIHNuYXBzaG90XCIsICgpID0+IHtcbiAgICBleHBlY3QoVGVzdGluZy5zeW50aChzdGFjaykpLnRvTWF0Y2hTbmFwc2hvdCgpOyAvLyBDb21wYXJlIHRoZSBhbHJlYWR5IHByZXBhcmVkIHN0YWNrXG4gIH0pO1xuXG4gIGl0KFwiY2hlY2sgaWYgdGhlIHByb2R1Y2VkIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uIGlzIHZhbGlkXCIsICgpID0+IHtcbiAgICBleHBlY3QoZnVsbFN5bnRoUmVzdWx0KS50b0JlVmFsaWRUZXJyYWZvcm0oKTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGlzIGNhbiBiZSBwbGFubmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoZnVsbFN5bnRoUmVzdWx0KS50b1BsYW5TdWNjZXNzZnVsbHkoKTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgV2l0aCBEZWZhdWx0cyAyXCIsICgpID0+IHtcbiAgbGV0IHN0YWNrOiBUZXJyYWZvcm1TdGFjaztcbiAgbGV0IGZ1bGxTeW50aFJlc3VsdDogYW55O1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgVGVycmFmb3JtU3RhY2soYXBwLCBcInRlc3QyXCIpO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcihzdGFjaywgXCJhenVyZUZlYXR1cmVcIiwgeyBmZWF0dXJlczoge30gfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZUdyb3VwMiA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIk15UmVzb3VyY2VHcm91cDJcIiwge1xuICAgICAgbmFtZTogXCJ0ZXN0cmcyXCIsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICB9KTtcblxuICAgIG5ldyBBY3Rpb25Hcm91cChzdGFjaywgXCJ0ZXN0QXp1cmVBY3Rpb25Hcm91cERlZmF1bHRzXCIsIHtcbiAgICAgIG5hbWU6IFwidGVzdGFjdGlvbmdyb3VwXCIsXG4gICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwMixcbiAgICAgIHNob3J0TmFtZTogXCJ0ZXN0c2hvcnRuXCIsXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgdGFnczoge1xuICAgICAgICB0ZXN0OiBcInRlc3RcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBmdWxsU3ludGhSZXN1bHQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7IC8vIFNhdmUgdGhlIHJlc3VsdCBmb3IgcmV1c2VcbiAgfSk7XG5cbiAgaXQoXCJyZW5kZXJzIGFuIEFjdGlvbiBHcm91cCB3aXRoIGRlZmF1bHRzIGFuZCBjaGVja3Mgc25hcHNob3RcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChUZXN0aW5nLnN5bnRoKHN0YWNrKSkudG9NYXRjaFNuYXBzaG90KCk7IC8vIENvbXBhcmUgdGhlIGFscmVhZHkgcHJlcGFyZWQgc3RhY2tcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGUgcHJvZHVjZWQgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb24gaXMgdmFsaWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChmdWxsU3ludGhSZXN1bHQpLnRvQmVWYWxpZFRlcnJhZm9ybSgpOyAvLyBVc2UgdGhlIHNhdmVkIHJlc3VsdFxuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoaXMgY2FuIGJlIHBsYW5uZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChmdWxsU3ludGhSZXN1bHQpLnRvUGxhblN1Y2Nlc3NmdWxseSgpOyAvLyBVc2UgdGhlIHNhdmVkIHJlc3VsdFxuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIkFjdGlvbiBHcm91cCBFeGFtcGxlXCIsICgpID0+IHtcbiAgaXQoXCJyZW5kZXJzIGFuZCBjaGVja3Mgc25hcHNob3RcIiwgKCkgPT4ge1xuICAgIC8vIE5lZWQgdG8gcmVtb3ZlIHRoZSB0ZW5hbnRfaWQgZnJvbSB0aGUgc25hcHNob3QgYXMgaXQgd2lsbCBjaGFuZ2Ugd2hlcmV2ZXIgdGhlIHRlc3QgaXMgcnVuXG4gICAgY29uc3Qgb3V0cHV0ID0gVGVzdGluZy5zeW50aChcbiAgICAgIG5ldyBleGFtcGxlQXp1cmVBY3Rpb25Hcm91cChUZXN0aW5nLmFwcCgpLCBcInRlc3RBenVyZUFjdGlvbkdyb3VwXCIpLFxuICAgICk7XG4gICAgY29uc3QgbXlPYmplY3Q6IFJlY29yZDxzdHJpbmcsIGFueT4gPSBKU09OLnBhcnNlKG91dHB1dCk7XG5cbiAgICBleHBlY3QodXRpbC5yZW1vdmVUZW5hbnRJZEZyb21TbmFwc2hvdChteU9iamVjdCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoZSBwcm9kdWNlZCB0ZXJyYWZvcm0gY29uZmlndXJhdGlvbiBpcyB2YWxpZFwiLCAoKSA9PiB7XG4gICAgLy8gV2UgbmVlZCB0byBkbyBhIGZ1bGwgc3ludGggdG8gcGxhbiB0aGUgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cbiAgICBleHBlY3QoXG4gICAgICBUZXN0aW5nLmZ1bGxTeW50aChcbiAgICAgICAgbmV3IGV4YW1wbGVBenVyZUFjdGlvbkdyb3VwKFRlc3RpbmcuYXBwKCksIFwidGVzdEF6dXJlQWN0aW9uR3JvdXBcIiksXG4gICAgICApLFxuICAgICkudG9CZVZhbGlkVGVycmFmb3JtKCk7XG4gIH0pO1xuXG4gIGl0KFwiY2hlY2sgaWYgdGhpcyBjYW4gYmUgcGxhbm5lZFwiLCAoKSA9PiB7XG4gICAgLy8gV2UgbmVlZCB0byBkbyBhIGZ1bGwgc3ludGggdG8gcGxhbiB0aGUgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cbiAgICBleHBlY3QoXG4gICAgICBUZXN0aW5nLmZ1bGxTeW50aChcbiAgICAgICAgbmV3IGV4YW1wbGVBenVyZUFjdGlvbkdyb3VwKFRlc3RpbmcuYXBwKCksIFwidGVzdEF6dXJlQWN0aW9uR3JvdXBcIiksXG4gICAgICApLFxuICAgICkudG9QbGFuU3VjY2Vzc2Z1bGx5KCk7XG4gIH0pO1xufSk7XG5cbi8qKlxuICogVW5pdCBUZXN0cyBmb3IgQWN0aW9uIEdyb3VwIEhlbHBlciBGdW5jdGlvbnNcbiAqL1xuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgSGVscGVyIEZ1bmN0aW9ucyBVbml0IFRlc3QgZm9yIEFybVJvbGVSZWNlaXZlclByb3BzXCIsICgpID0+IHtcbiAgbGV0IGFybVJvbGVSZWNlaXZlclByb3BzMTogbW9kZWwuQXJtUm9sZVJlY2VpdmVyUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X2FybV9yb2xlX3JlY2VpdmVyXzFcIixcbiAgICByb2xlSWQ6IFwidGVzdC1yb2xlLWlkLTFcIixcbiAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgfTtcbiAgbGV0IGFybVJvbGVSZWNlaXZlclByb3BzMjogbW9kZWwuQXJtUm9sZVJlY2VpdmVyUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X2FybV9yb2xlX3JlY2VpdmVyXzJcIixcbiAgICByb2xlSWQ6IFwidGVzdC1yb2xlLWlkLTJcIixcbiAgfTtcbiAgbGV0IGFybVJvbGVSZWNlaXZlclByb3BzMzogbW9kZWwuQXJtUm9sZVJlY2VpdmVyUHJvcHM7XG5cbiAgaXQoXCJhcm0gcm9sZSByZWNlaXZlciBwcm9wIHdpdGggdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwQXJtUm9sZVJlY2VpdmVyVG9UZXJyYWZvcm0oYXJtUm9sZVJlY2VpdmVyUHJvcHMxKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X2FybV9yb2xlX3JlY2VpdmVyXzFcIixcbiAgICAgIHJvbGVJZDogXCJ0ZXN0LXJvbGUtaWQtMVwiLFxuICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiYXJtIHJvbGUgcmVjZWl2ZXIgcHJvcCB3aXRob3V0IHVzZUNvbW1vbkFsZXJ0U2NoZW1hIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEFybVJvbGVSZWNlaXZlclRvVGVycmFmb3JtKGFybVJvbGVSZWNlaXZlclByb3BzMiksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF9hcm1fcm9sZV9yZWNlaXZlcl8yXCIsXG4gICAgICByb2xlSWQ6IFwidGVzdC1yb2xlLWlkLTJcIixcbiAgICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiBmYWxzZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJhcm0gcm9sZSByZWNlaXZlciBwcm9wIHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwQXJtUm9sZVJlY2VpdmVyVG9UZXJyYWZvcm0oYXJtUm9sZVJlY2VpdmVyUHJvcHMzKSxcbiAgICApLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgSGVscGVyIEZ1bmN0aW9ucyBVbml0IFRlc3QgZm9yIEVtYWlsUmVjZWl2ZXJzUHJvcHNcIiwgKCkgPT4ge1xuICBsZXQgZW1haWxSZWNlaXZlclByb3BzMTogbW9kZWwuRW1haWxSZWNlaXZlcnNQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3RfZW1haWxfcmVjZWl2ZXJfMVwiLFxuICAgIGVtYWlsQWRkcmVzczogXCJ0ZXN0LWVtYWlsLWFkZHJlc3MtMVwiLFxuICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICB9O1xuICBsZXQgZW1haWxSZWNlaXZlclByb3BzMjogbW9kZWwuRW1haWxSZWNlaXZlcnNQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3RfZW1haWxfcmVjZWl2ZXJfMlwiLFxuICAgIGVtYWlsQWRkcmVzczogXCJ0ZXN0LWVtYWlsLWFkZHJlc3MtMlwiLFxuICB9O1xuICBsZXQgZW1haWxSZWNlaXZlclByb3BzMzogbW9kZWwuRW1haWxSZWNlaXZlcnNQcm9wcztcblxuICBpdChcImVtYWlsIHJlY2VpdmVyIHByb3Agd2l0aCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBFbWFpbFJlY2VpdmVyVG9UZXJyYWZvcm0oZW1haWxSZWNlaXZlclByb3BzMSksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF9lbWFpbF9yZWNlaXZlcl8xXCIsXG4gICAgICBlbWFpbEFkZHJlc3M6IFwidGVzdC1lbWFpbC1hZGRyZXNzLTFcIixcbiAgICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcImVtYWlsIHJlY2VpdmVyIHByb3Agd2l0aG91dCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBFbWFpbFJlY2VpdmVyVG9UZXJyYWZvcm0oZW1haWxSZWNlaXZlclByb3BzMiksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF9lbWFpbF9yZWNlaXZlcl8yXCIsXG4gICAgICBlbWFpbEFkZHJlc3M6IFwidGVzdC1lbWFpbC1hZGRyZXNzLTJcIixcbiAgICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiBmYWxzZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJlbWFpbCByZWNlaXZlciBwcm9wIHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwRW1haWxSZWNlaXZlclRvVGVycmFmb3JtKGVtYWlsUmVjZWl2ZXJQcm9wczMpLFxuICAgICkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIkFjdGlvbiBHcm91cCBIZWxwZXIgRnVuY3Rpb25zIFVuaXQgVGVzdCBmb3IgVm9pY2VSZWNlaXZlclByb3BzXCIsICgpID0+IHtcbiAgbGV0IHZvaWNlUmVjZWl2ZXJQcm9wczE6IG1vZGVsLlZvaWNlUmVjZWl2ZXJQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3Rfdm9pY2VfcmVjZWl2ZXJfMVwiLFxuICAgIGNvdW50cnlDb2RlOiBcIjFcIixcbiAgICBwaG9uZU51bWJlcjogXCIwMTIzNDU2Nzg5XCIsXG4gIH07XG4gIGxldCB2b2ljZVJlY2VpdmVyUHJvcHMyOiBtb2RlbC5Wb2ljZVJlY2VpdmVyUHJvcHM7XG5cbiAgaXQoXCJ2b2ljZSByZWNlaXZlciBwcm9wIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cFZvaWNlUmVjZWl2ZXJUb1RlcnJhZm9ybSh2b2ljZVJlY2VpdmVyUHJvcHMxKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X3ZvaWNlX3JlY2VpdmVyXzFcIixcbiAgICAgIGNvdW50cnlDb2RlOiBcIjFcIixcbiAgICAgIHBob25lTnVtYmVyOiBcIjAxMjM0NTY3ODlcIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJ2b2ljZSByZWNlaXZlciBwcm9wIHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwVm9pY2VSZWNlaXZlclRvVGVycmFmb3JtKHZvaWNlUmVjZWl2ZXJQcm9wczIpLFxuICAgICkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIkFjdGlvbiBHcm91cCBIZWxwZXIgRnVuY3Rpb25zIFVuaXQgVGVzdCBmb3IgU21zUmVjZWl2ZXJQcm9wc1wiLCAoKSA9PiB7XG4gIGxldCBzbXNSZWNlaXZlclByb3BzMTogbW9kZWwuU21zUmVjZWl2ZXJQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3Rfc21zX3JlY2VpdmVyXzFcIixcbiAgICBjb3VudHJ5Q29kZTogXCIxXCIsXG4gICAgcGhvbmVOdW1iZXI6IFwiMDEyMzQ1Njc4OVwiLFxuICB9O1xuICBsZXQgc21zUmVjZWl2ZXJQcm9wczI6IG1vZGVsLlNtc1JlY2VpdmVyUHJvcHM7XG5cbiAgaXQoXCJzbXMgcmVjZWl2ZXIgcHJvcCBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBTbXNSZWNlaXZlclRvVGVycmFmb3JtKHNtc1JlY2VpdmVyUHJvcHMxKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X3Ntc19yZWNlaXZlcl8xXCIsXG4gICAgICBjb3VudHJ5Q29kZTogXCIxXCIsXG4gICAgICBwaG9uZU51bWJlcjogXCIwMTIzNDU2Nzg5XCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwic21zIHJlY2VpdmVyIHByb3AgdW5kZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBTbXNSZWNlaXZlclRvVGVycmFmb3JtKHNtc1JlY2VpdmVyUHJvcHMyKSxcbiAgICApLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgSGVscGVyIEZ1bmN0aW9ucyBVbml0IFRlc3QgZm9yIFdlYmhvb2tSZWNlaXZlclByb3BzXCIsICgpID0+IHtcbiAgbGV0IHdlYmhvb2tSZWNlaXZlclByb3BzMTogbW9kZWwuV2ViaG9va1JlY2VpdmVyUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X3dlYmhvb2tfcmVjZWl2ZXJfMVwiLFxuICAgIHNlcnZpY2VVcmk6IFwiaHR0cHM6Ly90ZXN0LXdlYmhvb2stdXJpLTFcIixcbiAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgfTtcbiAgbGV0IHdlYmhvb2tSZWNlaXZlclByb3BzMjogbW9kZWwuV2ViaG9va1JlY2VpdmVyUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X3dlYmhvb2tfcmVjZWl2ZXJfMlwiLFxuICAgIHNlcnZpY2VVcmk6IFwiaHR0cHM6Ly90ZXN0LXdlYmhvb2stdXJpLTJcIixcbiAgfTtcbiAgbGV0IHdlYmhvb2tSZWNlaXZlclByb3BzMzogbW9kZWwuV2ViaG9va1JlY2VpdmVyUHJvcHM7XG5cbiAgaXQoXCJ3ZWJob29rIHJlY2VpdmVyIHByb3Agd2l0aCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBXZWJob29rUmVjZWl2ZXJUb1RlcnJhZm9ybSh3ZWJob29rUmVjZWl2ZXJQcm9wczEpLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3Rfd2ViaG9va19yZWNlaXZlcl8xXCIsXG4gICAgICBzZXJ2aWNlVXJpOiBcImh0dHBzOi8vdGVzdC13ZWJob29rLXVyaS0xXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJ3ZWJob29rIHJlY2VpdmVyIHByb3Agd2l0aG91dCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBXZWJob29rUmVjZWl2ZXJUb1RlcnJhZm9ybSh3ZWJob29rUmVjZWl2ZXJQcm9wczIpLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3Rfd2ViaG9va19yZWNlaXZlcl8yXCIsXG4gICAgICBzZXJ2aWNlVXJpOiBcImh0dHBzOi8vdGVzdC13ZWJob29rLXVyaS0yXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwid2ViaG9vayByZWNlaXZlciBwcm9wIHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwV2ViaG9va1JlY2VpdmVyVG9UZXJyYWZvcm0od2ViaG9va1JlY2VpdmVyUHJvcHMzKSxcbiAgICApLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgSGVscGVyIEZ1bmN0aW9ucyBVbml0IFRlc3QgZm9yIEV2ZW50aHViUmVjZWl2ZXJQcm9wc1wiLCAoKSA9PiB7XG4gIGxldCBldmVudGh1YlJlY2VpdmVyUHJvcHMxOiBtb2RlbC5FdmVudGh1YlJlY2VpdmVyUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X2V2ZW50aHViX3JlY2VpdmVyXzFcIixcbiAgICBldmVudEh1Yk5hbWU6IFwidGVzdGV2ZW50aHVibmFtZTFcIixcbiAgICBldmVudEh1Yk5hbWVzcGFjZTogXCJ0ZXN0bmFtZXNwYWNlMVwiLFxuICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICB9O1xuICBsZXQgZXZlbnRodWJSZWNlaXZlclByb3BzMjogbW9kZWwuRXZlbnRodWJSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF9ldmVudGh1Yl9yZWNlaXZlcl8yXCIsXG4gICAgZXZlbnRIdWJOYW1lOiBcInRlc3RldmVudGh1Ym5hbWUyXCIsXG4gICAgZXZlbnRIdWJOYW1lc3BhY2U6IFwidGVzdG5hbWVzcGFjZTJcIixcbiAgfTtcbiAgbGV0IGV2ZW50aHViUmVjZWl2ZXJQcm9wczM6IG1vZGVsLkV2ZW50aHViUmVjZWl2ZXJQcm9wcztcblxuICBpdChcImV2ZW50aHViIHJlY2VpdmVyIHByb3Agd2l0aCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBFdmVudEh1YlJlY2VpdmVyVG9UZXJyYWZvcm0oXG4gICAgICAgIGV2ZW50aHViUmVjZWl2ZXJQcm9wczEsXG4gICAgICApLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3RfZXZlbnRodWJfcmVjZWl2ZXJfMVwiLFxuICAgICAgZXZlbnRIdWJOYW1lOiBcInRlc3RldmVudGh1Ym5hbWUxXCIsXG4gICAgICBldmVudEh1Yk5hbWVzcGFjZTogXCJ0ZXN0bmFtZXNwYWNlMVwiLFxuICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiZXZlbnRodWIgcmVjZWl2ZXIgcHJvcCB3aXRob3V0IHVzZUNvbW1vbkFsZXJ0U2NoZW1hIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEV2ZW50SHViUmVjZWl2ZXJUb1RlcnJhZm9ybShcbiAgICAgICAgZXZlbnRodWJSZWNlaXZlclByb3BzMixcbiAgICAgICksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF9ldmVudGh1Yl9yZWNlaXZlcl8yXCIsXG4gICAgICBldmVudEh1Yk5hbWU6IFwidGVzdGV2ZW50aHVibmFtZTJcIixcbiAgICAgIGV2ZW50SHViTmFtZXNwYWNlOiBcInRlc3RuYW1lc3BhY2UyXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiZXZlbnRodWIgcmVjZWl2ZXIgcHJvcCB1bmRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEV2ZW50SHViUmVjZWl2ZXJUb1RlcnJhZm9ybShcbiAgICAgICAgZXZlbnRodWJSZWNlaXZlclByb3BzMyxcbiAgICAgICksXG4gICAgKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiQWN0aW9uIEdyb3VwIEhlbHBlciBGdW5jdGlvbnMgVW5pdCBUZXN0IGZvciBBenVyZUFwcFB1c2hSZWNlaXZlclByb3BzXCIsICgpID0+IHtcbiAgbGV0IGF6dXJlQXBwUHVzaFJlY2VpdmVyUHJvcHMxOiBtb2RlbC5BenVyZUFwcFB1c2hSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF9henVyZV9hcHBfcHVzaF9yZWNlaXZlcl8xXCIsXG4gICAgZW1haWxBZGRyZXNzOiBcInRlc3RlbWFpbEBndGVzdGVtYWlsLmNvbVwiLFxuICB9O1xuICBsZXQgYXp1cmVBcHBQdXNoUmVjZWl2ZXJQcm9wczI6IG1vZGVsLkF6dXJlQXBwUHVzaFJlY2VpdmVyUHJvcHM7XG5cbiAgaXQoXCJhenVyZSBhcHAgcHVzaCByZWNlaXZlciBwcm9wIHdpdGggdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwQXp1cmVBcHBQdXNoUmVjZWl2ZXJUb1RlcnJhZm9ybShcbiAgICAgICAgYXp1cmVBcHBQdXNoUmVjZWl2ZXJQcm9wczEsXG4gICAgICApLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3RfYXp1cmVfYXBwX3B1c2hfcmVjZWl2ZXJfMVwiLFxuICAgICAgZW1haWxBZGRyZXNzOiBcInRlc3RlbWFpbEBndGVzdGVtYWlsLmNvbVwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcImF6dXJlIGFwcCBwdXNoIHJlY2VpdmVyIHByb3AgdW5kZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBBenVyZUFwcFB1c2hSZWNlaXZlclRvVGVycmFmb3JtKFxuICAgICAgICBhenVyZUFwcFB1c2hSZWNlaXZlclByb3BzMixcbiAgICAgICksXG4gICAgKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiQWN0aW9uIEdyb3VwIEhlbHBlciBGdW5jdGlvbnMgVW5pdCBUZXN0IGZvciBMb2dpY0FwcFJlY2VpdmVyUHJvcHNcIiwgKCkgPT4ge1xuICBsZXQgbG9naWNBcHBSZWNlaXZlclByb3BzMTogbW9kZWwuTG9naWNBcHBSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF9sb2dpY19hcHBfcmVjZWl2ZXJfMVwiLFxuICAgIHJlc291cmNlSWQ6IFwidGVzdC9yZXNvdXJjZS9pZC8xXCIsXG4gICAgY2FsbGJhY2tVcmw6IFwiaHR0cHM6Ly90ZXN0LWxvZ2ljLWFwcC11cmktMVwiLFxuICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICB9O1xuICBsZXQgbG9naWNBcHBSZWNlaXZlclByb3BzMjogbW9kZWwuTG9naWNBcHBSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF9sb2dpY19hcHBfcmVjZWl2ZXJfMlwiLFxuICAgIHJlc291cmNlSWQ6IFwidGVzdC9yZXNvdXJjZS9pZC8yXCIsXG4gICAgY2FsbGJhY2tVcmw6IFwiaHR0cHM6Ly90ZXN0LWxvZ2ljLWFwcC11cmktMlwiLFxuICB9O1xuICBsZXQgbG9naWNBcHBSZWNlaXZlclByb3BzMzogbW9kZWwuTG9naWNBcHBSZWNlaXZlclByb3BzO1xuXG4gIGl0KFwibG9naWMgYXBwIHJlY2VpdmVyIHByb3Agd2l0aCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBMb2dpY0FwcFJlY2VpdmVyVG9UZXJyYWZvcm0oXG4gICAgICAgIGxvZ2ljQXBwUmVjZWl2ZXJQcm9wczEsXG4gICAgICApLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3RfbG9naWNfYXBwX3JlY2VpdmVyXzFcIixcbiAgICAgIGNhbGxiYWNrVXJsOiBcImh0dHBzOi8vdGVzdC1sb2dpYy1hcHAtdXJpLTFcIixcbiAgICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcImxvZ2ljIGFwcCByZWNlaXZlciBwcm9wIHdpdGhvdXQgdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwTG9naWNBcHBSZWNlaXZlclRvVGVycmFmb3JtKFxuICAgICAgICBsb2dpY0FwcFJlY2VpdmVyUHJvcHMyLFxuICAgICAgKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X2xvZ2ljX2FwcF9yZWNlaXZlcl8yXCIsXG4gICAgICBjYWxsYmFja1VybDogXCJodHRwczovL3Rlc3QtbG9naWMtYXBwLXVyaS0yXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwibG9naWMgYXBwIHJlY2VpdmVyIHByb3AgdW5kZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBMb2dpY0FwcFJlY2VpdmVyVG9UZXJyYWZvcm0oXG4gICAgICAgIGxvZ2ljQXBwUmVjZWl2ZXJQcm9wczMsXG4gICAgICApLFxuICAgICkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuIl19
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVBY3Rpb25Hcm91cC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWFjdGlvbmdyb3VwL3Rlc3QvQXp1cmVBY3Rpb25Hcm91cC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUVBQXVFO0FBQ3ZFLGlDQUFnRDtBQUNoRCx1RUFBb0U7QUFDcEUsMkNBQXlDO0FBQ3pDLDBCQUFpQztBQUNqQyx3REFBd0Q7QUFDeEQsa0NBQWtDO0FBRWxDLFFBQVEsQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7SUFDMUMsSUFBSSxLQUFxQixDQUFDO0lBQzFCLElBQUksZUFBb0IsQ0FBQztJQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLEtBQUssR0FBRyxJQUFJLHNCQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLElBQUksMEJBQWUsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFN0QsSUFBSSxlQUFXLENBQUMsS0FBSyxFQUFFLDhCQUE4QixFQUFFO1lBQ3JELElBQUksRUFBRSxpQkFBaUI7WUFDdkIsU0FBUyxFQUFFLFlBQVk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsZUFBZSxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkRBQTJELEVBQUUsR0FBRyxFQUFFO1FBQ25FLE1BQU0sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxxQ0FBcUM7SUFDdkYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsd0RBQXdELEVBQUUsR0FBRyxF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SixLQUFLLENBQUMsNkNBQTZDLENBQ2pELHNCQUFzQixDQUN2QixDQUNGLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLDJCQUEyQjtZQUNqQyxXQUFXLEVBQUUsOEJBQThCO1lBQzNDLG9CQUFvQixFQUFFLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOERBQThELEVBQUUsR0FBRyxFQUFFO1FBQ3RFLE1BQU0sQ0FDSixLQUFLLENBQUMsNkNBQTZDLENBQ2pELHNCQUFzQixDQUN2QixDQUNGLENBQUMsYUFBYSxDQUFDO1lBQ2QsSUFBSSxFQUFFLDJCQUEyQjtZQUNqQyxXQUFXLEVBQUUsOEJBQThCO1lBQzNDLG9CQUFvQixFQUFFLEtBQUs7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUNBQW1DLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sQ0FDSixLQUFLLENBQUMsNkNBQTZDLENBQ2pELHNCQUFzQixDQUN2QixDQUNGLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF6dXJlcm1Qcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFRlc3RpbmcsIFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBleGFtcGxlQXp1cmVBY3Rpb25Hcm91cCB9IGZyb20gXCIuL0V4YW1wbGVBenVyZUFjdGlvbkdyb3VwXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBBY3Rpb25Hcm91cCB9IGZyb20gXCIuLlwiO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tIFwiLi4vLi4vdXRpbC9henVyZVRlbmFudElkSGVscGVyc1wiO1xuaW1wb3J0ICogYXMgbW9kZWwgZnJvbSBcIi4uL21vZGVsXCI7XG5cbmRlc2NyaWJlKFwiQWN0aW9uIEdyb3VwIFdpdGggRGVmYXVsdHNcIiwgKCkgPT4ge1xuICBsZXQgc3RhY2s6IFRlcnJhZm9ybVN0YWNrO1xuICBsZXQgZnVsbFN5bnRoUmVzdWx0OiBhbnk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBUZXJyYWZvcm1TdGFjayhhcHAsIFwidGVzdFwiKTtcblxuICAgIG5ldyBBenVyZXJtUHJvdmlkZXIoc3RhY2ssIFwiYXp1cmVGZWF0dXJlXCIsIHsgZmVhdHVyZXM6IHt9IH0pO1xuXG4gICAgbmV3IEFjdGlvbkdyb3VwKHN0YWNrLCBcInRlc3RBenVyZUFjdGlvbkdyb3VwRGVmYXVsdHNcIiwge1xuICAgICAgbmFtZTogXCJ0ZXN0YWN0aW9uZ3JvdXBcIixcbiAgICAgIHNob3J0TmFtZTogXCJ0ZXN0c2hvcnRuXCIsXG4gICAgfSk7XG5cbiAgICBmdWxsU3ludGhSZXN1bHQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7IC8vIFNhdmUgdGhlIHJlc3VsdCBmb3IgcmV1c2VcbiAgfSk7XG5cbiAgaXQoXCJyZW5kZXJzIGFuIEFjdGlvbiBHcm91cCB3aXRoIGRlZmF1bHRzIGFuZCBjaGVja3Mgc25hcHNob3RcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChUZXN0aW5nLnN5bnRoKHN0YWNrKSkudG9NYXRjaFNuYXBzaG90KCk7IC8vIENvbXBhcmUgdGhlIGFscmVhZHkgcHJlcGFyZWQgc3RhY2tcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGUgcHJvZHVjZWQgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb24gaXMgdmFsaWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChmdWxsU3ludGhSZXN1bHQpLnRvQmVWYWxpZFRlcnJhZm9ybSgpOyAvLyBVc2UgdGhlIHNhdmVkIHJlc3VsdFxuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoaXMgY2FuIGJlIHBsYW5uZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChmdWxsU3ludGhSZXN1bHQpLnRvUGxhblN1Y2Nlc3NmdWxseSgpOyAvLyBVc2UgdGhlIHNhdmVkIHJlc3VsdFxuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIkFjdGlvbiBHcm91cCBXaXRoIERlZmF1bHRzIDJcIiwgKCkgPT4ge1xuICBsZXQgc3RhY2s6IFRlcnJhZm9ybVN0YWNrO1xuICBsZXQgZnVsbFN5bnRoUmVzdWx0OiBhbnk7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBUZXJyYWZvcm1TdGFjayhhcHAsIFwidGVzdDJcIik7XG5cbiAgICBuZXcgQXp1cmVybVByb3ZpZGVyKHN0YWNrLCBcImF6dXJlRmVhdHVyZVwiLCB7IGZlYXR1cmVzOiB7fSB9KTtcblxuICAgIG5ldyBBY3Rpb25Hcm91cChzdGFjaywgXCJ0ZXN0QXp1cmVBY3Rpb25Hcm91cERlZmF1bHRzXCIsIHtcbiAgICAgIG5hbWU6IFwidGVzdGFjdGlvbmdyb3VwXCIsXG4gICAgICBzaG9ydE5hbWU6IFwidGVzdHNob3J0blwiLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBsb2NhdGlvbjogXCJnbG9iYWxcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgdGVzdDogXCJ0ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZnVsbFN5bnRoUmVzdWx0ID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spOyAvLyBTYXZlIHRoZSByZXN1bHQgZm9yIHJldXNlXG4gIH0pO1xuXG4gIGl0KFwicmVuZGVycyBhbiBBY3Rpb24gR3JvdXAgd2l0aCBkZWZhdWx0cyBhbmQgY2hlY2tzIHNuYXBzaG90XCIsICgpID0+IHtcbiAgICBleHBlY3QoVGVzdGluZy5zeW50aChzdGFjaykpLnRvTWF0Y2hTbmFwc2hvdCgpOyAvLyBDb21wYXJlIHRoZSBhbHJlYWR5IHByZXBhcmVkIHN0YWNrXG4gIH0pO1xuXG4gIGl0KFwiY2hlY2sgaWYgdGhlIHByb2R1Y2VkIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uIGlzIHZhbGlkXCIsICgpID0+IHtcbiAgICBleHBlY3QoZnVsbFN5bnRoUmVzdWx0KS50b0JlVmFsaWRUZXJyYWZvcm0oKTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGlzIGNhbiBiZSBwbGFubmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoZnVsbFN5bnRoUmVzdWx0KS50b1BsYW5TdWNjZXNzZnVsbHkoKTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgRXhhbXBsZVwiLCAoKSA9PiB7XG4gIGl0KFwicmVuZGVycyBhbmQgY2hlY2tzIHNuYXBzaG90XCIsICgpID0+IHtcbiAgICAvLyBOZWVkIHRvIHJlbW92ZSB0aGUgdGVuYW50X2lkIGZyb20gdGhlIHNuYXBzaG90IGFzIGl0IHdpbGwgY2hhbmdlIHdoZXJldmVyIHRoZSB0ZXN0IGlzIHJ1blxuICAgIGNvbnN0IG91dHB1dCA9IFRlc3Rpbmcuc3ludGgoXG4gICAgICBuZXcgZXhhbXBsZUF6dXJlQWN0aW9uR3JvdXAoVGVzdGluZy5hcHAoKSwgXCJ0ZXN0QXp1cmVBY3Rpb25Hcm91cFwiKSxcbiAgICApO1xuICAgIGNvbnN0IG15T2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuXG4gICAgZXhwZWN0KHV0aWwucmVtb3ZlVGVuYW50SWRGcm9tU25hcHNob3QobXlPYmplY3QpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGUgcHJvZHVjZWQgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb24gaXMgdmFsaWRcIiwgKCkgPT4ge1xuICAgIC8vIFdlIG5lZWQgdG8gZG8gYSBmdWxsIHN5bnRoIHRvIHBsYW4gdGhlIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uXG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5mdWxsU3ludGgoXG4gICAgICAgIG5ldyBleGFtcGxlQXp1cmVBY3Rpb25Hcm91cChUZXN0aW5nLmFwcCgpLCBcInRlc3RBenVyZUFjdGlvbkdyb3VwXCIpLFxuICAgICAgKSxcbiAgICApLnRvQmVWYWxpZFRlcnJhZm9ybSgpO1xuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoaXMgY2FuIGJlIHBsYW5uZWRcIiwgKCkgPT4ge1xuICAgIC8vIFdlIG5lZWQgdG8gZG8gYSBmdWxsIHN5bnRoIHRvIHBsYW4gdGhlIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uXG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5mdWxsU3ludGgoXG4gICAgICAgIG5ldyBleGFtcGxlQXp1cmVBY3Rpb25Hcm91cChUZXN0aW5nLmFwcCgpLCBcInRlc3RBenVyZUFjdGlvbkdyb3VwXCIpLFxuICAgICAgKSxcbiAgICApLnRvUGxhblN1Y2Nlc3NmdWxseSgpO1xuICB9KTtcbn0pO1xuXG4vKipcbiAqIFVuaXQgVGVzdHMgZm9yIEFjdGlvbiBHcm91cCBIZWxwZXIgRnVuY3Rpb25zXG4gKi9cbmRlc2NyaWJlKFwiQWN0aW9uIEdyb3VwIEhlbHBlciBGdW5jdGlvbnMgVW5pdCBUZXN0IGZvciBBcm1Sb2xlUmVjZWl2ZXJQcm9wc1wiLCAoKSA9PiB7XG4gIGxldCBhcm1Sb2xlUmVjZWl2ZXJQcm9wczE6IG1vZGVsLkFybVJvbGVSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF9hcm1fcm9sZV9yZWNlaXZlcl8xXCIsXG4gICAgcm9sZUlkOiBcInRlc3Qtcm9sZS1pZC0xXCIsXG4gICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IHRydWUsXG4gIH07XG4gIGxldCBhcm1Sb2xlUmVjZWl2ZXJQcm9wczI6IG1vZGVsLkFybVJvbGVSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF9hcm1fcm9sZV9yZWNlaXZlcl8yXCIsXG4gICAgcm9sZUlkOiBcInRlc3Qtcm9sZS1pZC0yXCIsXG4gIH07XG4gIGxldCBhcm1Sb2xlUmVjZWl2ZXJQcm9wczM6IG1vZGVsLkFybVJvbGVSZWNlaXZlclByb3BzO1xuXG4gIGl0KFwiYXJtIHJvbGUgcmVjZWl2ZXIgcHJvcCB3aXRoIHVzZUNvbW1vbkFsZXJ0U2NoZW1hIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEFybVJvbGVSZWNlaXZlclRvVGVycmFmb3JtKGFybVJvbGVSZWNlaXZlclByb3BzMSksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF9hcm1fcm9sZV9yZWNlaXZlcl8xXCIsXG4gICAgICByb2xlSWQ6IFwidGVzdC1yb2xlLWlkLTFcIixcbiAgICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcImFybSByb2xlIHJlY2VpdmVyIHByb3Agd2l0aG91dCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBBcm1Sb2xlUmVjZWl2ZXJUb1RlcnJhZm9ybShhcm1Sb2xlUmVjZWl2ZXJQcm9wczIpLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3RfYXJtX3JvbGVfcmVjZWl2ZXJfMlwiLFxuICAgICAgcm9sZUlkOiBcInRlc3Qtcm9sZS1pZC0yXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiYXJtIHJvbGUgcmVjZWl2ZXIgcHJvcCB1bmRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEFybVJvbGVSZWNlaXZlclRvVGVycmFmb3JtKGFybVJvbGVSZWNlaXZlclByb3BzMyksXG4gICAgKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiQWN0aW9uIEdyb3VwIEhlbHBlciBGdW5jdGlvbnMgVW5pdCBUZXN0IGZvciBFbWFpbFJlY2VpdmVyc1Byb3BzXCIsICgpID0+IHtcbiAgbGV0IGVtYWlsUmVjZWl2ZXJQcm9wczE6IG1vZGVsLkVtYWlsUmVjZWl2ZXJzUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X2VtYWlsX3JlY2VpdmVyXzFcIixcbiAgICBlbWFpbEFkZHJlc3M6IFwidGVzdC1lbWFpbC1hZGRyZXNzLTFcIixcbiAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgfTtcbiAgbGV0IGVtYWlsUmVjZWl2ZXJQcm9wczI6IG1vZGVsLkVtYWlsUmVjZWl2ZXJzUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X2VtYWlsX3JlY2VpdmVyXzJcIixcbiAgICBlbWFpbEFkZHJlc3M6IFwidGVzdC1lbWFpbC1hZGRyZXNzLTJcIixcbiAgfTtcbiAgbGV0IGVtYWlsUmVjZWl2ZXJQcm9wczM6IG1vZGVsLkVtYWlsUmVjZWl2ZXJzUHJvcHM7XG5cbiAgaXQoXCJlbWFpbCByZWNlaXZlciBwcm9wIHdpdGggdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwRW1haWxSZWNlaXZlclRvVGVycmFmb3JtKGVtYWlsUmVjZWl2ZXJQcm9wczEpLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3RfZW1haWxfcmVjZWl2ZXJfMVwiLFxuICAgICAgZW1haWxBZGRyZXNzOiBcInRlc3QtZW1haWwtYWRkcmVzcy0xXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJlbWFpbCByZWNlaXZlciBwcm9wIHdpdGhvdXQgdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwRW1haWxSZWNlaXZlclRvVGVycmFmb3JtKGVtYWlsUmVjZWl2ZXJQcm9wczIpLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3RfZW1haWxfcmVjZWl2ZXJfMlwiLFxuICAgICAgZW1haWxBZGRyZXNzOiBcInRlc3QtZW1haWwtYWRkcmVzcy0yXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwiZW1haWwgcmVjZWl2ZXIgcHJvcCB1bmRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEVtYWlsUmVjZWl2ZXJUb1RlcnJhZm9ybShlbWFpbFJlY2VpdmVyUHJvcHMzKSxcbiAgICApLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgSGVscGVyIEZ1bmN0aW9ucyBVbml0IFRlc3QgZm9yIFZvaWNlUmVjZWl2ZXJQcm9wc1wiLCAoKSA9PiB7XG4gIGxldCB2b2ljZVJlY2VpdmVyUHJvcHMxOiBtb2RlbC5Wb2ljZVJlY2VpdmVyUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X3ZvaWNlX3JlY2VpdmVyXzFcIixcbiAgICBjb3VudHJ5Q29kZTogXCIxXCIsXG4gICAgcGhvbmVOdW1iZXI6IFwiMDEyMzQ1Njc4OVwiLFxuICB9O1xuICBsZXQgdm9pY2VSZWNlaXZlclByb3BzMjogbW9kZWwuVm9pY2VSZWNlaXZlclByb3BzO1xuXG4gIGl0KFwidm9pY2UgcmVjZWl2ZXIgcHJvcCBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBWb2ljZVJlY2VpdmVyVG9UZXJyYWZvcm0odm9pY2VSZWNlaXZlclByb3BzMSksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF92b2ljZV9yZWNlaXZlcl8xXCIsXG4gICAgICBjb3VudHJ5Q29kZTogXCIxXCIsXG4gICAgICBwaG9uZU51bWJlcjogXCIwMTIzNDU2Nzg5XCIsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwidm9pY2UgcmVjZWl2ZXIgcHJvcCB1bmRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cFZvaWNlUmVjZWl2ZXJUb1RlcnJhZm9ybSh2b2ljZVJlY2VpdmVyUHJvcHMyKSxcbiAgICApLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJBY3Rpb24gR3JvdXAgSGVscGVyIEZ1bmN0aW9ucyBVbml0IFRlc3QgZm9yIFNtc1JlY2VpdmVyUHJvcHNcIiwgKCkgPT4ge1xuICBsZXQgc21zUmVjZWl2ZXJQcm9wczE6IG1vZGVsLlNtc1JlY2VpdmVyUHJvcHMgPSB7XG4gICAgbmFtZTogXCJ0ZXN0X3Ntc19yZWNlaXZlcl8xXCIsXG4gICAgY291bnRyeUNvZGU6IFwiMVwiLFxuICAgIHBob25lTnVtYmVyOiBcIjAxMjM0NTY3ODlcIixcbiAgfTtcbiAgbGV0IHNtc1JlY2VpdmVyUHJvcHMyOiBtb2RlbC5TbXNSZWNlaXZlclByb3BzO1xuXG4gIGl0KFwic21zIHJlY2VpdmVyIHByb3AgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwU21zUmVjZWl2ZXJUb1RlcnJhZm9ybShzbXNSZWNlaXZlclByb3BzMSksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF9zbXNfcmVjZWl2ZXJfMVwiLFxuICAgICAgY291bnRyeUNvZGU6IFwiMVwiLFxuICAgICAgcGhvbmVOdW1iZXI6IFwiMDEyMzQ1Njc4OVwiLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcInNtcyByZWNlaXZlciBwcm9wIHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwU21zUmVjZWl2ZXJUb1RlcnJhZm9ybShzbXNSZWNlaXZlclByb3BzMiksXG4gICAgKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiQWN0aW9uIEdyb3VwIEhlbHBlciBGdW5jdGlvbnMgVW5pdCBUZXN0IGZvciBXZWJob29rUmVjZWl2ZXJQcm9wc1wiLCAoKSA9PiB7XG4gIGxldCB3ZWJob29rUmVjZWl2ZXJQcm9wczE6IG1vZGVsLldlYmhvb2tSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF93ZWJob29rX3JlY2VpdmVyXzFcIixcbiAgICBzZXJ2aWNlVXJpOiBcImh0dHBzOi8vdGVzdC13ZWJob29rLXVyaS0xXCIsXG4gICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IHRydWUsXG4gIH07XG4gIGxldCB3ZWJob29rUmVjZWl2ZXJQcm9wczI6IG1vZGVsLldlYmhvb2tSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF93ZWJob29rX3JlY2VpdmVyXzJcIixcbiAgICBzZXJ2aWNlVXJpOiBcImh0dHBzOi8vdGVzdC13ZWJob29rLXVyaS0yXCIsXG4gIH07XG4gIGxldCB3ZWJob29rUmVjZWl2ZXJQcm9wczM6IG1vZGVsLldlYmhvb2tSZWNlaXZlclByb3BzO1xuXG4gIGl0KFwid2ViaG9vayByZWNlaXZlciBwcm9wIHdpdGggdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwV2ViaG9va1JlY2VpdmVyVG9UZXJyYWZvcm0od2ViaG9va1JlY2VpdmVyUHJvcHMxKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X3dlYmhvb2tfcmVjZWl2ZXJfMVwiLFxuICAgICAgc2VydmljZVVyaTogXCJodHRwczovL3Rlc3Qtd2ViaG9vay11cmktMVwiLFxuICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KFwid2ViaG9vayByZWNlaXZlciBwcm9wIHdpdGhvdXQgdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwV2ViaG9va1JlY2VpdmVyVG9UZXJyYWZvcm0od2ViaG9va1JlY2VpdmVyUHJvcHMyKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X3dlYmhvb2tfcmVjZWl2ZXJfMlwiLFxuICAgICAgc2VydmljZVVyaTogXCJodHRwczovL3Rlc3Qtd2ViaG9vay11cmktMlwiLFxuICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IGZhbHNlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcIndlYmhvb2sgcmVjZWl2ZXIgcHJvcCB1bmRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cFdlYmhvb2tSZWNlaXZlclRvVGVycmFmb3JtKHdlYmhvb2tSZWNlaXZlclByb3BzMyksXG4gICAgKS50b0JlVW5kZWZpbmVkKCk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKFwiQWN0aW9uIEdyb3VwIEhlbHBlciBGdW5jdGlvbnMgVW5pdCBUZXN0IGZvciBFdmVudGh1YlJlY2VpdmVyUHJvcHNcIiwgKCkgPT4ge1xuICBsZXQgZXZlbnRodWJSZWNlaXZlclByb3BzMTogbW9kZWwuRXZlbnRodWJSZWNlaXZlclByb3BzID0ge1xuICAgIG5hbWU6IFwidGVzdF9ldmVudGh1Yl9yZWNlaXZlcl8xXCIsXG4gICAgZXZlbnRIdWJOYW1lOiBcInRlc3RldmVudGh1Ym5hbWUxXCIsXG4gICAgZXZlbnRIdWJOYW1lc3BhY2U6IFwidGVzdG5hbWVzcGFjZTFcIixcbiAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgfTtcbiAgbGV0IGV2ZW50aHViUmVjZWl2ZXJQcm9wczI6IG1vZGVsLkV2ZW50aHViUmVjZWl2ZXJQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3RfZXZlbnRodWJfcmVjZWl2ZXJfMlwiLFxuICAgIGV2ZW50SHViTmFtZTogXCJ0ZXN0ZXZlbnRodWJuYW1lMlwiLFxuICAgIGV2ZW50SHViTmFtZXNwYWNlOiBcInRlc3RuYW1lc3BhY2UyXCIsXG4gIH07XG4gIGxldCBldmVudGh1YlJlY2VpdmVyUHJvcHMzOiBtb2RlbC5FdmVudGh1YlJlY2VpdmVyUHJvcHM7XG5cbiAgaXQoXCJldmVudGh1YiByZWNlaXZlciBwcm9wIHdpdGggdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwRXZlbnRIdWJSZWNlaXZlclRvVGVycmFmb3JtKFxuICAgICAgICBldmVudGh1YlJlY2VpdmVyUHJvcHMxLFxuICAgICAgKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X2V2ZW50aHViX3JlY2VpdmVyXzFcIixcbiAgICAgIGV2ZW50SHViTmFtZTogXCJ0ZXN0ZXZlbnRodWJuYW1lMVwiLFxuICAgICAgZXZlbnRIdWJOYW1lc3BhY2U6IFwidGVzdG5hbWVzcGFjZTFcIixcbiAgICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcImV2ZW50aHViIHJlY2VpdmVyIHByb3Agd2l0aG91dCB1c2VDb21tb25BbGVydFNjaGVtYSBkZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBFdmVudEh1YlJlY2VpdmVyVG9UZXJyYWZvcm0oXG4gICAgICAgIGV2ZW50aHViUmVjZWl2ZXJQcm9wczIsXG4gICAgICApLFxuICAgICkudG9NYXRjaE9iamVjdCh7XG4gICAgICBuYW1lOiBcInRlc3RfZXZlbnRodWJfcmVjZWl2ZXJfMlwiLFxuICAgICAgZXZlbnRIdWJOYW1lOiBcInRlc3RldmVudGh1Ym5hbWUyXCIsXG4gICAgICBldmVudEh1Yk5hbWVzcGFjZTogXCJ0ZXN0bmFtZXNwYWNlMlwiLFxuICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IGZhbHNlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcImV2ZW50aHViIHJlY2VpdmVyIHByb3AgdW5kZWZpbmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoXG4gICAgICBtb2RlbC5tb25pdG9yQWN0aW9uR3JvdXBFdmVudEh1YlJlY2VpdmVyVG9UZXJyYWZvcm0oXG4gICAgICAgIGV2ZW50aHViUmVjZWl2ZXJQcm9wczMsXG4gICAgICApLFxuICAgICkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIkFjdGlvbiBHcm91cCBIZWxwZXIgRnVuY3Rpb25zIFVuaXQgVGVzdCBmb3IgQXp1cmVBcHBQdXNoUmVjZWl2ZXJQcm9wc1wiLCAoKSA9PiB7XG4gIGxldCBhenVyZUFwcFB1c2hSZWNlaXZlclByb3BzMTogbW9kZWwuQXp1cmVBcHBQdXNoUmVjZWl2ZXJQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3RfYXp1cmVfYXBwX3B1c2hfcmVjZWl2ZXJfMVwiLFxuICAgIGVtYWlsQWRkcmVzczogXCJ0ZXN0ZW1haWxAZ3Rlc3RlbWFpbC5jb21cIixcbiAgfTtcbiAgbGV0IGF6dXJlQXBwUHVzaFJlY2VpdmVyUHJvcHMyOiBtb2RlbC5BenVyZUFwcFB1c2hSZWNlaXZlclByb3BzO1xuXG4gIGl0KFwiYXp1cmUgYXBwIHB1c2ggcmVjZWl2ZXIgcHJvcCB3aXRoIHVzZUNvbW1vbkFsZXJ0U2NoZW1hIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cEF6dXJlQXBwUHVzaFJlY2VpdmVyVG9UZXJyYWZvcm0oXG4gICAgICAgIGF6dXJlQXBwUHVzaFJlY2VpdmVyUHJvcHMxLFxuICAgICAgKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X2F6dXJlX2FwcF9wdXNoX3JlY2VpdmVyXzFcIixcbiAgICAgIGVtYWlsQWRkcmVzczogXCJ0ZXN0ZW1haWxAZ3Rlc3RlbWFpbC5jb21cIixcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJhenVyZSBhcHAgcHVzaCByZWNlaXZlciBwcm9wIHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwQXp1cmVBcHBQdXNoUmVjZWl2ZXJUb1RlcnJhZm9ybShcbiAgICAgICAgYXp1cmVBcHBQdXNoUmVjZWl2ZXJQcm9wczIsXG4gICAgICApLFxuICAgICkudG9CZVVuZGVmaW5lZCgpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIkFjdGlvbiBHcm91cCBIZWxwZXIgRnVuY3Rpb25zIFVuaXQgVGVzdCBmb3IgTG9naWNBcHBSZWNlaXZlclByb3BzXCIsICgpID0+IHtcbiAgbGV0IGxvZ2ljQXBwUmVjZWl2ZXJQcm9wczE6IG1vZGVsLkxvZ2ljQXBwUmVjZWl2ZXJQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3RfbG9naWNfYXBwX3JlY2VpdmVyXzFcIixcbiAgICByZXNvdXJjZUlkOiBcInRlc3QvcmVzb3VyY2UvaWQvMVwiLFxuICAgIGNhbGxiYWNrVXJsOiBcImh0dHBzOi8vdGVzdC1sb2dpYy1hcHAtdXJpLTFcIixcbiAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgfTtcbiAgbGV0IGxvZ2ljQXBwUmVjZWl2ZXJQcm9wczI6IG1vZGVsLkxvZ2ljQXBwUmVjZWl2ZXJQcm9wcyA9IHtcbiAgICBuYW1lOiBcInRlc3RfbG9naWNfYXBwX3JlY2VpdmVyXzJcIixcbiAgICByZXNvdXJjZUlkOiBcInRlc3QvcmVzb3VyY2UvaWQvMlwiLFxuICAgIGNhbGxiYWNrVXJsOiBcImh0dHBzOi8vdGVzdC1sb2dpYy1hcHAtdXJpLTJcIixcbiAgfTtcbiAgbGV0IGxvZ2ljQXBwUmVjZWl2ZXJQcm9wczM6IG1vZGVsLkxvZ2ljQXBwUmVjZWl2ZXJQcm9wcztcblxuICBpdChcImxvZ2ljIGFwcCByZWNlaXZlciBwcm9wIHdpdGggdXNlQ29tbW9uQWxlcnRTY2hlbWEgZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwTG9naWNBcHBSZWNlaXZlclRvVGVycmFmb3JtKFxuICAgICAgICBsb2dpY0FwcFJlY2VpdmVyUHJvcHMxLFxuICAgICAgKSxcbiAgICApLnRvTWF0Y2hPYmplY3Qoe1xuICAgICAgbmFtZTogXCJ0ZXN0X2xvZ2ljX2FwcF9yZWNlaXZlcl8xXCIsXG4gICAgICBjYWxsYmFja1VybDogXCJodHRwczovL3Rlc3QtbG9naWMtYXBwLXVyaS0xXCIsXG4gICAgICB1c2VDb21tb25BbGVydFNjaGVtYTogdHJ1ZSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoXCJsb2dpYyBhcHAgcmVjZWl2ZXIgcHJvcCB3aXRob3V0IHVzZUNvbW1vbkFsZXJ0U2NoZW1hIGRlZmluZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIG1vZGVsLm1vbml0b3JBY3Rpb25Hcm91cExvZ2ljQXBwUmVjZWl2ZXJUb1RlcnJhZm9ybShcbiAgICAgICAgbG9naWNBcHBSZWNlaXZlclByb3BzMixcbiAgICAgICksXG4gICAgKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIG5hbWU6IFwidGVzdF9sb2dpY19hcHBfcmVjZWl2ZXJfMlwiLFxuICAgICAgY2FsbGJhY2tVcmw6IFwiaHR0cHM6Ly90ZXN0LWxvZ2ljLWFwcC11cmktMlwiLFxuICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IGZhbHNlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdChcImxvZ2ljIGFwcCByZWNlaXZlciBwcm9wIHVuZGVmaW5lZFwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgbW9kZWwubW9uaXRvckFjdGlvbkdyb3VwTG9naWNBcHBSZWNlaXZlclRvVGVycmFmb3JtKFxuICAgICAgICBsb2dpY0FwcFJlY2VpdmVyUHJvcHMzLFxuICAgICAgKSxcbiAgICApLnRvQmVVbmRlZmluZWQoKTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -27,9 +27,10 @@ export interface IGatewayProps {
27
27
  */
28
28
  readonly location: string;
29
29
  /**
30
- * The resource group under which the Application Gateway will be deployed.
30
+ * An optional reference to the resource group in which to deploy the Application Gateway.
31
+ * If not provided, the Application Gateway will be deployed in the default resource group.
31
32
  */
32
- readonly resourceGroup: ResourceGroup;
33
+ readonly resourceGroup?: ResourceGroup;
33
34
  /**
34
35
  * The SKU tier of the Application Gateway (e.g., Standard, WAF).
35
36
  */
@@ -166,6 +167,7 @@ export interface IGatewayProps {
166
167
  readonly wafConfiguration?: azapgw.ApplicationGatewayWafConfiguration;
167
168
  }
168
169
  export declare class Gateway extends AzureResource {
170
+ readonly props: IGatewayProps;
169
171
  resourceGroup: ResourceGroup;
170
172
  id: string;
171
173
  /**
@@ -176,7 +178,7 @@ export declare class Gateway extends AzureResource {
176
178
  * @param props - The properties for configuring the Azure Application Gateway. The properties include:
177
179
  * - `name`: Required. Unique name for the Application Gateway within Azure.
178
180
  * - `location`: Required. Azure Region for deployment.
179
- * - `resourceGroup`: Required. Reference to the resource group for deployment.
181
+ * - `resourceGroup`: Optional. Reference to the resource group for deployment.
180
182
  * - `skuTier`: Required. SKU tier of the Application Gateway (e.g., Standard, WAF).
181
183
  * - `skuSize`: Required. Size of the SKU for the Application Gateway.
182
184
  * - `capacity`: Required. Capacity (instance count) of the Application Gateway.
@@ -18,7 +18,7 @@ class Gateway extends core_azure_1.AzureResource {
18
18
  * @param props - The properties for configuring the Azure Application Gateway. The properties include:
19
19
  * - `name`: Required. Unique name for the Application Gateway within Azure.
20
20
  * - `location`: Required. Azure Region for deployment.
21
- * - `resourceGroup`: Required. Reference to the resource group for deployment.
21
+ * - `resourceGroup`: Optional. Reference to the resource group for deployment.
22
22
  * - `skuTier`: Required. SKU tier of the Application Gateway (e.g., Standard, WAF).
23
23
  * - `skuSize`: Required. Size of the SKU for the Application Gateway.
24
24
  * - `capacity`: Required. Capacity (instance count) of the Application Gateway.
@@ -88,6 +88,8 @@ class Gateway extends core_azure_1.AzureResource {
88
88
  */
89
89
  constructor(scope, id, props) {
90
90
  super(scope, id);
91
+ this.props = props;
92
+ this.resourceGroup = this.setupResourceGroup(props);
91
93
  // Define the identity
92
94
  let identity;
93
95
  // Check if Azure Key Vault is used and no identity is provided
@@ -95,7 +97,7 @@ class Gateway extends core_azure_1.AzureResource {
95
97
  // Create a managed identity and add it to identityIds
96
98
  const managedIdentity = new user_assigned_identity_1.UserAssignedIdentity(this, "ManagedIdentity", {
97
99
  name: `mi-${props.name}`,
98
- resourceGroupName: props.resourceGroup.name,
100
+ resourceGroupName: this.resourceGroup.name,
99
101
  location: props.location,
100
102
  });
101
103
  identity = {
@@ -112,7 +114,7 @@ class Gateway extends core_azure_1.AzureResource {
112
114
  const defaults = {
113
115
  subnetId: props.subnet?.id ||
114
116
  new vnet.Network(this, "vnet", {
115
- resourceGroup: props.resourceGroup,
117
+ resourceGroup: this.resourceGroup,
116
118
  }).subnets.default.id,
117
119
  identity: props.identity || identity,
118
120
  };
@@ -142,6 +144,12 @@ class Gateway extends core_azure_1.AzureResource {
142
144
  privateIpAddressAllocation: props.privateIpAddressAllocation,
143
145
  });
144
146
  }
147
+ // If no frontend ports are provided, use default dummy frontend ip configuration
148
+ if (frontendIpConfigs.length == 0) {
149
+ frontendIpConfigs.push({
150
+ name: "Dummy-frontend-ip-configuration",
151
+ });
152
+ }
145
153
  // Set default frontend ports if not provided
146
154
  const defaultFrontendPorts = [
147
155
  { name: "80", port: 80 },
@@ -153,7 +161,7 @@ class Gateway extends core_azure_1.AzureResource {
153
161
  // Create the Application Gateway
154
162
  const apgw = new application_gateway_1.ApplicationGateway(this, "ApplicationGateway", {
155
163
  name: props.name,
156
- resourceGroupName: props.resourceGroup.name,
164
+ resourceGroupName: this.resourceGroup.name,
157
165
  location: props.location,
158
166
  sslCertificate: props.sslCertificate,
159
167
  sslPolicy: props.sslPolicy,
@@ -190,10 +198,9 @@ class Gateway extends core_azure_1.AzureResource {
190
198
  tags: props.tags,
191
199
  });
192
200
  this.id = apgw.id;
193
- this.resourceGroup = props.resourceGroup;
194
201
  }
195
202
  }
196
203
  exports.Gateway = Gateway;
197
204
  _a = JSII_RTTI_SYMBOL_1;
198
- Gateway[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_applicationgateway.Gateway", version: "0.0.3-pre.10" };
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0ZXdheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1hcHBsaWNhdGlvbmdhdGV3YXkvbGliL2dhdGV3YXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5RkFBcUY7QUFHckYsaUdBQTRGO0FBSTVGLCtGQUEwRjtBQUUxRixtREFBbUQ7QUFDbkQsaURBQWlEO0FBd01qRCxpREFBaUQ7QUFDakQsTUFBYSxPQUFRLFNBQVEsMEJBQWE7SUFJeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTJFRztJQUVILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixzQkFBc0I7UUFDdEIsSUFBSSxRQUFRLENBQUM7UUFFYiwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNyQyxzREFBc0Q7WUFDdEQsTUFBTSxlQUFlLEdBQUcsSUFBSSw2Q0FBb0IsQ0FDOUMsSUFBSSxFQUNKLGlCQUFpQixFQUNqQjtnQkFDRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUN4QixpQkFBaUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzNDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTthQUN6QixDQUNGLENBQUM7WUFFRixRQUFRLEdBQUc7Z0JBQ1QsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxFQUFFLGNBQWM7YUFDckIsQ0FBQztZQUVGLElBQUksK0NBQXFCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtnQkFDeEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFD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Q3BDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyx3QkFBd0I7WUFDeEQsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU87Z0JBQ25CLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTztnQkFDbkIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2FBQ3pCO1lBQ0Qsc0JBQXNCLEVBQUU7Z0JBQ3RCO29CQUNFLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUTtvQkFDM0IsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksZ0JBQWdCO2lCQUNwQzthQUNGO1lBQ0QsWUFBWSxFQUFFLGFBQWE7WUFDM0IsdUJBQXVCLEVBQUUsaUJBQWlCO1lBQzFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDN0MsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtZQUM5QyxZQUFZLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDakMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7WUFDcEQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtZQUM3QyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDbEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO1lBQzNCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztJQUMzQyxDQUFDOztBQTdNSCwwQkE4TUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkdhdGV3YXkgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2FwcGxpY2F0aW9uLWdhdGV3YXlcIjtcbmltcG9ydCAqIGFzIGF6YXBndyBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2FwcGxpY2F0aW9uLWdhdGV3YXlcIjtcbmltcG9ydCB7IEtleVZhdWx0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rZXktdmF1bHRcIjtcbmltcG9ydCB7IEtleVZhdWx0QWNjZXNzUG9saWN5QSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva2V5LXZhdWx0LWFjY2Vzcy1wb2xpY3lcIjtcbmltcG9ydCB7IFB1YmxpY0lwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9wdWJsaWMtaXBcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBTdWJuZXQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N1Ym5ldFwiO1xuaW1wb3J0IHsgVXNlckFzc2lnbmVkSWRlbnRpdHkgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3VzZXItYXNzaWduZWQtaWRlbnRpdHlcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyB2bmV0IGZyb20gXCIuLi8uLi9henVyZS12aXJ0dWFsbmV0d29ya1wiO1xuaW1wb3J0IHsgQXp1cmVSZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlXCI7XG5cbi8vIERlZmluZSB0aGUgaW50ZXJmYWNlIGZvciBBcHBsaWNhdGlvbiBHYXRld2F5IHByb3BlcnRpZXNcbmV4cG9ydCBpbnRlcmZhY2UgSUdhdGV3YXlQcm9wcyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBwdWJsaWMgSVAgYWRkcmVzcyBmb3IgdGhlIGZyb250ZW5kIG9mIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcHVibGljSXBBZGRyZXNzPzogUHVibGljSXA7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHByaXZhdGUgSVAgYWRkcmVzcyBmb3IgdGhlIGZyb250ZW5kIG9mIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb2NhdGlvbiBtZXRob2QgZm9yIHRoZSBwcml2YXRlIElQIGFkZHJlc3MgKGUuZy4sIFN0YXRpYywgRHluYW1pYykuXG4gICAqL1xuICBwcml2YXRlSXBBZGRyZXNzQWxsb2NhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgQXBwbGljYXRpb24gR2F0ZXdheSB3aWxsIGJlIGRlcGxveWVkIChlLmcuLCByZWdpb24pLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlc291cmNlIGdyb3VwIHVuZGVyIHdoaWNoIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5IHdpbGwgYmUgZGVwbG95ZWQuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgU0tVIHRpZXIgb2YgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkgKGUuZy4sIFN0YW5kYXJkLCBXQUYpLlxuICAgKi9cbiAgcmVhZG9ubHkgc2t1VGllcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgU0tVIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHNrdVNpemU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhcGFjaXR5IChpbnN0YW5jZSBjb3VudCkgb2YgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgYmFja2VuZCBhZGRyZXNzIHBvb2xzIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IGJhY2tlbmRBZGRyZXNzUG9vbHM6IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlCYWNrZW5kQWRkcmVzc1Bvb2xbXTtcblxuICAvKipcbiAgICogVGhlIGJhY2tlbmQgSFRUUCBzZXR0aW5ncyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBiYWNrZW5kSHR0cFNldHRpbmdzOiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5QmFja2VuZEh0dHBTZXR0aW5nc1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBmcm9udGVuZCBwb3J0cyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBmcm9udGVuZFBvcnRzPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheUZyb250ZW5kUG9ydFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgSFRUUCBsaXN0ZW5lcnMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgaHR0cExpc3RlbmVyczogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheUh0dHBMaXN0ZW5lcltdO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVxdWVzdCByb3V0aW5nIHJ1bGVzIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RSb3V0aW5nUnVsZXM6IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlSZXF1ZXN0Um91dGluZ1J1bGVbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgc3VibmV0IGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldD86IFN1Ym5ldDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdGVuYW50IElEIGZvciB1c2Ugd2l0aCBLZXkgVmF1bHQsIGlmIGFwcGxpY2FibGUuXG4gICAqL1xuICByZWFkb25seSB0ZW5hbnRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyB0byBlbmFibGUgSFRUUDIuXG4gICAqL1xuICByZWFkb25seSBlbmFibGVIdHRwMj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gZW5hYmxlIEZJUFMtY29tcGxpYW50IGFsZ29yaXRobXMuXG4gICAqL1xuICByZWFkb25seSBmaXBzRW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIElEIG9mIHRoZSBmaXJld2FsbCBwb2xpY3kuXG4gICAqL1xuICByZWFkb25seSBmaXJld2FsbFBvbGljeUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGVuZm9yY2UgYXNzb2NpYXRpb24gb2YgdGhlIGZpcmV3YWxsIHBvbGljeS5cbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRmlyZXdhbGxQb2xpY3lBc3NvY2lhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRhZ3MgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5IHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGF2YWlsYWJpbGl0eSB6b25lcyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSB6b25lcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBLZXkgVmF1bHQgcmVzb3VyY2UgZm9yIHN0b3JpbmcgU1NMIGNlcnRpZmljYXRlcy5cbiAgICovXG4gIHJlYWRvbmx5IGtleVZhdWx0PzogS2V5VmF1bHQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGF1dGhlbnRpY2F0aW9uIGNlcnRpZmljYXRlcyBmb3IgbXV0dWFsIGF1dGhlbnRpY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aGVudGljYXRpb25DZXJ0aWZpY2F0ZT86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlBdXRoZW50aWNhdGlvbkNlcnRpZmljYXRlW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGF1dG9zY2FsZSBjb25maWd1cmF0aW9uIGZvciBkeW5hbWljYWxseSBhZGp1c3RpbmcgdGhlIGNhcGFjaXR5IG9mIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b3NjYWxlQ29uZmlndXJhdGlvbj86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlBdXRvc2NhbGVDb25maWd1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjdXN0b20gZXJyb3IgY29uZmlndXJhdGlvbnMgdG8gc3BlY2lmeSBjdXN0b20gZXJyb3IgcGFnZXMuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21FcnJvckNvbmZpZ3VyYXRpb24/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5Q3VzdG9tRXJyb3JDb25maWd1cmF0aW9uW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGlkZW50aXR5IGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheSwgdXNlZCBmb3IgYWNjZXNzaW5nIG90aGVyIEF6dXJlIHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheUlkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9ucyBmb3IgZW5hYmxpbmcgUHJpdmF0ZSBMaW5rIG9uIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpdmF0ZUxpbmtDb25maWd1cmF0aW9uPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVByaXZhdGVMaW5rQ29uZmlndXJhdGlvbltdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcm9iZXMgZm9yIGhlYWx0aCBjaGVja3Mgb2YgdGhlIGJhY2tlbmQgSFRUUCBzZXR0aW5ncy5cbiAgICovXG4gIHJlYWRvbmx5IHByb2JlPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVByb2JlW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb25zIGZvciByZWRpcmVjdCBydWxlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZGlyZWN0Q29uZmlndXJhdGlvbj86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlSZWRpcmVjdENvbmZpZ3VyYXRpb25bXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgcmV3cml0ZSBydWxlIHNldHMgZm9yIG1vZGlmeWluZyBIVFRQIHJlcXVlc3QgYW5kIHJlc3BvbnNlIGhlYWRlcnMgYW5kIGJvZGllcy5cbiAgICovXG4gIHJlYWRvbmx5IHJld3JpdGVSdWxlU2V0PzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVJld3JpdGVSdWxlU2V0W107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIFNTTCBjZXJ0aWZpY2F0ZXMgZm9yIGVuYWJsaW5nIEhUVFBTIG9uIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgc3NsQ2VydGlmaWNhdGU/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5U3NsQ2VydGlmaWNhdGVbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgU1NMIHBvbGljeSBjb25maWd1cmF0aW9ucywgZGVmaW5pbmcgdGhlIHByb3RvY29sIGFuZCBjaXBoZXIgc3VpdGVzIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBzc2xQb2xpY3k/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5U3NsUG9saWN5O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBTU0wgcHJvZmlsZXMgZm9yIG1hbmFnaW5nIFNTTCB0ZXJtaW5hdGlvbiBhbmQgcG9saWN5IHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgc3NsUHJvZmlsZT86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlTc2xQcm9maWxlW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRpbWVvdXQgc2V0dGluZ3MgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5IHJlc291cmNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXRzPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVRpbWVvdXRzO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0cnVzdGVkIGNsaWVudCBjZXJ0aWZpY2F0ZXMgZm9yIG11dHVhbCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRDbGllbnRDZXJ0aWZpY2F0ZT86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlUcnVzdGVkQ2xpZW50Q2VydGlmaWNhdGVbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgdHJ1c3RlZCByb290IGNlcnRpZmljYXRlcyBmb3IgYmFja2VuZCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRydXN0ZWRSb290Q2VydGlmaWNhdGU/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5VHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZVtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBVUkwgcGF0aCBtYXAgZm9yIHJvdXRpbmcgYmFzZWQgb24gVVJMIHBhdGhzLlxuICAgKi9cbiAgcmVhZG9ubHkgdXJsUGF0aE1hcD86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlVcmxQYXRoTWFwW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIFdlYiBBcHBsaWNhdGlvbiBGaXJld2FsbCAoV0FGKSBjb25maWd1cmF0aW9uIHRvIHByb3ZpZGUgZW5oYW5jZWQgc2VjdXJpdHkuXG4gICAqL1xuICByZWFkb25seSB3YWZDb25maWd1cmF0aW9uPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVdhZkNvbmZpZ3VyYXRpb247XG59XG5cbi8vIERlZmluZSB0aGUgY2xhc3MgZm9yIEF6dXJlIEFwcGxpY2F0aW9uIEdhdGV3YXlcbmV4cG9ydCBjbGFzcyBHYXRld2F5IGV4dGVuZHMgQXp1cmVSZXNvdXJjZSB7XG4gIHB1YmxpYyByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBBenVyZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhpcyBjb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyB0aGUgQXp1cmUgQXBwbGljYXRpb24gR2F0ZXdheS4gVGhlIHByb3BlcnRpZXMgaW5jbHVkZTpcbiAgICogICAgICAgICAgICAgICAgLSBgbmFtZWA6IFJlcXVpcmVkLiBVbmlxdWUgbmFtZSBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkgd2l0aGluIEF6dXJlLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFJlcXVpcmVkLiBBenVyZSBSZWdpb24gZm9yIGRlcGxveW1lbnQuXG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBSZXF1aXJlZC4gUmVmZXJlbmNlIHRvIHRoZSByZXNvdXJjZSBncm91cCBmb3IgZGVwbG95bWVudC5cbiAgICogICAgICAgICAgICAgICAgLSBgc2t1VGllcmA6IFJlcXVpcmVkLiBTS1UgdGllciBvZiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheSAoZS5nLiwgU3RhbmRhcmQsIFdBRikuXG4gICAqICAgICAgICAgICAgICAgIC0gYHNrdVNpemVgOiBSZXF1aXJlZC4gU2l6ZSBvZiB0aGUgU0tVIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICogICAgICAgICAgICAgICAgLSBgY2FwYWNpdHlgOiBSZXF1aXJlZC4gQ2FwYWNpdHkgKGluc3RhbmNlIGNvdW50KSBvZiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICogICAgICAgICAgICAgICAgLSBgYmFja2VuZEFkZHJlc3NQb29sc2A6IFJlcXVpcmVkLiBCYWNrZW5kIGFkZHJlc3MgcG9vbHMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKiAgICAgICAgICAgICAgICAtIGBiYWNrZW5kSHR0cFNldHRpbmdzYDogUmVxdWlyZWQuIEJhY2tlbmQgSFRUUCBzZXR0aW5ncyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqICAgICAgICAgICAgICAgIC0gYGh0dHBMaXN0ZW5lcnNgOiBSZXF1aXJlZC4gSFRUUCBsaXN0ZW5lcnMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKiAgICAgICAgICAgICAgICAtIGByZXF1ZXN0Um91dGluZ1J1bGVzYDogUmVxdWlyZWQuIFJlcXVlc3Qgcm91dGluZyBydWxlcyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqICAgICAgICAgICAgICAgIC0gYHB1YmxpY0lwQWRkcmVzc2A6IE9wdGlvbmFsLiBQdWJsaWMgSVAgYWRkcmVzcyBmb3IgdGhlIGZyb250ZW5kLlxuICAgKiAgICAgICAgICAgICAgICAtIGBwcml2YXRlSXBBZGRyZXNzYDogT3B0aW9uYWwuIFByaXZhdGUgSVAgYWRkcmVzcyBmb3IgdGhlIGZyb250ZW5kLlxuICAgKiAgICAgICAgICAgICAgICAtIGBwcml2YXRlSXBBZGRyZXNzQWxsb2NhdGlvbmA6IE9wdGlvbmFsLiBBbGxvY2F0aW9uIG1ldGhvZCBmb3IgdGhlIHByaXZhdGUgSVAgKFN0YXRpYywgRHluYW1pYykuXG4gICAqICAgICAgICAgICAgICAgIC0gYGZyb250ZW5kUG9ydHNgOiBPcHRpb25hbC4gRnJvbnRlbmQgcG9ydHMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKiAgICAgICAgICAgICAgICAtIGBzdWJuZXRgOiBPcHRpb25hbC4gU3VibmV0IGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICogICAgICAgICAgICAgICAgLSBgZW5hYmxlSHR0cDJgOiBPcHRpb25hbC4gRmxhZyB0byBlbmFibGUgSFRUUDIuXG4gICAqICAgICAgICAgICAgICAgIC0gYGZpcHNFbmFibGVkYDogT3B0aW9uYWwuIEZsYWcgdG8gZW5hYmxlIEZJUFMtY29tcGxpYW50IGFsZ29yaXRobXMuXG4gICAqICAgICAgICAgICAgICAgIC0gYGZpcmV3YWxsUG9saWN5SWRgOiBPcHRpb25hbC4gSUQgb2YgdGhlIGZpcmV3YWxsIHBvbGljeS5cbiAgICogICAgICAgICAgICAgICAgLSBgZm9yY2VGaXJld2FsbFBvbGljeUFzc29jaWF0aW9uYDogT3B0aW9uYWwuIEZsYWcgdG8gZW5mb3JjZSBhc3NvY2lhdGlvbiBvZiB0aGUgZmlyZXdhbGwgcG9saWN5LlxuICAgKiAgICAgICAgICAgICAgICAtIGB0YWdzYDogT3B0aW9uYWwuIFRhZ3MgZm9yIHJlc291cmNlIG1hbmFnZW1lbnQuXG4gICAqICAgICAgICAgICAgICAgIC0gQWRkaXRpb25hbCBvcHRpb25hbCBwcm9wZXJ0aWVzIGFzIGRlc2NyaWJlZCBpbiBgSUdhdGV3YXlQcm9wc2AgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIG5ldyBHYXRld2F5KHRoaXMsICdhcHBHYXRld2F5MScsIHtcbiAgICogICBuYW1lOiAnZ2F0ZXdheUVhc3QnLFxuICAgKiAgIHJlc291cmNlR3JvdXA6IHJlc291cmNlR3JvdXAsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIHNrdVRpZXI6IFwiU3RhbmRhcmRfdjJcIixcbiAgICAgIHNrdVNpemU6IFwiU3RhbmRhcmRfdjJcIixcbiAgICAgIGNhcGFjaXR5OiAyLFxuICAgICAgcHVibGljSXBBZGRyZXNzOiBwdWJsaWNJcCxcbiAgICAgIHN1Ym5ldDogc3VibmV0LFxuICAgICAgYmFja2VuZEFkZHJlc3NQb29sczogW1xuICAgICAgICB7IG5hbWU6IFwiYmFja2VuZC1hZGRyZXNzLXBvb2wtMVwiIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImJhY2tlbmQtYWRkcmVzcy1wb29sLTJcIixcbiAgICAgICAgICBpcEFkZHJlc3NlczogW1wiMTAuMS4wLjRcIiwgXCIxMC4xLjAuNVwiLCBcIjEwLjEuMC42XCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGh0dHBMaXN0ZW5lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaHR0cC1saXN0ZW5lclwiLFxuICAgICAgICAgIGZyb250ZW5kUG9ydE5hbWU6IFwiODBcIixcbiAgICAgICAgICBmcm9udGVuZElwQ29uZmlndXJhdGlvbk5hbWU6IFwiUHVibGljLWZyb250ZW5kLWlwLWNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICBwcm90b2NvbDogXCJIdHRwXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYmFja2VuZEh0dHBTZXR0aW5nczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJiYWNrZW5kLWh0dHAtc2V0dGluZ1wiLFxuICAgICAgICAgIHBvcnQ6IDgwLFxuICAgICAgICAgIHByb3RvY29sOiBcIkh0dHBcIixcbiAgICAgICAgICByZXF1ZXN0VGltZW91dDogMjAsXG4gICAgICAgICAgY29va2llQmFzZWRBZmZpbml0eTogXCJEaXNhYmxlZFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHJlcXVlc3RSb3V0aW5nUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwicmVxdWVzdC1yb3V0aW5nLXJ1bGUtMVwiLFxuICAgICAgICAgIGh0dHBMaXN0ZW5lck5hbWU6IFwiaHR0cC1saXN0ZW5lclwiLFxuICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgIGJhY2tlbmRBZGRyZXNzUG9vbE5hbWU6IFwiYmFja2VuZC1hZGRyZXNzLXBvb2wtMVwiLFxuICAgICAgICAgIGJhY2tlbmRIdHRwU2V0dGluZ3NOYW1lOiBcImJhY2tlbmQtaHR0cC1zZXR0aW5nXCIsXG4gICAgICAgICAgcnVsZVR5cGU6IFwiQmFzaWNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElHYXRld2F5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gRGVmaW5lIHRoZSBpZGVudGl0eVxuICAgIGxldCBpZGVudGl0eTtcblxuICAgIC8vIENoZWNrIGlmIEF6dXJlIEtleSBWYXVsdCBpcyB1c2VkIGFuZCBubyBpZGVudGl0eSBpcyBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5rZXlWYXVsdCAmJiAhcHJvcHMuaWRlbnRpdHkpIHtcbiAgICAgIC8vIENyZWF0ZSBhIG1hbmFnZWQgaWRlbnRpdHkgYW5kIGFkZCBpdCB0byBpZGVudGl0eUlkc1xuICAgICAgY29uc3QgbWFuYWdlZElkZW50aXR5ID0gbmV3IFVzZXJBc3NpZ25lZElkZW50aXR5KFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIk1hbmFnZWRJZGVudGl0eVwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogYG1pLSR7cHJvcHMubmFtZX1gLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgaWRlbnRpdHkgPSB7XG4gICAgICAgIGlkZW50aXR5SWRzOiBbbWFuYWdlZElkZW50aXR5LmlkXSxcbiAgICAgICAgdHlwZTogXCJVc2VyQXNzaWduZWRcIixcbiAgICAgIH07XG5cbiAgICAgIG5ldyBLZXlWYXVsdEFjY2Vzc1BvbGljeUEodGhpcywgXCJwb2xpY3lcIiwge1xuICAgICAgICBrZXlWYXVsdElkOiBwcm9wcy5rZXlWYXVsdC5pZCxcbiAgICAgICAgdGVuYW50SWQ6IHByb3BzLnRlbmFudElkIHx8IFwiXCIsXG4gICAgICAgIG9iamVjdElkOiBtYW5hZ2VkSWRlbnRpdHkucHJpbmNpcGFsSWQsXG4gICAgICAgIHNlY3JldFBlcm1pc3Npb25zOiBbXCJHZXRcIiwgXCJMaXN0XCJdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBzdWJuZXRJZDpcbiAgICAgICAgcHJvcHMuc3VibmV0Py5pZCB8fFxuICAgICAgICBuZXcgdm5ldC5OZXR3b3JrKHRoaXMsIFwidm5ldFwiLCB7XG4gICAgICAgICAgcmVzb3VyY2VHcm91cDogcHJvcHMucmVzb3VyY2VHcm91cCxcbiAgICAgICAgfSkuc3VibmV0cy5kZWZhdWx0LmlkLFxuICAgICAgaWRlbnRpdHk6IHByb3BzLmlkZW50aXR5IHx8IGlkZW50aXR5LFxuICAgIH07XG5cbiAgICAvLyBXQUYgY29uZmlndXJhdGlvblxuICAgIGxldCB3YWZDb25maWd1cmF0aW9uID0gcHJvcHMud2FmQ29uZmlndXJhdGlvblxuICAgICAgPyB7XG4gICAgICAgICAgZW5hYmxlZDogcHJvcHMud2FmQ29uZmlndXJhdGlvbi5lbmFibGVkLFxuICAgICAgICAgIGZpcmV3YWxsTW9kZTogcHJvcHMud2FmQ29uZmlndXJhdGlvbi5maXJld2FsbE1vZGUgfHwgXCJEZXRlY3Rpb25cIixcbiAgICAgICAgICBydWxlU2V0VmVyc2lvbjogcHJvcHMud2FmQ29uZmlndXJhdGlvbi5ydWxlU2V0VmVyc2lvbiB8fCBcIjMuMFwiLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIER5bmFtaWNhbGx5IGNyZWF0ZSBmcm9udGVuZCBJUCBjb25maWd1cmF0aW9uc1xuICAgIGxldCBmcm9udGVuZElwQ29uZmlncyA9IFtdO1xuXG4gICAgLy8gUHVibGljIElQIGNvbmZpZ3VyYXRpb25cbiAgICBpZiAocHJvcHMucHVibGljSXBBZGRyZXNzKSB7XG4gICAgICBmcm9udGVuZElwQ29uZmlncy5wdXNoKHtcbiAgICAgICAgbmFtZTogXCJQdWJsaWMtZnJvbnRlbmQtaXAtY29uZmlndXJhdGlvblwiLFxuICAgICAgICBwdWJsaWNJcEFkZHJlc3NJZDogcHJvcHMucHVibGljSXBBZGRyZXNzLmlkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUHJpdmF0ZSBJUCBjb25maWd1cmF0aW9uXG4gICAgaWYgKHByb3BzLnByaXZhdGVJcEFkZHJlc3MgfHwgcHJvcHMucHJpdmF0ZUlwQWRkcmVzc0FsbG9jYXRpb24pIHtcbiAgICAgIGZyb250ZW5kSXBDb25maWdzLnB1c2goe1xuICAgICAgICBuYW1lOiBcIlByaXZhdGUtZnJvbnRlbmQtaXAtY29uZmlndXJhdGlvblwiLFxuICAgICAgICBzdWJuZXRJZDogZGVmYXVsdHMuc3VibmV0SWQsXG4gICAgICAgIHByaXZhdGVJcEFkZHJlc3M6IHByb3BzLnByaXZhdGVJcEFkZHJlc3MsXG4gICAgICAgIHByaXZhdGVJcEFkZHJlc3NBbGxvY2F0aW9uOiBwcm9wcy5wcml2YXRlSXBBZGRyZXNzQWxsb2NhdGlvbixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IGZyb250ZW5kIHBvcnRzIGlmIG5vdCBwcm92aWRlZFxuICAgIGNvbnN0IGRlZmF1bHRGcm9udGVuZFBvcnRzID0gW1xuICAgICAgeyBuYW1lOiBcIjgwXCIsIHBvcnQ6IDgwIH0sXG4gICAgICB7IG5hbWU6IFwiNDQzXCIsIHBvcnQ6IDQ0MyB9LFxuICAgIF07XG5cbiAgICBjb25zdCBmcm9udGVuZFBvcnRzID1cbiAgICAgIHByb3BzLmZyb250ZW5kUG9ydHMgJiYgcHJvcHMuZnJvbnRlbmRQb3J0cy5sZW5ndGggPiAwXG4gICAgICAgID8gcHJvcHMuZnJvbnRlbmRQb3J0c1xuICAgICAgICA6IGRlZmF1bHRGcm9udGVuZFBvcnRzO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5XG4gICAgY29uc3QgYXBndyA9IG5ldyBBcHBsaWNhdGlvbkdhdGV3YXkodGhpcywgXCJBcHBsaWNhdGlvbkdhdGV3YXlcIiwge1xuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24sXG4gICAgICBzc2xDZXJ0aWZpY2F0ZTogcHJvcHMuc3NsQ2VydGlmaWNhdGUsXG4gICAgICBzc2xQb2xpY3k6IHByb3BzLnNzbFBvbGljeSxcbiAgICAgIHNzbFByb2ZpbGU6IHByb3BzLnNzbFByb2ZpbGUsXG4gICAgICBhdXRoZW50aWNhdGlvbkNlcnRpZmljYXRlOiBwcm9wcy5hdXRoZW50aWNhdGlvbkNlcnRpZmljYXRlLFxuICAgICAgYXV0b3NjYWxlQ29uZmlndXJhdGlvbjogcHJvcHMuYXV0b3NjYWxlQ29uZmlndXJhdGlvbixcbiAgICAgIGN1c3RvbUVycm9yQ29uZmlndXJhdGlvbjogcHJvcHMuY3VzdG9tRXJyb3JDb25maWd1cmF0aW9uLFxuICAgICAgcmVkaXJlY3RDb25maWd1cmF0aW9uOiBwcm9wcy5yZWRpcmVjdENvbmZpZ3VyYXRpb24sXG4gICAgICByZXdyaXRlUnVsZVNldDogcHJvcHMucmV3cml0ZVJ1bGVTZXQsXG4gICAgICBwcml2YXRlTGlua0NvbmZpZ3VyYXRpb246IHByb3BzLnByaXZhdGVMaW5rQ29uZmlndXJhdGlvbixcbiAgICAgIHdhZkNvbmZpZ3VyYXRpb246IHdhZkNvbmZpZ3VyYXRpb24sXG4gICAgICBza3U6IHtcbiAgICAgICAgbmFtZTogcHJvcHMuc2t1U2l6ZSxcbiAgICAgICAgdGllcjogcHJvcHMuc2t1VGllcixcbiAgICAgICAgY2FwYWNpdHk6IHByb3BzLmNhcGFjaXR5LFxuICAgICAgfSxcbiAgICAgIGdhdGV3YXlJcENvbmZpZ3VyYXRpb246IFtcbiAgICAgICAge1xuICAgICAgICAgIHN1Ym5ldElkOiBkZWZhdWx0cy5zdWJuZXRJZCxcbiAgICAgICAgICBuYW1lOiBgJHtwcm9wcy5uYW1lfS1jb25maWd1cmF0aW9uYCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmcm9udGVuZFBvcnQ6IGZyb250ZW5kUG9ydHMsXG4gICAgICBmcm9udGVuZElwQ29uZmlndXJhdGlvbjogZnJvbnRlbmRJcENvbmZpZ3MsXG4gICAgICBiYWNrZW5kQWRkcmVzc1Bvb2w6IHByb3BzLmJhY2tlbmRBZGRyZXNzUG9vbHMsXG4gICAgICBiYWNrZW5kSHR0cFNldHRpbmdzOiBwcm9wcy5iYWNrZW5kSHR0cFNldHRpbmdzLFxuICAgICAgaHR0cExpc3RlbmVyOiBwcm9wcy5odHRwTGlzdGVuZXJzLFxuICAgICAgdXJsUGF0aE1hcDogcHJvcHMudXJsUGF0aE1hcCxcbiAgICAgIHRydXN0ZWRSb290Q2VydGlmaWNhdGU6IHByb3BzLnRydXN0ZWRSb290Q2VydGlmaWNhdGUsXG4gICAgICByZXF1ZXN0Um91dGluZ1J1bGU6IHByb3BzLnJlcXVlc3RSb3V0aW5nUnVsZXMsXG4gICAgICBwcm9iZTogcHJvcHMucHJvYmUsXG4gICAgICBpZGVudGl0eTogZGVmYXVsdHMuaWRlbnRpdHksXG4gICAgICB6b25lczogcHJvcHMuem9uZXMsXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgdGhpcy5pZCA9IGFwZ3cuaWQ7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gcHJvcHMucmVzb3VyY2VHcm91cDtcbiAgfVxufVxuIl19
205
+ Gateway[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_applicationgateway.Gateway", version: "0.0.3-pre.11" };
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2F0ZXdheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1hcHBsaWNhdGlvbmdhdGV3YXkvbGliL2dhdGV3YXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx5RkFBcUY7QUFHckYsaUdBQTRGO0FBSTVGLCtGQUEwRjtBQUUxRixtREFBbUQ7QUFDbkQsaURBQWlEO0FBeU1qRCxpREFBaUQ7QUFDakQsTUFBYSxPQUFRLFNBQVEsMEJBQWE7SUFLeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTJFRztJQUVILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDNUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxzQkFBc0I7UUFDdEIsSUFBSSxRQUFRLENBQUM7UUFFYiwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUNyQyxzREFBc0Q7WUFDdEQsTUFBTSxlQUFlLEdBQUcsSUFBSSw2Q0FBb0IsQ0FDOUMsSUFBSSxFQUNKLGlCQUFpQixFQUNqQjtnQkFDRSxJQUFJLEVBQUUsTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUN4QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzFDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTthQUN6QixDQUNGLENBQUM7WUFFRixRQUFRLEdBQUc7Z0JBQ1QsV0FBVyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxFQUFFLGNBQWM7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UUFFSCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7QUF4TkgsMEJBeU5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25HYXRld2F5IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9hcHBsaWNhdGlvbi1nYXRld2F5XCI7XG5pbXBvcnQgKiBhcyBhemFwZ3cgZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9hcHBsaWNhdGlvbi1nYXRld2F5XCI7XG5pbXBvcnQgeyBLZXlWYXVsdCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva2V5LXZhdWx0XCI7XG5pbXBvcnQgeyBLZXlWYXVsdEFjY2Vzc1BvbGljeUEgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2tleS12YXVsdC1hY2Nlc3MtcG9saWN5XCI7XG5pbXBvcnQgeyBQdWJsaWNJcCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHVibGljLWlwXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3VibmV0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdWJuZXRcIjtcbmltcG9ydCB7IFVzZXJBc3NpZ25lZElkZW50aXR5IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi91c2VyLWFzc2lnbmVkLWlkZW50aXR5XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgdm5ldCBmcm9tIFwiLi4vLi4vYXp1cmUtdmlydHVhbG5ldHdvcmtcIjtcbmltcG9ydCB7IEF6dXJlUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZVwiO1xuXG4vLyBEZWZpbmUgdGhlIGludGVyZmFjZSBmb3IgQXBwbGljYXRpb24gR2F0ZXdheSBwcm9wZXJ0aWVzXG5leHBvcnQgaW50ZXJmYWNlIElHYXRld2F5UHJvcHMge1xuICAvKipcbiAgICogT3B0aW9uYWwgcHVibGljIElQIGFkZHJlc3MgZm9yIHRoZSBmcm9udGVuZCBvZiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHB1YmxpY0lwQWRkcmVzcz86IFB1YmxpY0lwO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBwcml2YXRlIElQIGFkZHJlc3MgZm9yIHRoZSBmcm9udGVuZCBvZiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHByaXZhdGVJcEFkZHJlc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRpb24gbWV0aG9kIGZvciB0aGUgcHJpdmF0ZSBJUCBhZGRyZXNzIChlLmcuLCBTdGF0aWMsIER5bmFtaWMpLlxuICAgKi9cbiAgcHJpdmF0ZUlwQWRkcmVzc0FsbG9jYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gd2hlcmUgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkgd2lsbCBiZSBkZXBsb3llZCAoZS5nLiwgcmVnaW9uKS5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHJlZmVyZW5jZSB0byB0aGUgcmVzb3VyY2UgZ3JvdXAgaW4gd2hpY2ggdG8gZGVwbG95IHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5IHdpbGwgYmUgZGVwbG95ZWQgaW4gdGhlIGRlZmF1bHQgcmVzb3VyY2UgZ3JvdXAuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwPzogUmVzb3VyY2VHcm91cDtcblxuICAvKipcbiAgICogVGhlIFNLVSB0aWVyIG9mIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5IChlLmcuLCBTdGFuZGFyZCwgV0FGKS5cbiAgICovXG4gIHJlYWRvbmx5IHNrdVRpZXI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNpemUgb2YgdGhlIFNLVSBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBza3VTaXplOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXBhY2l0eSAoaW5zdGFuY2UgY291bnQpIG9mIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgY2FwYWNpdHk6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGJhY2tlbmQgYWRkcmVzcyBwb29scyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBiYWNrZW5kQWRkcmVzc1Bvb2xzOiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5QmFja2VuZEFkZHJlc3NQb29sW107XG5cbiAgLyoqXG4gICAqIFRoZSBiYWNrZW5kIEhUVFAgc2V0dGluZ3MgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgYmFja2VuZEh0dHBTZXR0aW5nczogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheUJhY2tlbmRIdHRwU2V0dGluZ3NbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgZnJvbnRlbmQgcG9ydHMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgZnJvbnRlbmRQb3J0cz86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlGcm9udGVuZFBvcnRbXTtcblxuICAvKipcbiAgICogVGhlIEhUVFAgbGlzdGVuZXJzIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IGh0dHBMaXN0ZW5lcnM6IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlIdHRwTGlzdGVuZXJbXTtcblxuICAvKipcbiAgICogVGhlIHJlcXVlc3Qgcm91dGluZyBydWxlcyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSByZXF1ZXN0Um91dGluZ1J1bGVzOiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5UmVxdWVzdFJvdXRpbmdSdWxlW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN1Ym5ldCBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXQ/OiBTdWJuZXQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRlbmFudCBJRCBmb3IgdXNlIHdpdGggS2V5IFZhdWx0LCBpZiBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVuYW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gZW5hYmxlIEhUVFAyLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSHR0cDI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGVuYWJsZSBGSVBTLWNvbXBsaWFudCBhbGdvcml0aG1zLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlwc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBJRCBvZiB0aGUgZmlyZXdhbGwgcG9saWN5LlxuICAgKi9cbiAgcmVhZG9ubHkgZmlyZXdhbGxQb2xpY3lJZD86IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyB0byBlbmZvcmNlIGFzc29jaWF0aW9uIG9mIHRoZSBmaXJld2FsbCBwb2xpY3kuXG4gICAqL1xuICByZWFkb25seSBmb3JjZUZpcmV3YWxsUG9saWN5QXNzb2NpYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0YWdzIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheSByZXNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhdmFpbGFiaWxpdHkgem9uZXMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKi9cbiAgcmVhZG9ubHkgem9uZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgS2V5IFZhdWx0IHJlc291cmNlIGZvciBzdG9yaW5nIFNTTCBjZXJ0aWZpY2F0ZXMuXG4gICAqL1xuICByZWFkb25seSBrZXlWYXVsdD86IEtleVZhdWx0O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhdXRoZW50aWNhdGlvbiBjZXJ0aWZpY2F0ZXMgZm9yIG11dHVhbCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uQ2VydGlmaWNhdGU/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5QXV0aGVudGljYXRpb25DZXJ0aWZpY2F0ZVtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBhdXRvc2NhbGUgY29uZmlndXJhdGlvbiBmb3IgZHluYW1pY2FsbHkgYWRqdXN0aW5nIHRoZSBjYXBhY2l0eSBvZiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IGF1dG9zY2FsZUNvbmZpZ3VyYXRpb24/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5QXV0b3NjYWxlQ29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgY3VzdG9tIGVycm9yIGNvbmZpZ3VyYXRpb25zIHRvIHNwZWNpZnkgY3VzdG9tIGVycm9yIHBhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRXJyb3JDb25maWd1cmF0aW9uPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheUN1c3RvbUVycm9yQ29uZmlndXJhdGlvbltdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpZGVudGl0eSBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXksIHVzZWQgZm9yIGFjY2Vzc2luZyBvdGhlciBBenVyZSByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlJZGVudGl0eTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgY29uZmlndXJhdGlvbnMgZm9yIGVuYWJsaW5nIFByaXZhdGUgTGluayBvbiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHByaXZhdGVMaW5rQ29uZmlndXJhdGlvbj86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlQcml2YXRlTGlua0NvbmZpZ3VyYXRpb25bXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgcHJvYmVzIGZvciBoZWFsdGggY2hlY2tzIG9mIHRoZSBiYWNrZW5kIEhUVFAgc2V0dGluZ3MuXG4gICAqL1xuICByZWFkb25seSBwcm9iZT86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlQcm9iZVtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBjb25maWd1cmF0aW9ucyBmb3IgcmVkaXJlY3QgcnVsZXMuXG4gICAqL1xuICByZWFkb25seSByZWRpcmVjdENvbmZpZ3VyYXRpb24/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5UmVkaXJlY3RDb25maWd1cmF0aW9uW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHJld3JpdGUgcnVsZSBzZXRzIGZvciBtb2RpZnlpbmcgSFRUUCByZXF1ZXN0IGFuZCByZXNwb25zZSBoZWFkZXJzIGFuZCBib2RpZXMuXG4gICAqL1xuICByZWFkb25seSByZXdyaXRlUnVsZVNldD86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlSZXdyaXRlUnVsZVNldFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBTU0wgY2VydGlmaWNhdGVzIGZvciBlbmFibGluZyBIVFRQUyBvbiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICovXG4gIHJlYWRvbmx5IHNzbENlcnRpZmljYXRlPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVNzbENlcnRpZmljYXRlW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIFNTTCBwb2xpY3kgY29uZmlndXJhdGlvbnMsIGRlZmluaW5nIHRoZSBwcm90b2NvbCBhbmQgY2lwaGVyIHN1aXRlcyB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3NsUG9saWN5PzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVNzbFBvbGljeTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgU1NMIHByb2ZpbGVzIGZvciBtYW5hZ2luZyBTU0wgdGVybWluYXRpb24gYW5kIHBvbGljeSBzZXR0aW5ncy5cbiAgICovXG4gIHJlYWRvbmx5IHNzbFByb2ZpbGU/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5U3NsUHJvZmlsZVtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCB0aW1lb3V0IHNldHRpbmdzIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheSByZXNvdXJjZXMuXG4gICAqL1xuICByZWFkb25seSB0aW1lb3V0cz86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlUaW1lb3V0cztcblxuICAvKipcbiAgICogT3B0aW9uYWwgdHJ1c3RlZCBjbGllbnQgY2VydGlmaWNhdGVzIGZvciBtdXR1YWwgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSB0cnVzdGVkQ2xpZW50Q2VydGlmaWNhdGU/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5VHJ1c3RlZENsaWVudENlcnRpZmljYXRlW107XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRydXN0ZWQgcm9vdCBjZXJ0aWZpY2F0ZXMgZm9yIGJhY2tlbmQgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSB0cnVzdGVkUm9vdENlcnRpZmljYXRlPzogYXphcGd3LkFwcGxpY2F0aW9uR2F0ZXdheVRydXN0ZWRSb290Q2VydGlmaWNhdGVbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgVVJMIHBhdGggbWFwIGZvciByb3V0aW5nIGJhc2VkIG9uIFVSTCBwYXRocy5cbiAgICovXG4gIHJlYWRvbmx5IHVybFBhdGhNYXA/OiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5VXJsUGF0aE1hcFtdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBXZWIgQXBwbGljYXRpb24gRmlyZXdhbGwgKFdBRikgY29uZmlndXJhdGlvbiB0byBwcm92aWRlIGVuaGFuY2VkIHNlY3VyaXR5LlxuICAgKi9cbiAgcmVhZG9ubHkgd2FmQ29uZmlndXJhdGlvbj86IGF6YXBndy5BcHBsaWNhdGlvbkdhdGV3YXlXYWZDb25maWd1cmF0aW9uO1xufVxuXG4vLyBEZWZpbmUgdGhlIGNsYXNzIGZvciBBenVyZSBBcHBsaWNhdGlvbiBHYXRld2F5XG5leHBvcnQgY2xhc3MgR2F0ZXdheSBleHRlbmRzIEF6dXJlUmVzb3VyY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IElHYXRld2F5UHJvcHM7XG4gIHB1YmxpYyByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBBenVyZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhpcyBjb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIGZvciBjb25maWd1cmluZyB0aGUgQXp1cmUgQXBwbGljYXRpb24gR2F0ZXdheS4gVGhlIHByb3BlcnRpZXMgaW5jbHVkZTpcbiAgICogICAgICAgICAgICAgICAgLSBgbmFtZWA6IFJlcXVpcmVkLiBVbmlxdWUgbmFtZSBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkgd2l0aGluIEF6dXJlLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFJlcXVpcmVkLiBBenVyZSBSZWdpb24gZm9yIGRlcGxveW1lbnQuXG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBPcHRpb25hbC4gUmVmZXJlbmNlIHRvIHRoZSByZXNvdXJjZSBncm91cCBmb3IgZGVwbG95bWVudC5cbiAgICogICAgICAgICAgICAgICAgLSBgc2t1VGllcmA6IFJlcXVpcmVkLiBTS1UgdGllciBvZiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheSAoZS5nLiwgU3RhbmRhcmQsIFdBRikuXG4gICAqICAgICAgICAgICAgICAgIC0gYHNrdVNpemVgOiBSZXF1aXJlZC4gU2l6ZSBvZiB0aGUgU0tVIGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICogICAgICAgICAgICAgICAgLSBgY2FwYWNpdHlgOiBSZXF1aXJlZC4gQ2FwYWNpdHkgKGluc3RhbmNlIGNvdW50KSBvZiB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICogICAgICAgICAgICAgICAgLSBgYmFja2VuZEFkZHJlc3NQb29sc2A6IFJlcXVpcmVkLiBCYWNrZW5kIGFkZHJlc3MgcG9vbHMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKiAgICAgICAgICAgICAgICAtIGBiYWNrZW5kSHR0cFNldHRpbmdzYDogUmVxdWlyZWQuIEJhY2tlbmQgSFRUUCBzZXR0aW5ncyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqICAgICAgICAgICAgICAgIC0gYGh0dHBMaXN0ZW5lcnNgOiBSZXF1aXJlZC4gSFRUUCBsaXN0ZW5lcnMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKiAgICAgICAgICAgICAgICAtIGByZXF1ZXN0Um91dGluZ1J1bGVzYDogUmVxdWlyZWQuIFJlcXVlc3Qgcm91dGluZyBydWxlcyBmb3IgdGhlIEFwcGxpY2F0aW9uIEdhdGV3YXkuXG4gICAqICAgICAgICAgICAgICAgIC0gYHB1YmxpY0lwQWRkcmVzc2A6IE9wdGlvbmFsLiBQdWJsaWMgSVAgYWRkcmVzcyBmb3IgdGhlIGZyb250ZW5kLlxuICAgKiAgICAgICAgICAgICAgICAtIGBwcml2YXRlSXBBZGRyZXNzYDogT3B0aW9uYWwuIFByaXZhdGUgSVAgYWRkcmVzcyBmb3IgdGhlIGZyb250ZW5kLlxuICAgKiAgICAgICAgICAgICAgICAtIGBwcml2YXRlSXBBZGRyZXNzQWxsb2NhdGlvbmA6IE9wdGlvbmFsLiBBbGxvY2F0aW9uIG1ldGhvZCBmb3IgdGhlIHByaXZhdGUgSVAgKFN0YXRpYywgRHluYW1pYykuXG4gICAqICAgICAgICAgICAgICAgIC0gYGZyb250ZW5kUG9ydHNgOiBPcHRpb25hbC4gRnJvbnRlbmQgcG9ydHMgZm9yIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5LlxuICAgKiAgICAgICAgICAgICAgICAtIGBzdWJuZXRgOiBPcHRpb25hbC4gU3VibmV0IGZvciB0aGUgQXBwbGljYXRpb24gR2F0ZXdheS5cbiAgICogICAgICAgICAgICAgICAgLSBgZW5hYmxlSHR0cDJgOiBPcHRpb25hbC4gRmxhZyB0byBlbmFibGUgSFRUUDIuXG4gICAqICAgICAgICAgICAgICAgIC0gYGZpcHNFbmFibGVkYDogT3B0aW9uYWwuIEZsYWcgdG8gZW5hYmxlIEZJUFMtY29tcGxpYW50IGFsZ29yaXRobXMuXG4gICAqICAgICAgICAgICAgICAgIC0gYGZpcmV3YWxsUG9saWN5SWRgOiBPcHRpb25hbC4gSUQgb2YgdGhlIGZpcmV3YWxsIHBvbGljeS5cbiAgICogICAgICAgICAgICAgICAgLSBgZm9yY2VGaXJld2FsbFBvbGljeUFzc29jaWF0aW9uYDogT3B0aW9uYWwuIEZsYWcgdG8gZW5mb3JjZSBhc3NvY2lhdGlvbiBvZiB0aGUgZmlyZXdhbGwgcG9saWN5LlxuICAgKiAgICAgICAgICAgICAgICAtIGB0YWdzYDogT3B0aW9uYWwuIFRhZ3MgZm9yIHJlc291cmNlIG1hbmFnZW1lbnQuXG4gICAqICAgICAgICAgICAgICAgIC0gQWRkaXRpb25hbCBvcHRpb25hbCBwcm9wZXJ0aWVzIGFzIGRlc2NyaWJlZCBpbiBgSUdhdGV3YXlQcm9wc2AgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIG5ldyBHYXRld2F5KHRoaXMsICdhcHBHYXRld2F5MScsIHtcbiAgICogICBuYW1lOiAnZ2F0ZXdheUVhc3QnLFxuICAgKiAgIHJlc291cmNlR3JvdXA6IHJlc291cmNlR3JvdXAsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIHNrdVRpZXI6IFwiU3RhbmRhcmRfdjJcIixcbiAgICAgIHNrdVNpemU6IFwiU3RhbmRhcmRfdjJcIixcbiAgICAgIGNhcGFjaXR5OiAyLFxuICAgICAgcHVibGljSXBBZGRyZXNzOiBwdWJsaWNJcCxcbiAgICAgIHN1Ym5ldDogc3VibmV0LFxuICAgICAgYmFja2VuZEFkZHJlc3NQb29sczogW1xuICAgICAgICB7IG5hbWU6IFwiYmFja2VuZC1hZGRyZXNzLXBvb2wtMVwiIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImJhY2tlbmQtYWRkcmVzcy1wb29sLTJcIixcbiAgICAgICAgICBpcEFkZHJlc3NlczogW1wiMTAuMS4wLjRcIiwgXCIxMC4xLjAuNVwiLCBcIjEwLjEuMC42XCJdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGh0dHBMaXN0ZW5lcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaHR0cC1saXN0ZW5lclwiLFxuICAgICAgICAgIGZyb250ZW5kUG9ydE5hbWU6IFwiODBcIixcbiAgICAgICAgICBmcm9udGVuZElwQ29uZmlndXJhdGlvbk5hbWU6IFwiUHVibGljLWZyb250ZW5kLWlwLWNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICBwcm90b2NvbDogXCJIdHRwXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYmFja2VuZEh0dHBTZXR0aW5nczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJiYWNrZW5kLWh0dHAtc2V0dGluZ1wiLFxuICAgICAgICAgIHBvcnQ6IDgwLFxuICAgICAgICAgIHByb3RvY29sOiBcIkh0dHBcIixcbiAgICAgICAgICByZXF1ZXN0VGltZW91dDogMjAsXG4gICAgICAgICAgY29va2llQmFzZWRBZmZpbml0eTogXCJEaXNhYmxlZFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHJlcXVlc3RSb3V0aW5nUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwicmVxdWVzdC1yb3V0aW5nLXJ1bGUtMVwiLFxuICAgICAgICAgIGh0dHBMaXN0ZW5lck5hbWU6IFwiaHR0cC1saXN0ZW5lclwiLFxuICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgIGJhY2tlbmRBZGRyZXNzUG9vbE5hbWU6IFwiYmFja2VuZC1hZGRyZXNzLXBvb2wtMVwiLFxuICAgICAgICAgIGJhY2tlbmRIdHRwU2V0dGluZ3NOYW1lOiBcImJhY2tlbmQtaHR0cC1zZXR0aW5nXCIsXG4gICAgICAgICAgcnVsZVR5cGU6IFwiQmFzaWNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElHYXRld2F5UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMucmVzb3VyY2VHcm91cCA9IHRoaXMuc2V0dXBSZXNvdXJjZUdyb3VwKHByb3BzKTtcblxuICAgIC8vIERlZmluZSB0aGUgaWRlbnRpdHlcbiAgICBsZXQgaWRlbnRpdHk7XG5cbiAgICAvLyBDaGVjayBpZiBBenVyZSBLZXkgVmF1bHQgaXMgdXNlZCBhbmQgbm8gaWRlbnRpdHkgaXMgcHJvdmlkZWRcbiAgICBpZiAocHJvcHMua2V5VmF1bHQgJiYgIXByb3BzLmlkZW50aXR5KSB7XG4gICAgICAvLyBDcmVhdGUgYSBtYW5hZ2VkIGlkZW50aXR5IGFuZCBhZGQgaXQgdG8gaWRlbnRpdHlJZHNcbiAgICAgIGNvbnN0IG1hbmFnZWRJZGVudGl0eSA9IG5ldyBVc2VyQXNzaWduZWRJZGVudGl0eShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJNYW5hZ2VkSWRlbnRpdHlcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGBtaS0ke3Byb3BzLm5hbWV9YCxcbiAgICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTogdGhpcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgaWRlbnRpdHkgPSB7XG4gICAgICAgIGlkZW50aXR5SWRzOiBbbWFuYWdlZElkZW50aXR5LmlkXSxcbiAgICAgICAgdHlwZTogXCJVc2VyQXNzaWduZWRcIixcbiAgICAgIH07XG5cbiAgICAgIG5ldyBLZXlWYXVsdEFjY2Vzc1BvbGljeUEodGhpcywgXCJwb2xpY3lcIiwge1xuICAgICAgICBrZXlWYXVsdElkOiBwcm9wcy5rZXlWYXVsdC5pZCxcbiAgICAgICAgdGVuYW50SWQ6IHByb3BzLnRlbmFudElkIHx8IFwiXCIsXG4gICAgICAgIG9iamVjdElkOiBtYW5hZ2VkSWRlbnRpdHkucHJpbmNpcGFsSWQsXG4gICAgICAgIHNlY3JldFBlcm1pc3Npb25zOiBbXCJHZXRcIiwgXCJMaXN0XCJdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBzdWJuZXRJZDpcbiAgICAgICAgcHJvcHMuc3VibmV0Py5pZCB8fFxuICAgICAgICBuZXcgdm5ldC5OZXR3b3JrKHRoaXMsIFwidm5ldFwiLCB7XG4gICAgICAgICAgcmVzb3VyY2VHcm91cDogdGhpcy5yZXNvdXJjZUdyb3VwLFxuICAgICAgICB9KS5zdWJuZXRzLmRlZmF1bHQuaWQsXG4gICAgICBpZGVudGl0eTogcHJvcHMuaWRlbnRpdHkgfHwgaWRlbnRpdHksXG4gICAgfTtcblxuICAgIC8vIFdBRiBjb25maWd1cmF0aW9uXG4gICAgbGV0IHdhZkNvbmZpZ3VyYXRpb24gPSBwcm9wcy53YWZDb25maWd1cmF0aW9uXG4gICAgICA/IHtcbiAgICAgICAgICBlbmFibGVkOiBwcm9wcy53YWZDb25maWd1cmF0aW9uLmVuYWJsZWQsXG4gICAgICAgICAgZmlyZXdhbGxNb2RlOiBwcm9wcy53YWZDb25maWd1cmF0aW9uLmZpcmV3YWxsTW9kZSB8fCBcIkRldGVjdGlvblwiLFxuICAgICAgICAgIHJ1bGVTZXRWZXJzaW9uOiBwcm9wcy53YWZDb25maWd1cmF0aW9uLnJ1bGVTZXRWZXJzaW9uIHx8IFwiMy4wXCIsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gRHluYW1pY2FsbHkgY3JlYXRlIGZyb250ZW5kIElQIGNvbmZpZ3VyYXRpb25zXG4gICAgbGV0IGZyb250ZW5kSXBDb25maWdzOiBhemFwZ3cuQXBwbGljYXRpb25HYXRld2F5RnJvbnRlbmRJcENvbmZpZ3VyYXRpb25bXSA9XG4gICAgICBbXTtcblxuICAgIC8vIFB1YmxpYyBJUCBjb25maWd1cmF0aW9uXG4gICAgaWYgKHByb3BzLnB1YmxpY0lwQWRkcmVzcykge1xuICAgICAgZnJvbnRlbmRJcENvbmZpZ3MucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiUHVibGljLWZyb250ZW5kLWlwLWNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgcHVibGljSXBBZGRyZXNzSWQ6IHByb3BzLnB1YmxpY0lwQWRkcmVzcy5pZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFByaXZhdGUgSVAgY29uZmlndXJhdGlvblxuICAgIGlmIChwcm9wcy5wcml2YXRlSXBBZGRyZXNzIHx8IHByb3BzLnByaXZhdGVJcEFkZHJlc3NBbGxvY2F0aW9uKSB7XG4gICAgICBmcm9udGVuZElwQ29uZmlncy5wdXNoKHtcbiAgICAgICAgbmFtZTogXCJQcml2YXRlLWZyb250ZW5kLWlwLWNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgc3VibmV0SWQ6IGRlZmF1bHRzLnN1Ym5ldElkLFxuICAgICAgICBwcml2YXRlSXBBZGRyZXNzOiBwcm9wcy5wcml2YXRlSXBBZGRyZXNzLFxuICAgICAgICBwcml2YXRlSXBBZGRyZXNzQWxsb2NhdGlvbjogcHJvcHMucHJpdmF0ZUlwQWRkcmVzc0FsbG9jYXRpb24sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBJZiBubyBmcm9udGVuZCBwb3J0cyBhcmUgcHJvdmlkZWQsIHVzZSBkZWZhdWx0IGR1bW15IGZyb250ZW5kIGlwIGNvbmZpZ3VyYXRpb25cbiAgICBpZiAoZnJvbnRlbmRJcENvbmZpZ3MubGVuZ3RoID09IDApIHtcbiAgICAgIGZyb250ZW5kSXBDb25maWdzLnB1c2goe1xuICAgICAgICBuYW1lOiBcIkR1bW15LWZyb250ZW5kLWlwLWNvbmZpZ3VyYXRpb25cIixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IGZyb250ZW5kIHBvcnRzIGlmIG5vdCBwcm92aWRlZFxuICAgIGNvbnN0IGRlZmF1bHRGcm9udGVuZFBvcnRzID0gW1xuICAgICAgeyBuYW1lOiBcIjgwXCIsIHBvcnQ6IDgwIH0sXG4gICAgICB7IG5hbWU6IFwiNDQzXCIsIHBvcnQ6IDQ0MyB9LFxuICAgIF07XG5cbiAgICBjb25zdCBmcm9udGVuZFBvcnRzID1cbiAgICAgIHByb3BzLmZyb250ZW5kUG9ydHMgJiYgcHJvcHMuZnJvbnRlbmRQb3J0cy5sZW5ndGggPiAwXG4gICAgICAgID8gcHJvcHMuZnJvbnRlbmRQb3J0c1xuICAgICAgICA6IGRlZmF1bHRGcm9udGVuZFBvcnRzO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBBcHBsaWNhdGlvbiBHYXRld2F5XG4gICAgY29uc3QgYXBndyA9IG5ldyBBcHBsaWNhdGlvbkdhdGV3YXkodGhpcywgXCJBcHBsaWNhdGlvbkdhdGV3YXlcIiwge1xuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiB0aGlzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIGxvY2F0aW9uOiBwcm9wcy5sb2NhdGlvbixcbiAgICAgIHNzbENlcnRpZmljYXRlOiBwcm9wcy5zc2xDZXJ0aWZpY2F0ZSxcbiAgICAgIHNzbFBvbGljeTogcHJvcHMuc3NsUG9saWN5LFxuICAgICAgc3NsUHJvZmlsZTogcHJvcHMuc3NsUHJvZmlsZSxcbiAgICAgIGF1dGhlbnRpY2F0aW9uQ2VydGlmaWNhdGU6IHByb3BzLmF1dGhlbnRpY2F0aW9uQ2VydGlmaWNhdGUsXG4gICAgICBhdXRvc2NhbGVDb25maWd1cmF0aW9uOiBwcm9wcy5hdXRvc2NhbGVDb25maWd1cmF0aW9uLFxuICAgICAgY3VzdG9tRXJyb3JDb25maWd1cmF0aW9uOiBwcm9wcy5jdXN0b21FcnJvckNvbmZpZ3VyYXRpb24sXG4gICAgICByZWRpcmVjdENvbmZpZ3VyYXRpb246IHByb3BzLnJlZGlyZWN0Q29uZmlndXJhdGlvbixcbiAgICAgIHJld3JpdGVSdWxlU2V0OiBwcm9wcy5yZXdyaXRlUnVsZVNldCxcbiAgICAgIHByaXZhdGVMaW5rQ29uZmlndXJhdGlvbjogcHJvcHMucHJpdmF0ZUxpbmtDb25maWd1cmF0aW9uLFxuICAgICAgd2FmQ29uZmlndXJhdGlvbjogd2FmQ29uZmlndXJhdGlvbixcbiAgICAgIHNrdToge1xuICAgICAgICBuYW1lOiBwcm9wcy5za3VTaXplLFxuICAgICAgICB0aWVyOiBwcm9wcy5za3VUaWVyLFxuICAgICAgICBjYXBhY2l0eTogcHJvcHMuY2FwYWNpdHksXG4gICAgICB9LFxuICAgICAgZ2F0ZXdheUlwQ29uZmlndXJhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgc3VibmV0SWQ6IGRlZmF1bHRzLnN1Ym5ldElkLFxuICAgICAgICAgIG5hbWU6IGAke3Byb3BzLm5hbWV9LWNvbmZpZ3VyYXRpb25gLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZyb250ZW5kUG9ydDogZnJvbnRlbmRQb3J0cyxcbiAgICAgIGZyb250ZW5kSXBDb25maWd1cmF0aW9uOiBmcm9udGVuZElwQ29uZmlncyxcbiAgICAgIGJhY2tlbmRBZGRyZXNzUG9vbDogcHJvcHMuYmFja2VuZEFkZHJlc3NQb29scyxcbiAgICAgIGJhY2tlbmRIdHRwU2V0dGluZ3M6IHByb3BzLmJhY2tlbmRIdHRwU2V0dGluZ3MsXG4gICAgICBodHRwTGlzdGVuZXI6IHByb3BzLmh0dHBMaXN0ZW5lcnMsXG4gICAgICB1cmxQYXRoTWFwOiBwcm9wcy51cmxQYXRoTWFwLFxuICAgICAgdHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZTogcHJvcHMudHJ1c3RlZFJvb3RDZXJ0aWZpY2F0ZSxcbiAgICAgIHJlcXVlc3RSb3V0aW5nUnVsZTogcHJvcHMucmVxdWVzdFJvdXRpbmdSdWxlcyxcbiAgICAgIHByb2JlOiBwcm9wcy5wcm9iZSxcbiAgICAgIGlkZW50aXR5OiBkZWZhdWx0cy5pZGVudGl0eSxcbiAgICAgIHpvbmVzOiBwcm9wcy56b25lcyxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgfSk7XG5cbiAgICB0aGlzLmlkID0gYXBndy5pZDtcbiAgfVxufVxuIl19