@microsoft/terraform-cdk-constructs 1.9.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +38110 -28389
- package/API.md +40683 -30877
- package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
- package/lib/azure-actiongroup/lib/action-group.js +5 -5
- package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
- package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
- package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
- package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
- package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
- package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
- package/lib/azure-aks/lib/aks-cluster.js +8 -8
- package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
- package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
- package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
- package/lib/azure-containerapps/index.d.ts +1 -0
- package/lib/azure-containerapps/index.js +18 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
- package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
- package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
- package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
- package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
- package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
- package/lib/azure-containerapps/lib/container-app.js +320 -0
- package/lib/azure-containerapps/lib/index.d.ts +4 -0
- package/lib/azure-containerapps/lib/index.js +21 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
- package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app.integ.js +119 -0
- package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app.spec.js +839 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
- package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
- package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
- package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
- package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
- package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
- package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
- package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
- package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
- package/lib/azure-dnszone/lib/dns-zone.js +8 -8
- package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
- package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
- package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
- package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
- package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
- package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +3 -3
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +1 -1
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +6 -6
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +6 -6
- package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
- package/lib/azure-metricalert/lib/metric-alert.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
- package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
- package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
- package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
- package/lib/azure-networkinterface/lib/network-interface.js +7 -7
- package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
- package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
- package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
- package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
- package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +1 -1
- package/lib/azure-networkwatcher/lib/network-watcher.js +3 -3
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +1 -1
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +6 -6
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +6 -6
- package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
- package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
- package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
- package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
- package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
- package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
- package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
- package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +1 -1
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +3 -3
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +1 -1
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +6 -6
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +6 -6
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
- package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
- package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
- package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
- package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
- package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
- package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
- package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
- package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
- package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
- package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
- package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
- package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
- package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
- package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
- package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
- package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
- package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
- package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
- package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
- package/lib/azure-roledefinition/lib/role-definition.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
- package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
- package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
- package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
- package/lib/azure-storageaccount/lib/storage-account.js +8 -8
- package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
- package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
- package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
- package/lib/azure-subnet/lib/subnet.d.ts +3 -3
- package/lib/azure-subnet/lib/subnet.js +5 -5
- package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
- package/lib/azure-subnet/test/subnet.integ.js +5 -5
- package/lib/azure-subnet/test/subnet.spec.js +9 -9
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
- package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
- package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
- package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
- package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
- package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
- package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
- package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
- package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +5 -5
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +7 -7
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +13 -13
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
- package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
- package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
- package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +6 -6
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +8 -8
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +12 -12
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
- package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
- package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
- package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +3 -0
- package/lib/index.js +5 -2
- package/lib/testing/index.d.ts +1 -1
- package/lib/testing/index.js +8 -8
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +1 -1
- package/package.json +10 -22
- package/setup.js +2 -2
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
* - Tags management
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
const
|
|
18
|
-
const
|
|
17
|
+
const cdktn_1 = require("cdktn");
|
|
18
|
+
const cdktn = require("cdktn");
|
|
19
19
|
const public_ip_address_1 = require("../lib/public-ip-address");
|
|
20
20
|
describe("PublicIPAddress", () => {
|
|
21
21
|
let app;
|
|
22
22
|
let stack;
|
|
23
23
|
beforeEach(() => {
|
|
24
|
-
app =
|
|
25
|
-
stack = new
|
|
24
|
+
app = cdktn_1.Testing.app();
|
|
25
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
26
26
|
});
|
|
27
27
|
describe("Resource Type", () => {
|
|
28
28
|
it("should have correct resource type", () => {
|
|
@@ -409,10 +409,10 @@ describe("PublicIPAddress", () => {
|
|
|
409
409
|
publicIPAllocationMethod: "Static",
|
|
410
410
|
});
|
|
411
411
|
expect(publicIp.id).toBeDefined();
|
|
412
|
-
expect(publicIp.idOutput).toBeInstanceOf(
|
|
413
|
-
expect(publicIp.nameOutput).toBeInstanceOf(
|
|
414
|
-
expect(publicIp.locationOutput).toBeInstanceOf(
|
|
415
|
-
expect(publicIp.tagsOutput).toBeInstanceOf(
|
|
412
|
+
expect(publicIp.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
413
|
+
expect(publicIp.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
414
|
+
expect(publicIp.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
415
|
+
expect(publicIp.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
416
416
|
});
|
|
417
417
|
it("should have correct id format", () => {
|
|
418
418
|
const publicIp = new public_ip_address_1.PublicIPAddress(stack, "test-public-ip", {
|
|
@@ -465,7 +465,7 @@ describe("PublicIPAddress", () => {
|
|
|
465
465
|
publicIPAllocationMethod: "Static",
|
|
466
466
|
tags: { test: "synthesis" },
|
|
467
467
|
});
|
|
468
|
-
const synthesized =
|
|
468
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
469
469
|
expect(synthesized).toBeDefined();
|
|
470
470
|
const stackConfig = JSON.parse(synthesized);
|
|
471
471
|
expect(stackConfig.resource).toBeDefined();
|
|
@@ -490,9 +490,9 @@ describe("PublicIPAddress", () => {
|
|
|
490
490
|
});
|
|
491
491
|
expect(pip1.resolvedApiVersion).toBe("2024-10-01");
|
|
492
492
|
expect(pip2.resolvedApiVersion).toBe("2024-07-01");
|
|
493
|
-
const synthesized =
|
|
493
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
494
494
|
expect(synthesized).toBeDefined();
|
|
495
495
|
});
|
|
496
496
|
});
|
|
497
497
|
});
|
|
498
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWlwLWFkZHJlc3Muc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1wdWJsaWNpcGFkZHJlc3MvdGVzdC9wdWJsaWMtaXAtYWRkcmVzcy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQUVILGlDQUFnQztBQUNoQywrQkFBK0I7QUFDL0IsZ0VBR2tDO0FBRWxDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsSUFBSSxHQUFjLENBQUM7SUFDbkIsSUFBSSxLQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7UUFDN0IsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtZQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLG1DQUFlLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO2dCQUM1RCxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLEdBQUcsRUFBRTtvQkFDSCxJQUFJLEVBQUUsVUFBVTtpQkFDakI7Z0JBQ0Qsd0JBQXdCLEVBQUUsUUFBUTthQUNuQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLG1DQUFlLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1lBQy9D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O0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pdCB0ZXN0cyBmb3IgQXp1cmUgUHVibGljIElQIEFkZHJlc3MgY29uc3RydWN0XG4gKlxuICogVGVzdHMgY292ZXI6XG4gKiAtIFJlc291cmNlIHR5cGUgdmFsaWRhdGlvblxuICogLSBBUEkgdmVyc2lvbiBzdXBwb3J0ICgyMDI0LTA3LTAxLCAyMDI0LTEwLTAxKVxuICogLSBCYXNpYyBjcmVhdGlvbiBzY2VuYXJpb3NcbiAqIC0gU0tVIGNvbmZpZ3VyYXRpb25zIChTdGFuZGFyZCwgQmFzaWMpXG4gKiAtIEFsbG9jYXRpb24gbWV0aG9kcyAoU3RhdGljLCBEeW5hbWljKVxuICogLSBETlMgc2V0dGluZ3NcbiAqIC0gQXZhaWxhYmlsaXR5IHpvbmVzXG4gKiAtIElQdjQvSVB2NiBzdXBwb3J0XG4gKiAtIFRhZ3MgbWFuYWdlbWVudFxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHtcbiAgUHVibGljSVBBZGRyZXNzLFxuICBQdWJsaWNJUEFkZHJlc3NQcm9wcyxcbn0gZnJvbSBcIi4uL2xpYi9wdWJsaWMtaXAtYWRkcmVzc1wiO1xuXG5kZXNjcmliZShcIlB1YmxpY0lQQWRkcmVzc1wiLCAoKSA9PiB7XG4gIGxldCBhcHA6IGNka3RmLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGt0Zi5UZXJyYWZvcm1TdGFjaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RmLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUmVzb3VyY2UgVHlwZVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgaGF2ZSBjb3JyZWN0IHJlc291cmNlIHR5cGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkFQSSBWZXJzaW9uIFN1cHBvcnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgQVBJIHZlcnNpb24gMjAyNC0wNy0wMVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDctMDFcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IEFQSSB2ZXJzaW9uIDIwMjQtMTAtMDFcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTEwLTAxXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBBUEkgdmVyc2lvbiAyMDI0LTEwLTAxIChkZWZhdWx0KVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0xMC0wMVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJCYXNpYyBDcmVhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgYmFzaWMgU3RhbmRhcmQgU3RhdGljIFB1YmxpYyBJUFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIlJlZ2lvbmFsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcCkudG9CZUluc3RhbmNlT2YoUHVibGljSVBBZGRyZXNzKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiU3RhbmRhcmRcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py50aWVyKS50b0JlKFwiUmVnaW9uYWxcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBbGxvY2F0aW9uTWV0aG9kKS50b0JlKFwiU3RhdGljXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgYmFzaWMgQmFzaWMgRHluYW1pYyBQdWJsaWMgSVBcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIkJhc2ljXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiQmFzaWNcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBbGxvY2F0aW9uTWV0aG9kKS50b0JlKFwiRHluYW1pY1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IER5bmFtaWMgYWxsb2NhdGlvbiBtZXRob2Qgd2hlbiBub3Qgc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlNLVSBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgU3RhbmRhcmQgU0tVIHdpdGggUmVnaW9uYWwgdGllclwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIlJlZ2lvbmFsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/Lm5hbWUpLnRvQmUoXCJTdGFuZGFyZFwiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/LnRpZXIpLnRvQmUoXCJSZWdpb25hbFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBTdGFuZGFyZCBTS1Ugd2l0aCBHbG9iYWwgdGllclwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIkdsb2JhbFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiU3RhbmRhcmRcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py50aWVyKS50b0JlKFwiR2xvYmFsXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY29uZmlndXJlIEJhc2ljIFNLVVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiQmFzaWNcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/Lm5hbWUpLnRvQmUoXCJCYXNpY1wiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJETlMgU2V0dGluZ3NcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBETlMgbGFiZWxcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkb21haW5OYW1lTGFiZWw6IFwibXlhcHBcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5kbnNTZXR0aW5ncz8uZG9tYWluTmFtZUxhYmVsKS50b0JlKFwibXlhcHBcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgRE5TIGxhYmVsIGFuZCByZXZlcnNlIEZRRE5cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkb21haW5OYW1lTGFiZWw6IFwibXlhcHBcIixcbiAgICAgICAgICByZXZlcnNlRnFkbjogXCJteWFwcC5leGFtcGxlLmNvbVwiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLmRuc1NldHRpbmdzPy5kb21haW5OYW1lTGFiZWwpLnRvQmUoXCJteWFwcFwiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5kbnNTZXR0aW5ncz8ucmV2ZXJzZUZxZG4pLnRvQmUoXCJteWFwcC5leGFtcGxlLmNvbVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJBdmFpbGFiaWxpdHkgWm9uZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSB6b25lLXJlZHVuZGFudCBQdWJsaWMgSVAgKGFsbCB6b25lcylcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgem9uZXM6IFtcIjFcIiwgXCIyXCIsIFwiM1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy56b25lcykudG9FcXVhbChbXCIxXCIsIFwiMlwiLCBcIjNcIl0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY29uZmlndXJlIHpvbmFsIFB1YmxpYyBJUCAoc2luZ2xlIHpvbmUpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBQdWJsaWNJUEFkZHJlc3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgIHpvbmVzOiBbXCIxXCJdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnpvbmVzKS50b0VxdWFsKFtcIjFcIl0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIFZlcnNpb24gU3VwcG9ydFwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBJUHY0IChkZWZhdWx0KVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocHVibGljSXApLnRvQmVJbnN0YW5jZU9mKFB1YmxpY0lQQWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IElQdjZcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgcHVibGljSVBBZGRyZXNzVmVyc2lvbjogXCJJUHY2XCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBZGRyZXNzVmVyc2lvbikudG9CZShcIklQdjZcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSWRsZSBUaW1lb3V0XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgaWRsZSB0aW1lb3V0IGluIG1pbnV0ZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgaWRsZVRpbWVvdXRJbk1pbnV0ZXM6IDEwLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLmlkbGVUaW1lb3V0SW5NaW51dGVzKS50b0JlKDEwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWdzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBhZGQgdGFncyB0byBQdWJsaWMgSVBcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIEVudmlyb25tZW50OiBcIlByb2R1Y3Rpb25cIixcbiAgICAgICAgICBEZXBhcnRtZW50OiBcIklUXCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMudGFncz8uRW52aXJvbm1lbnQpLnRvQmUoXCJQcm9kdWN0aW9uXCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnRhZ3M/LkRlcGFydG1lbnQpLnRvQmUoXCJJVFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC50YWdzKS50b0VxdWFsKHt9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgYWRkaW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgcHVibGljSXAuYWRkVGFnKFwibmV3VGFnXCIsIFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMudGFncyEuZW52aXJvbm1lbnQpLnRvQmUoXCJ0ZXN0XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCByZW1vdmluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICAgIHRlbXBvcmFyeTogXCJ0cnVlXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgcHVibGljSXAucmVtb3ZlVGFnKFwidGVtcG9yYXJ5XCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnRhZ3MhLnRlbXBvcmFyeSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb21tb24gU2NlbmFyaW9zXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgUHVibGljIElQIGZvciBMb2FkIEJhbGFuY2VyIChTdGFuZGFyZCBTdGF0aWMpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBQdWJsaWNJUEFkZHJlc3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJsYi1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIlJlZ2lvbmFsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgem9uZXM6IFtcIjFcIiwgXCIyXCIsIFwiM1wiXSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIFB1cnBvc2U6IFwiTG9hZEJhbGFuY2VyXCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwibGItcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnNrdT8ubmFtZSkudG9CZShcIlN0YW5kYXJkXCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZCkudG9CZShcIlN0YXRpY1wiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy56b25lcykudG9FcXVhbChbXCIxXCIsIFwiMlwiLCBcIjNcIl0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFB1YmxpYyBJUCBmb3IgVk0gKEJhc2ljIER5bmFtaWMpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBQdWJsaWNJUEFkZHJlc3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ2bS1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiQmFzaWNcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIFB1cnBvc2U6IFwiVmlydHVhbE1hY2hpbmVcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ2bS1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiQmFzaWNcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBbGxvY2F0aW9uTWV0aG9kKS50b0JlKFwiRHluYW1pY1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBQdWJsaWMgSVAgZm9yIE5BVCBHYXRld2F5IChTdGFuZGFyZCBTdGF0aWMgd2l0aCB6b25lcylcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcIm5hdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICB6b25lczogW1wiMVwiXSxcbiAgICAgICAgaWRsZVRpbWVvdXRJbk1pbnV0ZXM6IDMwLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgUHVycG9zZTogXCJOQVRHYXRld2F5XCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwibmF0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/Lm5hbWUpLnRvQmUoXCJTdGFuZGFyZFwiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5wdWJsaWNJUEFsbG9jYXRpb25NZXRob2QpLnRvQmUoXCJTdGF0aWNcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuem9uZXMpLnRvRXF1YWwoW1wiMVwiXSk7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuaWRsZVRpbWVvdXRJbk1pbnV0ZXMpLnRvQmUoMzApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFB1YmxpYyBJUCB3aXRoIEROUyBmb3IgQXBwbGljYXRpb24gR2F0ZXdheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiYWd3LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICAgIHRpZXI6IFwiUmVnaW9uYWxcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICBkbnNTZXR0aW5nczoge1xuICAgICAgICAgIGRvbWFpbk5hbWVMYWJlbDogXCJteWFwcFwiLFxuICAgICAgICB9LFxuICAgICAgICB6b25lczogW1wiMVwiLCBcIjJcIiwgXCIzXCJdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgUHVycG9zZTogXCJBcHBsaWNhdGlvbkdhdGV3YXlcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJhZ3ctcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnNrdT8ubmFtZSkudG9CZShcIlN0YW5kYXJkXCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZCkudG9CZShcIlN0YXRpY1wiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5kbnNTZXR0aW5ncz8uZG9tYWluTmFtZUxhYmVsKS50b0JlKFwibXlhcHBcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuem9uZXMpLnRvRXF1YWwoW1wiMVwiLCBcIjJcIiwgXCIzXCJdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJPdXRwdXQgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgZXhwb3NlIGlkLCBuYW1lLCBsb2NhdGlvbiBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5pZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLmxvY2F0aW9uT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgaWQgZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgICBleHBlY3QocHVibGljSXAucmVzb3VyY2VJZCkudG9CZShwdWJsaWNJcC5pZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSWdub3JlIENoYW5nZXMgQ29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgYXBwbHkgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwiZG5zU2V0dGluZ3NcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvRXF1YWwoW1widGFnc1wiLCBcImRuc1NldHRpbmdzXCJdKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSBpZ25vcmUgY2hhbmdlcyBhcnJheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW10sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICB0YWdzOiB7IHRlc3Q6IFwic3ludGhlc2lzXCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIFB1YmxpYyBJUHMgaW4gdGhlIHNhbWUgc3RhY2tcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcGlwMSA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwiUElQMVwiLCB7XG4gICAgICAgIG5hbWU6IFwicGlwLTFcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHBpcDIgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcIlBJUDJcIiwge1xuICAgICAgICBuYW1lOiBcInBpcC0yXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDctMDFcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJCYXNpY1wiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwaXAxLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMTAtMDFcIik7XG4gICAgICBleHBlY3QocGlwMi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA3LTAxXCIpO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
498
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWlwLWFkZHJlc3Muc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1wdWJsaWNpcGFkZHJlc3MvdGVzdC9wdWJsaWMtaXAtYWRkcmVzcy5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQUVILGlDQUFnQztBQUNoQywrQkFBK0I7QUFDL0IsZ0VBR2tDO0FBRWxDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsSUFBSSxHQUFjLENBQUM7SUFDbkIsSUFBSSxLQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7UUFDN0IsRUFBRSxDQUFDLG1DQUFtQyxFQUFFLEdBQUcsRUFBRTtZQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLG1DQUFlLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO2dCQUM1RCxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLEdBQUcsRUFBRTtvQkFDSCxJQUFJLEVBQUUsVUFBVTtpQkFDakI7Z0JBQ0Qsd0JBQXdCLEVBQUUsUUFBUTthQUNuQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLG1DQUFlLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtRQUNuQyxFQUFFLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxFQUFFO1lBQy9D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O0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pdCB0ZXN0cyBmb3IgQXp1cmUgUHVibGljIElQIEFkZHJlc3MgY29uc3RydWN0XG4gKlxuICogVGVzdHMgY292ZXI6XG4gKiAtIFJlc291cmNlIHR5cGUgdmFsaWRhdGlvblxuICogLSBBUEkgdmVyc2lvbiBzdXBwb3J0ICgyMDI0LTA3LTAxLCAyMDI0LTEwLTAxKVxuICogLSBCYXNpYyBjcmVhdGlvbiBzY2VuYXJpb3NcbiAqIC0gU0tVIGNvbmZpZ3VyYXRpb25zIChTdGFuZGFyZCwgQmFzaWMpXG4gKiAtIEFsbG9jYXRpb24gbWV0aG9kcyAoU3RhdGljLCBEeW5hbWljKVxuICogLSBETlMgc2V0dGluZ3NcbiAqIC0gQXZhaWxhYmlsaXR5IHpvbmVzXG4gKiAtIElQdjQvSVB2NiBzdXBwb3J0XG4gKiAtIFRhZ3MgbWFuYWdlbWVudFxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCAqIGFzIGNka3RuIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHtcbiAgUHVibGljSVBBZGRyZXNzLFxuICBQdWJsaWNJUEFkZHJlc3NQcm9wcyxcbn0gZnJvbSBcIi4uL2xpYi9wdWJsaWMtaXAtYWRkcmVzc1wiO1xuXG5kZXNjcmliZShcIlB1YmxpY0lQQWRkcmVzc1wiLCAoKSA9PiB7XG4gIGxldCBhcHA6IGNka3RuLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGt0bi5UZXJyYWZvcm1TdGFjaztcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RuLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUmVzb3VyY2UgVHlwZVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgaGF2ZSBjb3JyZWN0IHJlc291cmNlIHR5cGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkFQSSBWZXJzaW9uIFN1cHBvcnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgQVBJIHZlcnNpb24gMjAyNC0wNy0wMVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDctMDFcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IEFQSSB2ZXJzaW9uIDIwMjQtMTAtMDFcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTEwLTAxXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBBUEkgdmVyc2lvbiAyMDI0LTEwLTAxIChkZWZhdWx0KVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0xMC0wMVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJCYXNpYyBDcmVhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgYmFzaWMgU3RhbmRhcmQgU3RhdGljIFB1YmxpYyBJUFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIlJlZ2lvbmFsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcCkudG9CZUluc3RhbmNlT2YoUHVibGljSVBBZGRyZXNzKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiU3RhbmRhcmRcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py50aWVyKS50b0JlKFwiUmVnaW9uYWxcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBbGxvY2F0aW9uTWV0aG9kKS50b0JlKFwiU3RhdGljXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgYmFzaWMgQmFzaWMgRHluYW1pYyBQdWJsaWMgSVBcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIkJhc2ljXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJEeW5hbWljXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiQmFzaWNcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBbGxvY2F0aW9uTWV0aG9kKS50b0JlKFwiRHluYW1pY1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IER5bmFtaWMgYWxsb2NhdGlvbiBtZXRob2Qgd2hlbiBub3Qgc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlNLVSBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgU3RhbmRhcmQgU0tVIHdpdGggUmVnaW9uYWwgdGllclwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIlJlZ2lvbmFsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/Lm5hbWUpLnRvQmUoXCJTdGFuZGFyZFwiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/LnRpZXIpLnRvQmUoXCJSZWdpb25hbFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBTdGFuZGFyZCBTS1Ugd2l0aCBHbG9iYWwgdGllclwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIkdsb2JhbFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiU3RhbmRhcmRcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py50aWVyKS50b0JlKFwiR2xvYmFsXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY29uZmlndXJlIEJhc2ljIFNLVVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiQmFzaWNcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/Lm5hbWUpLnRvQmUoXCJCYXNpY1wiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJETlMgU2V0dGluZ3NcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBETlMgbGFiZWxcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkb21haW5OYW1lTGFiZWw6IFwibXlhcHBcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5kbnNTZXR0aW5ncz8uZG9tYWluTmFtZUxhYmVsKS50b0JlKFwibXlhcHBcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgRE5TIGxhYmVsIGFuZCByZXZlcnNlIEZRRE5cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgZG5zU2V0dGluZ3M6IHtcbiAgICAgICAgICBkb21haW5OYW1lTGFiZWw6IFwibXlhcHBcIixcbiAgICAgICAgICByZXZlcnNlRnFkbjogXCJteWFwcC5leGFtcGxlLmNvbVwiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLmRuc1NldHRpbmdzPy5kb21haW5OYW1lTGFiZWwpLnRvQmUoXCJteWFwcFwiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5kbnNTZXR0aW5ncz8ucmV2ZXJzZUZxZG4pLnRvQmUoXCJteWFwcC5leGFtcGxlLmNvbVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJBdmFpbGFiaWxpdHkgWm9uZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSB6b25lLXJlZHVuZGFudCBQdWJsaWMgSVAgKGFsbCB6b25lcylcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgem9uZXM6IFtcIjFcIiwgXCIyXCIsIFwiM1wiXSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy56b25lcykudG9FcXVhbChbXCIxXCIsIFwiMlwiLCBcIjNcIl0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY29uZmlndXJlIHpvbmFsIFB1YmxpYyBJUCAoc2luZ2xlIHpvbmUpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBQdWJsaWNJUEFkZHJlc3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgIHpvbmVzOiBbXCIxXCJdLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnpvbmVzKS50b0VxdWFsKFtcIjFcIl0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIklQIFZlcnNpb24gU3VwcG9ydFwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBJUHY0IChkZWZhdWx0KVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocHVibGljSXApLnRvQmVJbnN0YW5jZU9mKFB1YmxpY0lQQWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IElQdjZcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgcHVibGljSVBBZGRyZXNzVmVyc2lvbjogXCJJUHY2XCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBZGRyZXNzVmVyc2lvbikudG9CZShcIklQdjZcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSWRsZSBUaW1lb3V0XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgaWRsZSB0aW1lb3V0IGluIG1pbnV0ZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgaWRsZVRpbWVvdXRJbk1pbnV0ZXM6IDEwLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLmlkbGVUaW1lb3V0SW5NaW51dGVzKS50b0JlKDEwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWdzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBhZGQgdGFncyB0byBQdWJsaWMgSVBcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIEVudmlyb25tZW50OiBcIlByb2R1Y3Rpb25cIixcbiAgICAgICAgICBEZXBhcnRtZW50OiBcIklUXCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMudGFncz8uRW52aXJvbm1lbnQpLnRvQmUoXCJQcm9kdWN0aW9uXCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnRhZ3M/LkRlcGFydG1lbnQpLnRvQmUoXCJJVFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC50YWdzKS50b0VxdWFsKHt9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgYWRkaW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcInRlc3QtcHVibGljLWlwXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiU3RhdGljXCIsXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgcHVibGljSXAuYWRkVGFnKFwibmV3VGFnXCIsIFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMudGFncyEuZW52aXJvbm1lbnQpLnRvQmUoXCJ0ZXN0XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCByZW1vdmluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICAgIHRlbXBvcmFyeTogXCJ0cnVlXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgcHVibGljSXAucmVtb3ZlVGFnKFwidGVtcG9yYXJ5XCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnRhZ3MhLnRlbXBvcmFyeSkudG9CZVVuZGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb21tb24gU2NlbmFyaW9zXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgUHVibGljIElQIGZvciBMb2FkIEJhbGFuY2VyIChTdGFuZGFyZCBTdGF0aWMpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBQdWJsaWNJUEFkZHJlc3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJsYi1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgICB0aWVyOiBcIlJlZ2lvbmFsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgem9uZXM6IFtcIjFcIiwgXCIyXCIsIFwiM1wiXSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIFB1cnBvc2U6IFwiTG9hZEJhbGFuY2VyXCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwibGItcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnNrdT8ubmFtZSkudG9CZShcIlN0YW5kYXJkXCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZCkudG9CZShcIlN0YXRpY1wiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy56b25lcykudG9FcXVhbChbXCIxXCIsIFwiMlwiLCBcIjNcIl0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFB1YmxpYyBJUCBmb3IgVk0gKEJhc2ljIER5bmFtaWMpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBQdWJsaWNJUEFkZHJlc3NQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ2bS1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiQmFzaWNcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIkR5bmFtaWNcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIFB1cnBvc2U6IFwiVmlydHVhbE1hY2hpbmVcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ2bS1wdWJsaWMtaXBcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiQmFzaWNcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMucHVibGljSVBBbGxvY2F0aW9uTWV0aG9kKS50b0JlKFwiRHluYW1pY1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBQdWJsaWMgSVAgZm9yIE5BVCBHYXRld2F5IChTdGFuZGFyZCBTdGF0aWMgd2l0aCB6b25lcylcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IFB1YmxpY0lQQWRkcmVzc1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcIm5hdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICB6b25lczogW1wiMVwiXSxcbiAgICAgICAgaWRsZVRpbWVvdXRJbk1pbnV0ZXM6IDMwLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgUHVycG9zZTogXCJOQVRHYXRld2F5XCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwibmF0LXB1YmxpYy1pcFwiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5za3U/Lm5hbWUpLnRvQmUoXCJTdGFuZGFyZFwiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5wdWJsaWNJUEFsbG9jYXRpb25NZXRob2QpLnRvQmUoXCJTdGF0aWNcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuem9uZXMpLnRvRXF1YWwoW1wiMVwiXSk7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuaWRsZVRpbWVvdXRJbk1pbnV0ZXMpLnRvQmUoMzApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFB1YmxpYyBJUCB3aXRoIEROUyBmb3IgQXBwbGljYXRpb24gR2F0ZXdheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogUHVibGljSVBBZGRyZXNzUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiYWd3LXBpcFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJTdGFuZGFyZFwiLFxuICAgICAgICAgIHRpZXI6IFwiUmVnaW9uYWxcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICBkbnNTZXR0aW5nczoge1xuICAgICAgICAgIGRvbWFpbk5hbWVMYWJlbDogXCJteWFwcFwiLFxuICAgICAgICB9LFxuICAgICAgICB6b25lczogW1wiMVwiLCBcIjJcIiwgXCIzXCJdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgUHVycG9zZTogXCJBcHBsaWNhdGlvbkdhdGV3YXlcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJhZ3ctcHVibGljLWlwXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnNrdT8ubmFtZSkudG9CZShcIlN0YW5kYXJkXCIpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLnB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZCkudG9CZShcIlN0YXRpY1wiKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5wcm9wcy5kbnNTZXR0aW5ncz8uZG9tYWluTmFtZUxhYmVsKS50b0JlKFwibXlhcHBcIik7XG4gICAgICBleHBlY3QocHVibGljSXAucHJvcHMuem9uZXMpLnRvRXF1YWwoW1wiMVwiLCBcIjJcIiwgXCIzXCJdKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJPdXRwdXQgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgZXhwb3NlIGlkLCBuYW1lLCBsb2NhdGlvbiBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5pZCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5pZE91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChwdWJsaWNJcC5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLmxvY2F0aW9uT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnRhZ3NPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgaWQgZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwdWJsaWNJcC5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgICBleHBlY3QocHVibGljSXAucmVzb3VyY2VJZCkudG9CZShwdWJsaWNJcC5pZCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSWdub3JlIENoYW5nZXMgQ29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgYXBwbHkgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHB1YmxpY0lwID0gbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCIsIFwiZG5zU2V0dGluZ3NcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgICAgZXhwZWN0KHB1YmxpY0lwLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvRXF1YWwoW1widGFnc1wiLCBcImRuc1NldHRpbmdzXCJdKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBlbXB0eSBpZ25vcmUgY2hhbmdlcyBhcnJheVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwdWJsaWNJcCA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwidGVzdC1wdWJsaWMtaXBcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcGlwXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBza3U6IHtcbiAgICAgICAgICBuYW1lOiBcIlN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHB1YmxpY0lQQWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW10sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHB1YmxpY0lwKS50b0JlSW5zdGFuY2VPZihQdWJsaWNJUEFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFB1YmxpY0lQQWRkcmVzcyhzdGFjaywgXCJ0ZXN0LXB1YmxpYy1pcFwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1waXBcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgICB0YWdzOiB7IHRlc3Q6IFwic3ludGhlc2lzXCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIFB1YmxpYyBJUHMgaW4gdGhlIHNhbWUgc3RhY2tcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcGlwMSA9IG5ldyBQdWJsaWNJUEFkZHJlc3Moc3RhY2ssIFwiUElQMVwiLCB7XG4gICAgICAgIG5hbWU6IFwicGlwLTFcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHNrdToge1xuICAgICAgICAgIG5hbWU6IFwiU3RhbmRhcmRcIixcbiAgICAgICAgfSxcbiAgICAgICAgcHVibGljSVBBbGxvY2F0aW9uTWV0aG9kOiBcIlN0YXRpY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHBpcDIgPSBuZXcgUHVibGljSVBBZGRyZXNzKHN0YWNrLCBcIlBJUDJcIiwge1xuICAgICAgICBuYW1lOiBcInBpcC0yXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDctMDFcIixcbiAgICAgICAgc2t1OiB7XG4gICAgICAgICAgbmFtZTogXCJCYXNpY1wiLFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWNJUEFsbG9jYXRpb25NZXRob2Q6IFwiRHluYW1pY1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChwaXAxLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMTAtMDFcIik7XG4gICAgICBleHBlY3QocGlwMi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA3LTAxXCIpO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* - Full backward compatibility with existing Resource Group interface
|
|
18
18
|
* - JSII compliance for multi-language support
|
|
19
19
|
*/
|
|
20
|
-
import * as
|
|
20
|
+
import * as cdktn from "cdktn";
|
|
21
21
|
import { Construct } from "constructs";
|
|
22
22
|
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
23
23
|
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
@@ -100,10 +100,10 @@ export declare class ResourceGroup extends AzapiResource {
|
|
|
100
100
|
* The input properties for this Resource Group instance
|
|
101
101
|
*/
|
|
102
102
|
readonly props: ResourceGroupProps;
|
|
103
|
-
readonly idOutput:
|
|
104
|
-
readonly locationOutput:
|
|
105
|
-
readonly nameOutput:
|
|
106
|
-
readonly tagsOutput:
|
|
103
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
104
|
+
readonly locationOutput: cdktn.TerraformOutput;
|
|
105
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
106
|
+
readonly tagsOutput: cdktn.TerraformOutput;
|
|
107
107
|
/**
|
|
108
108
|
* Creates a new Azure Resource Group using the VersionedAzapiResource framework
|
|
109
109
|
*
|
|
@@ -22,7 +22,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
22
22
|
* - Full backward compatibility with existing Resource Group interface
|
|
23
23
|
* - JSII compliance for multi-language support
|
|
24
24
|
*/
|
|
25
|
-
const
|
|
25
|
+
const cdktn = require("cdktn");
|
|
26
26
|
const resource_group_schemas_1 = require("./resource-group-schemas");
|
|
27
27
|
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
28
28
|
const data_azapi_client_config_1 = require("../../core-azure/lib/azapi/providers-azapi/data-azapi-client-config");
|
|
@@ -76,19 +76,19 @@ class ResourceGroup extends azapi_resource_1.AzapiResource {
|
|
|
76
76
|
super(scope, id, props);
|
|
77
77
|
this.props = props;
|
|
78
78
|
// Create Terraform outputs for easy access and referencing from other resources
|
|
79
|
-
this.idOutput = new
|
|
79
|
+
this.idOutput = new cdktn.TerraformOutput(this, "id", {
|
|
80
80
|
value: this.id,
|
|
81
81
|
description: "The ID of the Resource Group",
|
|
82
82
|
});
|
|
83
|
-
this.locationOutput = new
|
|
83
|
+
this.locationOutput = new cdktn.TerraformOutput(this, "location", {
|
|
84
84
|
value: `\${${this.terraformResource.fqn}.location}`,
|
|
85
85
|
description: "The location of the Resource Group",
|
|
86
86
|
});
|
|
87
|
-
this.nameOutput = new
|
|
87
|
+
this.nameOutput = new cdktn.TerraformOutput(this, "name", {
|
|
88
88
|
value: `\${${this.terraformResource.fqn}.name}`,
|
|
89
89
|
description: "The name of the Resource Group",
|
|
90
90
|
});
|
|
91
|
-
this.tagsOutput = new
|
|
91
|
+
this.tagsOutput = new cdktn.TerraformOutput(this, "tags", {
|
|
92
92
|
value: `\${${this.terraformResource.fqn}.tags}`,
|
|
93
93
|
description: "The tags assigned to the Resource Group",
|
|
94
94
|
});
|
|
@@ -194,7 +194,7 @@ class ResourceGroup extends azapi_resource_1.AzapiResource {
|
|
|
194
194
|
}
|
|
195
195
|
exports.ResourceGroup = ResourceGroup;
|
|
196
196
|
_a = JSII_RTTI_SYMBOL_1;
|
|
197
|
-
ResourceGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ResourceGroup", version: "
|
|
197
|
+
ResourceGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ResourceGroup", version: "2.2.0" };
|
|
198
198
|
// Static initializer runs once when the class is first loaded
|
|
199
199
|
(() => {
|
|
200
200
|
azapi_resource_1.AzapiResource.registerSchemas(resource_group_schemas_1.RESOURCE_GROUP_TYPE, resource_group_schemas_1.ALL_RESOURCE_GROUP_VERSIONS);
|
|
@@ -207,4 +207,4 @@ ResourceGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ResourceGroup",
|
|
|
207
207
|
* @deprecated Use ResourceGroup instead
|
|
208
208
|
*/
|
|
209
209
|
exports.Group = ResourceGroup;
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcmVzb3VyY2Vncm91cC9saWIvcmVzb3VyY2UtZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsK0JBQStCO0FBRS9CLHFFQUdrQztBQUNsQyw4RUFHbUQ7QUFDbkQsa0hBQTRHO0FBOEM1Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsOEJBQWE7SUFvQjlDOzs7Ozs7Ozs7O09BVUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSw4QkFBOEI7U0FDNUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxZQUFZO1lBQ25ELFdBQVcsRUFBRSxvQ0FBb0M7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxRQUFRO1lBQy9DLFdBQVcsRUFB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QUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FDbkMsQ0FBQztZQUVGLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtvQkFDOUM7d0JBQ0UsY0FBYyxFQUFFLGtCQUFrQjtxQkFDbkM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOztBQTVLSCxzQ0E2S0M7OztBQTVLQyw4REFBOEQ7QUFDOUQ7SUFDRSw4QkFBYSxDQUFDLGVBQWUsQ0FDM0IsNENBQW1CLEVBQ25CLG9EQUEyQixDQUM1QixDQUFDO0FBQ0osQ0FBQyxHQUFBLENBQUE7QUF3S0gsZ0ZBQWdGO0FBQ2hGLGlDQUFpQztBQUNqQyxnRkFBZ0Y7QUFFaEY7OztHQUdHO0FBQ1UsUUFBQSxLQUFLLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFJlc291cmNlIEdyb3VwIGltcGxlbWVudGF0aW9uIHVzaW5nIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyByZXBsYWNlcyBhbGwgdmVyc2lvbi1zcGVjaWZpYyBSZXNvdXJjZSBHcm91cCBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIHNpbmdsZVxuICogdW5pZmllZCBjbGFzcyB0aGF0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIG1hbmFnZW1lbnQsIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmRcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDI0LTExLTAxIChBY3RpdmUpXG4gKiAtIDIwMjUtMDEtMDEgKEFjdGl2ZSlcbiAqIC0gMjAyNS0wMy0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gRnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgUmVzb3VyY2UgR3JvdXAgaW50ZXJmYWNlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9SRVNPVVJDRV9HUk9VUF9WRVJTSU9OUyxcbiAgUkVTT1VSQ0VfR1JPVVBfVFlQRSxcbn0gZnJvbSBcIi4vcmVzb3VyY2UtZ3JvdXAtc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IERhdGFBemFwaUNsaWVudENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvZGF0YS1hemFwaS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgUmVzb3VyY2UgR3JvdXBcbiAqXG4gKiBFeHRlbmRzIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIFJlc291cmNlIEdyb3VwIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqIHdoaWxlIG1haW50YWluaW5nIGZ1bGwgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvcmlnaW5hbCBHcm91cFByb3BzIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUdyb3VwUHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogTWFuYWdlZCBieSBpbmZvcm1hdGlvbiBmb3IgdGhlIHJlc291cmNlIGdyb3VwLlxuICAgKiBJbmRpY2F0ZXMgd2hhdCBzZXJ2aWNlIG9yIHRvb2wgaXMgbWFuYWdpbmcgdGhpcyByZXNvdXJjZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmFnZWRCeT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlcy5cbiAgICogVXNlZnVsIGZvciBwcm9wZXJ0aWVzIHRoYXQgYXJlIGV4dGVybmFsbHkgbWFuYWdlZCBvciBzaG91bGQgbm90IHRyaWdnZXIgdXBkYXRlcy5cbiAgICpcbiAgICogQGV4YW1wbGUgW1widGFnc1wiLCBcIm1hbmFnZWRCeVwiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgUmVzb3VyY2UgR3JvdXAgQVBJIGNhbGxzXG4gKiBUaGlzIG1hdGNoZXMgdGhlIEF6dXJlIFJFU1QgQVBJIHNjaGVtYSBmb3IgcmVzb3VyY2UgZ3JvdXBzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VHcm91cEJvZHkge1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSByZXNvdXJjZSBncm91cC4gQ2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXIgY3JlYXRpb24uXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFncyBhdHRhY2hlZCB0byB0aGUgcmVzb3VyY2UgZ3JvdXAuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByZXNvdXJjZSB0aGF0IG1hbmFnZXMgdGhpcyByZXNvdXJjZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmFnZWRCeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFJlc291cmNlIEdyb3VwIGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHNpbmdsZSwgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHJlcGxhY2VzIGFsbFxuICogdmVyc2lvbi1zcGVjaWZpYyBSZXNvdXJjZSBHcm91cCBjbGFzc2VzLiBJdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZ1xuICogZnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICpcbiAqIFRoZSBjbGFzcyB1c2VzIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29yayB0byBwcm92aWRlOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiAoMjAyNS0wMy0wMSBhcyBvZiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICogLSBTdXBwb3J0IGZvciBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgd2hlbiBzdGFiaWxpdHkgaXMgcmVxdWlyZWRcbiAqIC0gU2NoZW1hLWRyaXZlbiBwcm9wZXJ0eSB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBNaWdyYXRpb24gYW5hbHlzaXMgYW5kIGRlcHJlY2F0aW9uIHdhcm5pbmdzXG4gKiAtIEZ1bGwgSlNJSSBjb21wbGlhbmNlIGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbjpcbiAqIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcInJnXCIsIHtcbiAqICAgbmFtZTogXCJteS1yZXNvdXJjZS1ncm91cFwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIgfVxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFVzYWdlIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nOlxuICogY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICogICBuYW1lOiBcIm15LXJlc291cmNlLWdyb3VwXCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjQtMTEtMDFcIiwgLy8gUGluIHRvIHNwZWNpZmljIHZlcnNpb25cbiAqICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIgfVxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlR3JvdXAgZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgLy8gU3RhdGljIGluaXRpYWxpemVyIHJ1bnMgb25jZSB3aGVuIHRoZSBjbGFzcyBpcyBmaXJzdCBsb2FkZWRcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIFJFU09VUkNFX0dST1VQX1RZUEUsXG4gICAgICBBTExfUkVTT1VSQ0VfR1JPVVBfVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBSZXNvdXJjZSBHcm91cCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBSZXNvdXJjZUdyb3VwUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgUmVzb3VyY2UgR3JvdXAgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uIEl0IG1haW50YWlucyBmdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICogd2l0aCBleGlzdGluZyBSZXNvdXJjZSBHcm91cCBpbXBsZW1lbnRhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFJlc291cmNlIEdyb3VwXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzb3VyY2VHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZyBmcm9tIG90aGVyIHJlc291cmNlc1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIFJlc291cmNlIEdyb3VwXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIFJlc291cmNlIEdyb3VwXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgUmVzb3VyY2UgR3JvdXBcIixcbiAgICB9KTtcblxuICAgIHRoaXMudGFnc091dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ0YWdzXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LnRhZ3N9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0YWdzIGFzc2lnbmVkIHRvIHRoZSBSZXNvdXJjZSBHcm91cFwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHMgdG8gbWF0Y2ggb3JpZ2luYWwgbmFtaW5nIGNvbnZlbnRpb25cbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImxvY2F0aW9uXCIpO1xuICAgIHRoaXMubmFtZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcIm5hbWVcIik7XG4gICAgdGhpcy50YWdzT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwidGFnc1wiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBtb3N0IHJlY2VudCBzdGFibGUgdmVyc2lvbiBhcyB0aGUgZGVmYXVsdFxuICAgKi9cbiAgcHJvdGVjdGVkIGRlZmF1bHRWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiMjAyNS0wMy0wMVwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEF6dXJlIHJlc291cmNlIHR5cGUgZm9yIFJlc291cmNlIEdyb3Vwc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBSRVNPVVJDRV9HUk9VUF9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IGxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBSZXNvdXJjZSBHcm91cHNcbiAgICovXG4gIHByb3RlY3RlZCByZXF1aXJlc0xvY2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHJlc291cmNlIGJvZHkgZm9yIHRoZSBBenVyZSBBUEkgY2FsbFxuICAgKiBUcmFuc2Zvcm1zIHRoZSBpbnB1dCBwcm9wZXJ0aWVzIGludG8gdGhlIEpTT04gZm9ybWF0IGV4cGVjdGVkIGJ5IEF6dXJlIFJFU1QgQVBJXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBSZXNvdXJjZUdyb3VwUHJvcHM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb24sXG4gICAgICB0YWdzOiB0aGlzLmFsbFRhZ3MoKSxcbiAgICAgIG1hbmFnZWRCeTogdHlwZWRQcm9wcy5tYW5hZ2VkQnksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgcGFyZW50IElEIGZvciBSZXNvdXJjZSBHcm91cHNcbiAgICogUmVzb3VyY2UgR3JvdXBzIGFyZSB0b3AtbGV2ZWwgcmVzb3VyY2VzIHdpdGggc3Vic2NyaXB0aW9uIGFzIHBhcmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVQYXJlbnRJZChfcHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0gbmV3IERhdGFBemFwaUNsaWVudENvbmZpZyh0aGlzLCBcImNsaWVudF9jb25maWdcIiwge30pO1xuICAgIHJldHVybiBgL3N1YnNjcmlwdGlvbnMvXFwkeyR7Y2xpZW50Q29uZmlnLmZxbn0uc3Vic2NyaXB0aW9uX2lkfWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgUkVTT1VSQ0UgR1JPVVAgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN1YnNjcmlwdGlvbiBJRCBmcm9tIHRoZSBSZXNvdXJjZSBHcm91cCBJRFxuICAgKiBFeHRyYWN0cyB0aGUgc3Vic2NyaXB0aW9uIElEIGZyb20gdGhlIEF6dXJlIHJlc291cmNlIElEIGZvcm1hdFxuICAgKi9cbiAgcHVibGljIGdldCBzdWJzY3JpcHRpb25JZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlkUGFydHMgPSB0aGlzLmlkLnNwbGl0KFwiL1wiKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25JbmRleCA9IGlkUGFydHMuaW5kZXhPZihcInN1YnNjcmlwdGlvbnNcIik7XG4gICAgaWYgKHN1YnNjcmlwdGlvbkluZGV4ICE9PSAtMSAmJiBzdWJzY3JpcHRpb25JbmRleCArIDEgPCBpZFBhcnRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGlkUGFydHNbc3Vic2NyaXB0aW9uSW5kZXggKyAxXTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGV4dHJhY3Qgc3Vic2NyaXB0aW9uIElEIGZyb20gUmVzb3VyY2UgR3JvdXAgSURcIik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHJlc291cmNlIGlkZW50aWZpZXIgZm9yIHVzZSBpbiBvdGhlciBBenVyZSByZXNvdXJjZXNcbiAgICogQWxpYXMgZm9yIHRoZSBpZCBwcm9wZXJ0eSB0byBtYXRjaCBvcmlnaW5hbCBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBGaWx0ZXIgb3V0IHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IHZhbGlkIGZvciBBWkFQSSByZXNvdXJjZSBpZ25vcmVfY2hhbmdlc1xuICAgICAgLy8gbWFuYWdlZEJ5IHNob3VsZCBiZSBpbiB0aGUgcmVzb3VyY2UgYm9keSwgbm90IGluIGlnbm9yZV9jaGFuZ2VzXG4gICAgICBjb25zdCB2YWxpZElnbm9yZUNoYW5nZXMgPSB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMuZmlsdGVyKFxuICAgICAgICAoY2hhbmdlKSA9PiBjaGFuZ2UgIT09IFwibWFuYWdlZEJ5XCIsXG4gICAgICApO1xuXG4gICAgICBpZiAodmFsaWRJZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWdub3JlX2NoYW5nZXM6IHZhbGlkSWdub3JlQ2hhbmdlcyxcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJBQ0tXQVJEIENPTVBBVElCSUxJVFkgRVhQT1JUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBbGlhcyBmb3IgUmVzb3VyY2VHcm91cCB0byBtYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gKiBAZGVwcmVjYXRlZCBVc2UgUmVzb3VyY2VHcm91cCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBHcm91cCA9IFJlc291cmNlR3JvdXA7XG5cbi8qKlxuICogVHlwZSBhbGlhcyBmb3IgUmVzb3VyY2VHcm91cFByb3BzIHRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIEBkZXByZWNhdGVkIFVzZSBSZXNvdXJjZUdyb3VwUHJvcHMgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBHcm91cFByb3BzID0gUmVzb3VyY2VHcm91cFByb3BzO1xuXG4vKipcbiAqIFR5cGUgYWxpYXMgZm9yIFJlc291cmNlR3JvdXBCb2R5IHRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIEBkZXByZWNhdGVkIFVzZSBSZXNvdXJjZUdyb3VwQm9keSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIEdyb3VwQm9keSA9IFJlc291cmNlR3JvdXBCb2R5O1xuIl19
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcmVzb3VyY2Vncm91cC9saWIvcmVzb3VyY2UtZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsK0JBQStCO0FBRS9CLHFFQUdrQztBQUNsQyw4RUFHbUQ7QUFDbkQsa0hBQTRHO0FBOEM1Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsOEJBQWE7SUFvQjlDOzs7Ozs7Ozs7O09BVUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSw4QkFBOEI7U0FDNUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxZQUFZO1lBQ25ELFdBQVcsRUFBRSxvQ0FBb0M7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxRQUFRO1lBQy9DLFdBQVcsRUFB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QUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FDbkMsQ0FBQztZQUVGLElBQUksa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtvQkFDOUM7d0JBQ0UsY0FBYyxFQUFFLGtCQUFrQjtxQkFDbkM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOztBQTVLSCxzQ0E2S0M7OztBQTVLQyw4REFBOEQ7QUFDOUQ7SUFDRSw4QkFBYSxDQUFDLGVBQWUsQ0FDM0IsNENBQW1CLEVBQ25CLG9EQUEyQixDQUM1QixDQUFDO0FBQ0osQ0FBQyxHQUFBLENBQUE7QUF3S0gsZ0ZBQWdGO0FBQ2hGLGlDQUFpQztBQUNqQyxnRkFBZ0Y7QUFFaEY7OztHQUdHO0FBQ1UsUUFBQSxLQUFLLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFJlc291cmNlIEdyb3VwIGltcGxlbWVudGF0aW9uIHVzaW5nIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyByZXBsYWNlcyBhbGwgdmVyc2lvbi1zcGVjaWZpYyBSZXNvdXJjZSBHcm91cCBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIHNpbmdsZVxuICogdW5pZmllZCBjbGFzcyB0aGF0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIG1hbmFnZW1lbnQsIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmRcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDI0LTExLTAxIChBY3RpdmUpXG4gKiAtIDIwMjUtMDEtMDEgKEFjdGl2ZSlcbiAqIC0gMjAyNS0wMy0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gRnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgUmVzb3VyY2UgR3JvdXAgaW50ZXJmYWNlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RuIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9SRVNPVVJDRV9HUk9VUF9WRVJTSU9OUyxcbiAgUkVTT1VSQ0VfR1JPVVBfVFlQRSxcbn0gZnJvbSBcIi4vcmVzb3VyY2UtZ3JvdXAtc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IERhdGFBemFwaUNsaWVudENvbmZpZyB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvZGF0YS1hemFwaS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgUmVzb3VyY2UgR3JvdXBcbiAqXG4gKiBFeHRlbmRzIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIFJlc291cmNlIEdyb3VwIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqIHdoaWxlIG1haW50YWluaW5nIGZ1bGwgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBvcmlnaW5hbCBHcm91cFByb3BzIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUdyb3VwUHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogTWFuYWdlZCBieSBpbmZvcm1hdGlvbiBmb3IgdGhlIHJlc291cmNlIGdyb3VwLlxuICAgKiBJbmRpY2F0ZXMgd2hhdCBzZXJ2aWNlIG9yIHRvb2wgaXMgbWFuYWdpbmcgdGhpcyByZXNvdXJjZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmFnZWRCeT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlcy5cbiAgICogVXNlZnVsIGZvciBwcm9wZXJ0aWVzIHRoYXQgYXJlIGV4dGVybmFsbHkgbWFuYWdlZCBvciBzaG91bGQgbm90IHRyaWdnZXIgdXBkYXRlcy5cbiAgICpcbiAgICogQGV4YW1wbGUgW1widGFnc1wiLCBcIm1hbmFnZWRCeVwiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgUmVzb3VyY2UgR3JvdXAgQVBJIGNhbGxzXG4gKiBUaGlzIG1hdGNoZXMgdGhlIEF6dXJlIFJFU1QgQVBJIHNjaGVtYSBmb3IgcmVzb3VyY2UgZ3JvdXBzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VHcm91cEJvZHkge1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSByZXNvdXJjZSBncm91cC4gQ2Fubm90IGJlIGNoYW5nZWQgYWZ0ZXIgY3JlYXRpb24uXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFncyBhdHRhY2hlZCB0byB0aGUgcmVzb3VyY2UgZ3JvdXAuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSByZXNvdXJjZSB0aGF0IG1hbmFnZXMgdGhpcyByZXNvdXJjZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG1hbmFnZWRCeT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFJlc291cmNlIEdyb3VwIGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHNpbmdsZSwgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHJlcGxhY2VzIGFsbFxuICogdmVyc2lvbi1zcGVjaWZpYyBSZXNvdXJjZSBHcm91cCBjbGFzc2VzLiBJdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZ1xuICogZnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICpcbiAqIFRoZSBjbGFzcyB1c2VzIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29yayB0byBwcm92aWRlOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiAoMjAyNS0wMy0wMSBhcyBvZiB0aGlzIGltcGxlbWVudGF0aW9uKVxuICogLSBTdXBwb3J0IGZvciBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgd2hlbiBzdGFiaWxpdHkgaXMgcmVxdWlyZWRcbiAqIC0gU2NoZW1hLWRyaXZlbiBwcm9wZXJ0eSB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBNaWdyYXRpb24gYW5hbHlzaXMgYW5kIGRlcHJlY2F0aW9uIHdhcm5pbmdzXG4gKiAtIEZ1bGwgSlNJSSBjb21wbGlhbmNlIGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbjpcbiAqIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcInJnXCIsIHtcbiAqICAgbmFtZTogXCJteS1yZXNvdXJjZS1ncm91cFwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIgfVxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFVzYWdlIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nOlxuICogY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICogICBuYW1lOiBcIm15LXJlc291cmNlLWdyb3VwXCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjQtMTEtMDFcIiwgLy8gUGluIHRvIHNwZWNpZmljIHZlcnNpb25cbiAqICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIgfVxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlR3JvdXAgZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgLy8gU3RhdGljIGluaXRpYWxpemVyIHJ1bnMgb25jZSB3aGVuIHRoZSBjbGFzcyBpcyBmaXJzdCBsb2FkZWRcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIFJFU09VUkNFX0dST1VQX1RZUEUsXG4gICAgICBBTExfUkVTT1VSQ0VfR1JPVVBfVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBSZXNvdXJjZSBHcm91cCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBSZXNvdXJjZUdyb3VwUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgUmVzb3VyY2UgR3JvdXAgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uIEl0IG1haW50YWlucyBmdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICogd2l0aCBleGlzdGluZyBSZXNvdXJjZSBHcm91cCBpbXBsZW1lbnRhdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFJlc291cmNlIEdyb3VwXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmVzb3VyY2VHcm91cFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZyBmcm9tIG90aGVyIHJlc291cmNlc1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIFJlc291cmNlIEdyb3VwXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIFJlc291cmNlIEdyb3VwXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdG4uVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgUmVzb3VyY2UgR3JvdXBcIixcbiAgICB9KTtcblxuICAgIHRoaXMudGFnc091dHB1dCA9IG5ldyBjZGt0bi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ0YWdzXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LnRhZ3N9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0YWdzIGFzc2lnbmVkIHRvIHRoZSBSZXNvdXJjZSBHcm91cFwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHMgdG8gbWF0Y2ggb3JpZ2luYWwgbmFtaW5nIGNvbnZlbnRpb25cbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImxvY2F0aW9uXCIpO1xuICAgIHRoaXMubmFtZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcIm5hbWVcIik7XG4gICAgdGhpcy50YWdzT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwidGFnc1wiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBtb3N0IHJlY2VudCBzdGFibGUgdmVyc2lvbiBhcyB0aGUgZGVmYXVsdFxuICAgKi9cbiAgcHJvdGVjdGVkIGRlZmF1bHRWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiMjAyNS0wMy0wMVwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEF6dXJlIHJlc291cmNlIHR5cGUgZm9yIFJlc291cmNlIEdyb3Vwc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBSRVNPVVJDRV9HUk9VUF9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IGxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBSZXNvdXJjZSBHcm91cHNcbiAgICovXG4gIHByb3RlY3RlZCByZXF1aXJlc0xvY2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHJlc291cmNlIGJvZHkgZm9yIHRoZSBBenVyZSBBUEkgY2FsbFxuICAgKiBUcmFuc2Zvcm1zIHRoZSBpbnB1dCBwcm9wZXJ0aWVzIGludG8gdGhlIEpTT04gZm9ybWF0IGV4cGVjdGVkIGJ5IEF6dXJlIFJFU1QgQVBJXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBSZXNvdXJjZUdyb3VwUHJvcHM7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb24sXG4gICAgICB0YWdzOiB0aGlzLmFsbFRhZ3MoKSxcbiAgICAgIG1hbmFnZWRCeTogdHlwZWRQcm9wcy5tYW5hZ2VkQnksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgcGFyZW50IElEIGZvciBSZXNvdXJjZSBHcm91cHNcbiAgICogUmVzb3VyY2UgR3JvdXBzIGFyZSB0b3AtbGV2ZWwgcmVzb3VyY2VzIHdpdGggc3Vic2NyaXB0aW9uIGFzIHBhcmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVQYXJlbnRJZChfcHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0gbmV3IERhdGFBemFwaUNsaWVudENvbmZpZyh0aGlzLCBcImNsaWVudF9jb25maWdcIiwge30pO1xuICAgIHJldHVybiBgL3N1YnNjcmlwdGlvbnMvXFwkeyR7Y2xpZW50Q29uZmlnLmZxbn0uc3Vic2NyaXB0aW9uX2lkfWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgUkVTT1VSQ0UgR1JPVVAgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN1YnNjcmlwdGlvbiBJRCBmcm9tIHRoZSBSZXNvdXJjZSBHcm91cCBJRFxuICAgKiBFeHRyYWN0cyB0aGUgc3Vic2NyaXB0aW9uIElEIGZyb20gdGhlIEF6dXJlIHJlc291cmNlIElEIGZvcm1hdFxuICAgKi9cbiAgcHVibGljIGdldCBzdWJzY3JpcHRpb25JZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlkUGFydHMgPSB0aGlzLmlkLnNwbGl0KFwiL1wiKTtcbiAgICBjb25zdCBzdWJzY3JpcHRpb25JbmRleCA9IGlkUGFydHMuaW5kZXhPZihcInN1YnNjcmlwdGlvbnNcIik7XG4gICAgaWYgKHN1YnNjcmlwdGlvbkluZGV4ICE9PSAtMSAmJiBzdWJzY3JpcHRpb25JbmRleCArIDEgPCBpZFBhcnRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGlkUGFydHNbc3Vic2NyaXB0aW9uSW5kZXggKyAxXTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGV4dHJhY3Qgc3Vic2NyaXB0aW9uIElEIGZyb20gUmVzb3VyY2UgR3JvdXAgSURcIik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHJlc291cmNlIGlkZW50aWZpZXIgZm9yIHVzZSBpbiBvdGhlciBBenVyZSByZXNvdXJjZXNcbiAgICogQWxpYXMgZm9yIHRoZSBpZCBwcm9wZXJ0eSB0byBtYXRjaCBvcmlnaW5hbCBpbnRlcmZhY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBGaWx0ZXIgb3V0IHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IHZhbGlkIGZvciBBWkFQSSByZXNvdXJjZSBpZ25vcmVfY2hhbmdlc1xuICAgICAgLy8gbWFuYWdlZEJ5IHNob3VsZCBiZSBpbiB0aGUgcmVzb3VyY2UgYm9keSwgbm90IGluIGlnbm9yZV9jaGFuZ2VzXG4gICAgICBjb25zdCB2YWxpZElnbm9yZUNoYW5nZXMgPSB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMuZmlsdGVyKFxuICAgICAgICAoY2hhbmdlKSA9PiBjaGFuZ2UgIT09IFwibWFuYWdlZEJ5XCIsXG4gICAgICApO1xuXG4gICAgICBpZiAodmFsaWRJZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWdub3JlX2NoYW5nZXM6IHZhbGlkSWdub3JlQ2hhbmdlcyxcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEJBQ0tXQVJEIENPTVBBVElCSUxJVFkgRVhQT1JUU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBbGlhcyBmb3IgUmVzb3VyY2VHcm91cCB0byBtYWludGFpbiBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gKiBAZGVwcmVjYXRlZCBVc2UgUmVzb3VyY2VHcm91cCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjb25zdCBHcm91cCA9IFJlc291cmNlR3JvdXA7XG5cbi8qKlxuICogVHlwZSBhbGlhcyBmb3IgUmVzb3VyY2VHcm91cFByb3BzIHRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIEBkZXByZWNhdGVkIFVzZSBSZXNvdXJjZUdyb3VwUHJvcHMgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBHcm91cFByb3BzID0gUmVzb3VyY2VHcm91cFByb3BzO1xuXG4vKipcbiAqIFR5cGUgYWxpYXMgZm9yIFJlc291cmNlR3JvdXBCb2R5IHRvIG1haW50YWluIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIEBkZXByZWNhdGVkIFVzZSBSZXNvdXJjZUdyb3VwQm9keSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIEdyb3VwQm9keSA9IFJlc291cmNlR3JvdXBCb2R5O1xuIl19
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
* Run with: npm run integration:nostream
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
const
|
|
12
|
-
require("
|
|
11
|
+
const cdktn_1 = require("cdktn");
|
|
12
|
+
require("cdktn/lib/testing/adapters/jest");
|
|
13
13
|
const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
|
|
14
14
|
const testing_1 = require("../../testing");
|
|
15
15
|
const metadata_1 = require("../../testing/lib/metadata");
|
|
@@ -59,9 +59,9 @@ class ResourceGroupExampleStack extends testing_1.BaseTestStack {
|
|
|
59
59
|
}
|
|
60
60
|
describe("Resource Group Integration Test", () => {
|
|
61
61
|
it("should deploy, validate idempotency, and cleanup resource group resources", () => {
|
|
62
|
-
const app =
|
|
62
|
+
const app = cdktn_1.Testing.app();
|
|
63
63
|
const stack = new ResourceGroupExampleStack(app, "test-resource-group");
|
|
64
|
-
const synthesized =
|
|
64
|
+
const synthesized = cdktn_1.Testing.fullSynth(stack);
|
|
65
65
|
// This will:
|
|
66
66
|
// 1. Run terraform apply to deploy resources
|
|
67
67
|
// 2. Run terraform plan to check idempotency (no changes expected)
|
|
@@ -69,4 +69,4 @@ describe("Resource Group Integration Test", () => {
|
|
|
69
69
|
(0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
|
|
70
70
|
}, 600000); // 10 minute timeout for deployment and cleanup
|
|
71
71
|
});
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcmVzb3VyY2Vncm91cC90ZXN0L3Jlc291cmNlLWdyb3VwLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsa0ZBQW9GO0FBQ3BGLDJDQUE2RTtBQUM3RSx5REFBNkQ7QUFDN0QsMERBQXNEO0FBRXRELHdEQUF3RDtBQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFlLENBQUMsNEJBQTRCLEVBQUU7SUFDckUsV0FBVyxFQUFFLENBQUM7Q0FDZixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0seUJBQTBCLFNBQVEsdUJBQWE7SUFDbkQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixjQUFjLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTthQUMxQztTQUNGLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLHdCQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyw0Q0FBNEM7UUFDNUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUMzQyxvQ0FBb0MsRUFDcEMsT0FBTyxDQUNSLENBQUM7UUFDRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQy9DLG9DQUFvQyxFQUNwQyxXQUFXLENBQ1osQ0FBQztRQUVGLGtDQUFrQztRQUNsQyxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNsQyxJQUFJLEVBQUUsV0FBVztZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILGtEQUFrRDtRQUNsRCxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN0QyxJQUFJLEVBQUUsZUFBZTtZQUNyQixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsWUFBWTtZQUN4QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsV0FBVztnQkFDcEIsSUFBSSxFQUFFLFlBQVk7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO0lBQy9DLEVBQUUsQ0FBQywyRUFBMkUsRUFBRSxHQUFHLEVBQUU7UUFDbkYsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUkseUJBQXlCLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsNkNBQTZDO1FBQzdDLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDN0QsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIFJlc291cmNlIEdyb3VwXG4gKlxuICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRlcyBiYXNpYyB1c2FnZSBvZiB0aGUgUmVzb3VyY2VHcm91cCBjb25zdHJ1Y3RcbiAqIGFuZCB2YWxpZGF0ZXMgZGVwbG95bWVudCwgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwLlxuICpcbiAqIFJ1biB3aXRoOiBucG0gcnVuIGludGVncmF0aW9uOm5vc3RyZWFtXG4gKi9cblxuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCBcImNka3RuL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IEF6YXBpUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBCYXNlVGVzdFN0YWNrLCBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5pbXBvcnQgeyBUZXN0UnVuTWV0YWRhdGEgfSBmcm9tIFwiLi4vLi4vdGVzdGluZy9saWIvbWV0YWRhdGFcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5cbi8vIEdlbmVyYXRlIHVuaXF1ZSB0ZXN0IHJ1biBtZXRhZGF0YSBmb3IgdGhpcyB0ZXN0IHN1aXRlXG5jb25zdCB0ZXN0TWV0YWRhdGEgPSBuZXcgVGVzdFJ1bk1ldGFkYXRhKFwicmVzb3VyY2UtZ3JvdXAtaW50ZWdyYXRpb25cIiwge1xuICBtYXhBZ2VIb3VyczogNCxcbn0pO1xuXG4vKipcbiAqIEV4YW1wbGUgc3RhY2sgZGVtb25zdHJhdGluZyBSZXNvdXJjZSBHcm91cCB1c2FnZVxuICovXG5jbGFzcyBSZXNvdXJjZUdyb3VwRXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pcXVlIG5hbWVzIGZvciByZXNvdXJjZSBncm91cHNcbiAgICBjb25zdCBiYXNpY1JnTmFtZSA9IHRoaXMuZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gICAgICBcIk1pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHNcIixcbiAgICAgIFwiYmFzaWNcIixcbiAgICApO1xuICAgIGNvbnN0IHZlcnNpb25lZFJnTmFtZSA9IHRoaXMuZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gICAgICBcIk1pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHNcIixcbiAgICAgIFwidmVyc2lvbmVkXCIsXG4gICAgKTtcblxuICAgIC8vIEV4YW1wbGUgMTogQmFzaWMgcmVzb3VyY2UgZ3JvdXBcbiAgICBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImJhc2ljLXJnXCIsIHtcbiAgICAgIG5hbWU6IGJhc2ljUmdOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcImJhc2ljXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAyOiBSZXNvdXJjZSBncm91cCB3aXRoIHNwZWNpZmljIHZlcnNpb25cbiAgICBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcInZlcnNpb25lZC1yZ1wiLCB7XG4gICAgICBuYW1lOiB2ZXJzaW9uZWRSZ05hbWUsXG4gICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJ2ZXJzaW9uZWRcIixcbiAgICAgICAgdGllcjogXCJwcm9kdWN0aW9uXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmRlc2NyaWJlKFwiUmVzb3VyY2UgR3JvdXAgSW50ZWdyYXRpb24gVGVzdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGRlcGxveSwgdmFsaWRhdGUgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwIHJlc291cmNlIGdyb3VwIHJlc291cmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBSZXNvdXJjZUdyb3VwRXhhbXBsZVN0YWNrKGFwcCwgXCJ0ZXN0LXJlc291cmNlLWdyb3VwXCIpO1xuICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spO1xuXG4gICAgLy8gVGhpcyB3aWxsOlxuICAgIC8vIDEuIFJ1biB0ZXJyYWZvcm0gYXBwbHkgdG8gZGVwbG95IHJlc291cmNlc1xuICAgIC8vIDIuIFJ1biB0ZXJyYWZvcm0gcGxhbiB0byBjaGVjayBpZGVtcG90ZW5jeSAobm8gY2hhbmdlcyBleHBlY3RlZClcbiAgICAvLyAzLiBSdW4gdGVycmFmb3JtIGRlc3Ryb3kgdG8gY2xlYW51cCByZXNvdXJjZXNcbiAgICBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveShzeW50aGVzaXplZCwgeyB2ZXJpZnlDbGVhbnVwOiB0cnVlIH0pO1xuICB9LCA2MDAwMDApOyAvLyAxMCBtaW51dGUgdGltZW91dCBmb3IgZGVwbG95bWVudCBhbmQgY2xlYW51cFxufSk7XG4iXX0=
|