@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
package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js
CHANGED
|
@@ -7,15 +7,15 @@
|
|
|
7
7
|
* property transformation, and resource creation for all connection types.
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const cdktn_1 = require("cdktn");
|
|
11
|
+
const cdktn = require("cdktn");
|
|
12
12
|
const virtual_network_gateway_connection_1 = require("../lib/virtual-network-gateway-connection");
|
|
13
13
|
describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
14
14
|
let app;
|
|
15
15
|
let stack;
|
|
16
16
|
beforeEach(() => {
|
|
17
|
-
app =
|
|
18
|
-
stack = new
|
|
17
|
+
app = cdktn_1.Testing.app();
|
|
18
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
19
19
|
});
|
|
20
20
|
describe("Constructor and Basic Properties", () => {
|
|
21
21
|
it("should create IPsec connection with automatic latest version resolution", () => {
|
|
@@ -476,10 +476,10 @@ describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
|
476
476
|
},
|
|
477
477
|
sharedKey: "key",
|
|
478
478
|
});
|
|
479
|
-
expect(connection.idOutput).toBeInstanceOf(
|
|
480
|
-
expect(connection.nameOutput).toBeInstanceOf(
|
|
481
|
-
expect(connection.locationOutput).toBeInstanceOf(
|
|
482
|
-
expect(connection.tagsOutput).toBeInstanceOf(
|
|
479
|
+
expect(connection.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
480
|
+
expect(connection.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
481
|
+
expect(connection.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
482
|
+
expect(connection.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
483
483
|
});
|
|
484
484
|
it("should have correct id format", () => {
|
|
485
485
|
const connection = new virtual_network_gateway_connection_1.VirtualNetworkGatewayConnection(stack, "IdFormat", {
|
|
@@ -574,7 +574,7 @@ describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
|
574
574
|
sharedKey: "key",
|
|
575
575
|
tags: { test: "synthesis" },
|
|
576
576
|
});
|
|
577
|
-
const synthesized =
|
|
577
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
578
578
|
expect(synthesized).toBeDefined();
|
|
579
579
|
const stackConfig = JSON.parse(synthesized);
|
|
580
580
|
expect(stackConfig.resource).toBeDefined();
|
|
@@ -609,7 +609,7 @@ describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
|
609
609
|
});
|
|
610
610
|
expect(conn1.resolvedApiVersion).toBe("2024-05-01");
|
|
611
611
|
expect(conn2.resolvedApiVersion).toBe("2024-01-01");
|
|
612
|
-
const synthesized =
|
|
612
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
613
613
|
expect(synthesized).toBeDefined();
|
|
614
614
|
});
|
|
615
615
|
});
|
|
@@ -634,8 +634,8 @@ describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
|
634
634
|
});
|
|
635
635
|
describe("Gateway Reference Structure Validation", () => {
|
|
636
636
|
it("should create IPsec connection successfully (fix applied)", () => {
|
|
637
|
-
const testApp =
|
|
638
|
-
const testStack = new
|
|
637
|
+
const testApp = cdktn_1.Testing.app();
|
|
638
|
+
const testStack = new cdktn.TerraformStack(testApp, "IPsecTestStack");
|
|
639
639
|
const connection = new virtual_network_gateway_connection_1.VirtualNetworkGatewayConnection(testStack, "IPsecPropertiesTest", {
|
|
640
640
|
name: "ipsec-props",
|
|
641
641
|
location: "eastus",
|
|
@@ -653,12 +653,12 @@ describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
|
653
653
|
expect(connection).toBeInstanceOf(virtual_network_gateway_connection_1.VirtualNetworkGatewayConnection);
|
|
654
654
|
expect(connection.props.connectionType).toBe("IPsec");
|
|
655
655
|
// Synthesize to ensure no errors
|
|
656
|
-
const synthesized =
|
|
656
|
+
const synthesized = cdktn_1.Testing.synth(testStack);
|
|
657
657
|
expect(synthesized).toBeDefined();
|
|
658
658
|
});
|
|
659
659
|
it("should create Vnet2Vnet connection successfully (fix applied)", () => {
|
|
660
|
-
const testApp =
|
|
661
|
-
const testStack = new
|
|
660
|
+
const testApp = cdktn_1.Testing.app();
|
|
661
|
+
const testStack = new cdktn.TerraformStack(testApp, "Vnet2VnetTestStack");
|
|
662
662
|
const connection = new virtual_network_gateway_connection_1.VirtualNetworkGatewayConnection(testStack, "Vnet2VnetPropertiesTest", {
|
|
663
663
|
name: "vnet2vnet-props",
|
|
664
664
|
location: "eastus",
|
|
@@ -676,12 +676,12 @@ describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
|
676
676
|
expect(connection).toBeInstanceOf(virtual_network_gateway_connection_1.VirtualNetworkGatewayConnection);
|
|
677
677
|
expect(connection.props.connectionType).toBe("Vnet2Vnet");
|
|
678
678
|
// Synthesize to ensure no errors
|
|
679
|
-
const synthesized =
|
|
679
|
+
const synthesized = cdktn_1.Testing.synth(testStack);
|
|
680
680
|
expect(synthesized).toBeDefined();
|
|
681
681
|
});
|
|
682
682
|
it("should create ExpressRoute connection successfully (fix applied)", () => {
|
|
683
|
-
const testApp =
|
|
684
|
-
const testStack = new
|
|
683
|
+
const testApp = cdktn_1.Testing.app();
|
|
684
|
+
const testStack = new cdktn.TerraformStack(testApp, "ExpressRouteTestStack");
|
|
685
685
|
const connection = new virtual_network_gateway_connection_1.VirtualNetworkGatewayConnection(testStack, "ExpressRoutePropertiesTest", {
|
|
686
686
|
name: "er-props",
|
|
687
687
|
location: "eastus",
|
|
@@ -698,9 +698,9 @@ describe("VirtualNetworkGatewayConnection - Implementation", () => {
|
|
|
698
698
|
expect(connection).toBeInstanceOf(virtual_network_gateway_connection_1.VirtualNetworkGatewayConnection);
|
|
699
699
|
expect(connection.props.connectionType).toBe("ExpressRoute");
|
|
700
700
|
// Synthesize to ensure no errors
|
|
701
|
-
const synthesized =
|
|
701
|
+
const synthesized = cdktn_1.Testing.synth(testStack);
|
|
702
702
|
expect(synthesized).toBeDefined();
|
|
703
703
|
});
|
|
704
704
|
});
|
|
705
705
|
});
|
|
706
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1uZXR3b3JrLWdhdGV3YXktY29ubmVjdGlvbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZpcnR1YWxuZXR3b3JrZ2F0ZXdheWNvbm5lY3Rpb24vdGVzdC92aXJ0dWFsLW5ldHdvcmstZ2F0ZXdheS1jb25uZWN0aW9uLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCxpQ0FBZ0M7QUFDaEMsK0JBQStCO0FBQy9CLGtHQUdtRDtBQUVuRCxRQUFRLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO0lBQ2hFLElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUVoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsRUFBRSxDQUFDLHlFQUF5RSxFQUFFLEdBQUcsRUFBRTtZQUNqRixNQUFNLEtBQUssR0FBeUM7Z0JBQ2xELElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixlQUFlLEVBQUUsOENBQThDO2dCQUMvRCxjQUFjLEVBQUUsT0FBTztnQkFDdkIsc0JBQXNCLEVBQUU7b0JBQ3RCLEVBQUUsRUFBRSxpR0FBaUc7aUJBQ3RHO2dCQUNELG9CQUFvQixFQUFFO29CQUNwQixFQUFFLEVBQUUsOEZBQThGO2lCQUNuRztnQkFDRCxTQUFTLEVBQUUsaUJBQWlCO2FBQzdCLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLG9FQUErQixDQUNwRCxLQUFLLEVBQ0wsZ0JBQWdCLEVBQ2hCLEtBQUssQ0FDTixD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dXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tcHJlaGVuc2l2ZSB0ZXN0cyBmb3IgdGhlIFZpcnR1YWwgTmV0d29yayBHYXRld2F5IENvbm5lY3Rpb24gaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uIGNsYXNzIHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29yay5cbiAqIFRlc3RzIGNvdmVyIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb24sIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sXG4gKiBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uIGZvciBhbGwgY29ubmVjdGlvbiB0eXBlcy5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7XG4gIFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24sXG4gIFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb25Qcm9wcyxcbn0gZnJvbSBcIi4uL2xpYi92aXJ0dWFsLW5ldHdvcmstZ2F0ZXdheS1jb25uZWN0aW9uXCI7XG5cbmRlc2NyaWJlKFwiVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbiAtIEltcGxlbWVudGF0aW9uXCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdGYuQXBwO1xuICBsZXQgc3RhY2s6IGNka3RmLlRlcnJhZm9ybVN0YWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgY2RrdGYuVGVycmFmb3JtU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIElQc2VjIGNvbm5lY3Rpb24gd2l0aCBhdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvblByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtczJzLWNvbm5lY3Rpb25cIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICB9LFxuICAgICAgICBzaGFyZWRLZXk6IFwibXlTZWN1cmVLZXkxMjMhXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RDb25uZWN0aW9uXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMpLnRvQmUocHJvcHMpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ubmFtZSkudG9CZShcInRlc3QtczJzLWNvbm5lY3Rpb25cIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5sb2NhdGlvbikudG9CZShcImVhc3R1c1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBWbmV0MlZuZXQgY29ubmVjdGlvbiB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZ1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvblByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qtdm5ldC1jb25uZWN0aW9uXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNoYXJlZEtleTogXCJteVNlY3VyZUtleTEyMyFcIixcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVGVzdENvbm5lY3Rpb25cIixcbiAgICAgICAgcHJvcHMsXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTAxLTAxXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24udGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBFeHByZXNzUm91dGUgY29ubmVjdGlvbiB3aXRoIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1lci1jb25uZWN0aW9uXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImNlbnRyYWx1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvZXItZ2F0ZXdheVwiLFxuICAgICAgICB9LFxuICAgICAgICBwZWVyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9leHByZXNzUm91dGVDaXJjdWl0cy9jaXJjdWl0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGF1dGhvcml6YXRpb25LZXk6IFwiYXV0aC1rZXktMTIzXCIsXG4gICAgICAgIGVuYWJsZUJncDogdHJ1ZSxcbiAgICAgICAgcm91dGluZ1dlaWdodDogMTAsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgcHJvamVjdDogXCJuZXR3b3JraW5nXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RDb25uZWN0aW9uXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJFeHByZXNzUm91dGVcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5lbmFibGVCZ3ApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzKS50b0VxdWFsKHByb3BzLnRhZ3MpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdXNlIGRlZmF1bHQgbmFtZSB3aGVuIG5hbWUgaXMgbm90IHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiZGVmYXVsdC1uYW1lXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0Q29ubmVjdGlvblwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLm5hbWUpLnRvQmUoXCJkZWZhdWx0LW5hbWVcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUmVzb3VyY2UgVHlwZSBhbmQgQVBJIFZlcnNpb25zXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgcmVzb3VyY2UgdHlwZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RDb25uZWN0aW9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtY29ubmVjdGlvblwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBhbGwgcmVnaXN0ZXJlZCBBUEkgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTAxLTAxXCIsIFwiMjAyNC0wNS0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgYENvbm5lY3Rpb24tJHt2ZXJzaW9uLnJlcGxhY2UoLy0vZywgXCJcIil9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBgY29ubi0ke3ZlcnNpb259YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGV4cGVjdChjb25uZWN0aW9uLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdXNlIGxhdGVzdCB2ZXJzaW9uIGFzIGRlZmF1bHRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0Q29ubmVjdGlvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMDUtMDFcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSVBzZWMgQ29ubmVjdGlvbiBUeXBlXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgSVBzZWMgY29ubmVjdGlvbiB3aXRoIG1pbmltYWwgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIklQc2VjTWluaW1hbFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpcHNlYy1taW5pbWFsXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwibXlTZWN1cmVLZXkxMjMhXCIsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5jb25uZWN0aW9uVHlwZSkudG9CZShcIklQc2VjXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMubG9jYWxOZXR3b3JrR2F0ZXdheTIpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5zaGFyZWRLZXkpLnRvQmUoXCJteVNlY3VyZUtleTEyMyFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgSVBzZWMgY29ubmVjdGlvbiB3aXRoIGN1c3RvbSBJUHNlYyBwb2xpY2llc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIklQc2VjQ3VzdG9tXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImlwc2VjLWN1c3RvbVwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICAgIGNvbm5lY3Rpb25Qcm90b2NvbDogXCJJS0V2MlwiLFxuICAgICAgICAgIGlwc2VjUG9saWNpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGhHcm91cDogXCJESEdyb3VwMTRcIixcbiAgICAgICAgICAgICAgaWtlRW5jcnlwdGlvbjogXCJBRVMyNTZcIixcbiAgICAgICAgICAgICAgaWtlSW50ZWdyaXR5OiBcIlNIQTI1NlwiLFxuICAgICAgICAgICAgICBpcHNlY0VuY3J5cHRpb246IFwiQUVTMjU2XCIsXG4gICAgICAgICAgICAgIGlwc2VjSW50ZWdyaXR5OiBcIlNIQTI1NlwiLFxuICAgICAgICAgICAgICBwZnNHcm91cDogXCJQRlMyMDQ4XCIsXG4gICAgICAgICAgICAgIHNhTGlmZVRpbWVTZWNvbmRzOiAzNjAwLFxuICAgICAgICAgICAgICBzYURhdGFTaXplS2lsb2J5dGVzOiAxMDI0MDAwMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgdXNlUG9saWN5QmFzZWRUcmFmZmljU2VsZWN0b3JzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblByb3RvY29sKS50b0JlKFwiSUtFdjJcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5pcHNlY1BvbGljaWVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy51c2VQb2xpY3lCYXNlZFRyYWZmaWNTZWxlY3RvcnMpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgSVBzZWMgY29ubmVjdGlvbiB3aXRoIElLRXYxIHByb3RvY29sXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiSVBzZWNJS0V2MVwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpcHNlYy1pa2V2MVwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICAgIGNvbm5lY3Rpb25Qcm90b2NvbDogXCJJS0V2MVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblByb3RvY29sKS50b0JlKFwiSUtFdjFcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVm5ldDJWbmV0IENvbm5lY3Rpb24gVHlwZVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFZuZXQyVm5ldCBjb25uZWN0aW9uIHdpdGggbWluaW1hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVm5ldDJWbmV0TWluaW1hbFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJ2bmV0MnZuZXQtbWluaW1hbFwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJWbmV0MlZuZXRcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy52aXJ0dWFsTmV0d29ya0dhdGV3YXkyKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuc2hhcmVkS2V5KS50b0JlKFwibXlTZWN1cmVLZXkxMjMhXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFZuZXQyVm5ldCBjb25uZWN0aW9uIHdpdGggQkdQIGVuYWJsZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJWbmV0MlZuZXRCR1BcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwidm5ldDJ2bmV0LWJncFwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICAgIGVuYWJsZUJncDogdHJ1ZSxcbiAgICAgICAgICByb3V0aW5nV2VpZ2h0OiA1LFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuZW5hYmxlQmdwKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMucm91dGluZ1dlaWdodCkudG9CZSg1KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJFeHByZXNzUm91dGUgQ29ubmVjdGlvbiBUeXBlXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgRXhwcmVzc1JvdXRlIGNvbm5lY3Rpb24gd2l0aCBtaW5pbWFsIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJFeHByZXNzUm91dGVNaW5pbWFsXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImVyLW1pbmltYWxcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJFeHByZXNzUm91dGVcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvZXItZ2F0ZXdheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGVlcjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9leHByZXNzUm91dGVDaXJjdWl0cy9jaXJjdWl0XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmNvbm5lY3Rpb25UeXBlKS50b0JlKFwiRXhwcmVzc1JvdXRlXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMucGVlcikudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBFeHByZXNzUm91dGUgY29ubmVjdGlvbiB3aXRoIGF1dGhvcml6YXRpb24ga2V5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiRXhwcmVzc1JvdXRlQXV0aFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJlci1hdXRoXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL2VyLWdhdGV3YXlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBlZXI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvZXhwcmVzc1JvdXRlQ2lyY3VpdHMvY2lyY3VpdFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXV0aG9yaXphdGlvbktleTogXCJteS1hdXRoLWtleS0xMjNcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmF1dGhvcml6YXRpb25LZXkpLnRvQmUoXCJteS1hdXRoLWtleS0xMjNcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29ubmVjdGlvbiBNb2RlIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBjb25uZWN0aW9uIHdpdGggRGVmYXVsdCBtb2RlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiRGVmYXVsdE1vZGVcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1kZWZhdWx0XCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgY29ubmVjdGlvbk1vZGU6IFwiRGVmYXVsdFwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvbk1vZGUpLnRvQmUoXCJEZWZhdWx0XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNvbm5lY3Rpb24gd2l0aCBSZXNwb25kZXJPbmx5IG1vZGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJSZXNwb25kZXJNb2RlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNvbm4tcmVzcG9uZGVyXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgY29ubmVjdGlvbk1vZGU6IFwiUmVzcG9uZGVyT25seVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvbk1vZGUpLnRvQmUoXCJSZXNwb25kZXJPbmx5XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNvbm5lY3Rpb24gd2l0aCBJbml0aWF0b3JPbmx5IG1vZGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJJbml0aWF0b3JNb2RlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNvbm4taW5pdGlhdG9yXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgY29ubmVjdGlvbk1vZGU6IFwiSW5pdGlhdG9yT25seVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvbk1vZGUpLnRvQmUoXCJJbml0aWF0b3JPbmx5XCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIk5BVCBSdWxlcyBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgY29ubmVjdGlvbiB3aXRoIGVncmVzcyBOQVQgcnVsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJFZ3Jlc3NOQVRcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1lZ3Jlc3MtbmF0XCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgZWdyZXNzTmF0UnVsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzEvbmF0UnVsZXMvcnVsZTFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmVncmVzc05hdFJ1bGVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgY29ubmVjdGlvbiB3aXRoIGluZ3Jlc3MgTkFUIHJ1bGVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiSW5ncmVzc05BVFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLWluZ3Jlc3MtbmF0XCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgaW5ncmVzc05hdFJ1bGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxL25hdFJ1bGVzL3J1bGUxXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5pbmdyZXNzTmF0UnVsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWdzIE1hbmFnZW1lbnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBjb25uZWN0aW9uIHdpdGggdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRhZ2dlZENvbm5lY3Rpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi10YWdnZWRcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgICBjb3N0X2NlbnRlcjogXCJlbmdpbmVlcmluZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzKS50b0VxdWFsKHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBjb3N0X2NlbnRlcjogXCJlbmdpbmVlcmluZ1wiLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IGFkZGluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihzdGFjaywgXCJBZGRUYWdcIiwge1xuICAgICAgICBuYW1lOiBcImNvbm4tYWRkLXRhZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25uZWN0aW9uLmFkZFRhZyhcIm5ld1RhZ1wiLCBcIm5ld1ZhbHVlXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IHJlbW92aW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJSZW1vdmVUYWdcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1yZW1vdmUtdGFnXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICAgICAgdGVtcG9yYXJ5OiBcInRydWVcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgY29ubmVjdGlvbi5yZW1vdmVUYWcoXCJ0ZW1wb3JhcnlcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzIS50ZW1wb3JhcnkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUZXJyYWZvcm0gT3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiT3V0cHV0VGVzdFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLW91dHB1dHNcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ubmFtZU91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLmxvY2F0aW9uT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24udGFnc091dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCBpZCBmb3JtYXRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJJZEZvcm1hdFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLWlkXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5yZXNvdXJjZUlkKS50b0JlKGNvbm5lY3Rpb24uaWQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZlcnNpb24gQ29tcGF0aWJpbGl0eVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgd29yayB3aXRoIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0wMS0wMVwiLCBcIjIwMjQtMDUtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIGBDb25uLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYGNvbm4tJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QoY29ubmVjdGlvbi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJJZ25vcmUgQ2hhbmdlcyBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBhcHBseSBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJJZ25vcmVDaGFuZ2VzXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNvbm4taWdub3JlXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgaWdub3JlQ2hhbmdlczogW1widGFnc1wiXSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uKS50b0JlSW5zdGFuY2VPZihWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvRXF1YWwoW1widGFnc1wiXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgZW1wdHkgaWdub3JlIGNoYW5nZXMgYXJyYXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJFbXB0eUlnbm9yZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLWVtcHR5LWlnbm9yZVwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICAgIGlnbm9yZUNoYW5nZXM6IFtdLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb25uLXN5bnRoXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICB0YWdzOiB7IHRlc3Q6IFwic3ludGhlc2lzXCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIGNvbm5lY3Rpb25zIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm4xID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oc3RhY2ssIFwiQ29ubjFcIiwge1xuICAgICAgICBuYW1lOiBcImNvbm4tMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjb25uMiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKHN0YWNrLCBcIkNvbm4yXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb25uLTJcIixcbiAgICAgICAgbG9jYXRpb246IFwid2VzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDEtMDFcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiVm5ldDJWbmV0XCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICB9LFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzJcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChjb25uMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KGNvbm4yLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMDEtMDFcIik7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiRFBEIFRpbWVvdXQgQ29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNvbm5lY3Rpb24gd2l0aCBjdXN0b20gRFBEIHRpbWVvdXRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJDdXN0b21EUERcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1kcGRcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgICBkcGRUaW1lb3V0U2Vjb25kczogNDUsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5kcGRUaW1lb3V0U2Vjb25kcykudG9CZSg0NSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiR2F0ZXdheSBSZWZlcmVuY2UgU3RydWN0dXJlIFZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBJUHNlYyBjb25uZWN0aW9uIHN1Y2Nlc3NmdWxseSAoZml4IGFwcGxpZWQpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RBcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgICAgY29uc3QgdGVzdFN0YWNrID0gbmV3IGNka3RmLlRlcnJhZm9ybVN0YWNrKHRlc3RBcHAsIFwiSVBzZWNUZXN0U3RhY2tcIik7XG5cbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgdGVzdFN0YWNrLFxuICAgICAgICBcIklQc2VjUHJvcGVydGllc1Rlc3RcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaXBzZWMtcHJvcHNcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFZlcmlmeSB0aGUgY29ubmVjdGlvbiB3YXMgY3JlYXRlZCBzdWNjZXNzZnVsbHlcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uKS50b0JlSW5zdGFuY2VPZihWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmNvbm5lY3Rpb25UeXBlKS50b0JlKFwiSVBzZWNcIik7XG5cbiAgICAgIC8vIFN5bnRoZXNpemUgdG8gZW5zdXJlIG5vIGVycm9yc1xuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHRlc3RTdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgVm5ldDJWbmV0IGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IChmaXggYXBwbGllZClcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdGVzdEFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgICBjb25zdCB0ZXN0U3RhY2sgPSBuZXcgY2RrdGYuVGVycmFmb3JtU3RhY2sodGVzdEFwcCwgXCJWbmV0MlZuZXRUZXN0U3RhY2tcIik7XG5cbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgdGVzdFN0YWNrLFxuICAgICAgICBcIlZuZXQyVm5ldFByb3BlcnRpZXNUZXN0XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInZuZXQydm5ldC1wcm9wc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgLy8gVmVyaWZ5IHRoZSBjb25uZWN0aW9uIHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJWbmV0MlZuZXRcIik7XG5cbiAgICAgIC8vIFN5bnRoZXNpemUgdG8gZW5zdXJlIG5vIGVycm9yc1xuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHRlc3RTdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgRXhwcmVzc1JvdXRlIGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IChmaXggYXBwbGllZClcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdGVzdEFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgICBjb25zdCB0ZXN0U3RhY2sgPSBuZXcgY2RrdGYuVGVycmFmb3JtU3RhY2soXG4gICAgICAgIHRlc3RBcHAsXG4gICAgICAgIFwiRXhwcmVzc1JvdXRlVGVzdFN0YWNrXCIsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHRlc3RTdGFjayxcbiAgICAgICAgXCJFeHByZXNzUm91dGVQcm9wZXJ0aWVzVGVzdFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJlci1wcm9wc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIkV4cHJlc3NSb3V0ZVwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy9lci1nYXRld2F5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwZWVyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2V4cHJlc3NSb3V0ZUNpcmN1aXRzL2NpcmN1aXRcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgLy8gVmVyaWZ5IHRoZSBjb25uZWN0aW9uIHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJFeHByZXNzUm91dGVcIik7XG5cbiAgICAgIC8vIFN5bnRoZXNpemUgdG8gZW5zdXJlIG5vIGVycm9yc1xuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHRlc3RTdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
706
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1uZXR3b3JrLWdhdGV3YXktY29ubmVjdGlvbi5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZpcnR1YWxuZXR3b3JrZ2F0ZXdheWNvbm5lY3Rpb24vdGVzdC92aXJ0dWFsLW5ldHdvcmstZ2F0ZXdheS1jb25uZWN0aW9uLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCxpQ0FBZ0M7QUFDaEMsK0JBQStCO0FBQy9CLGtHQUdtRDtBQUVuRCxRQUFRLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO0lBQ2hFLElBQUksR0FBYyxDQUFDO0lBQ25CLElBQUksS0FBMkIsQ0FBQztJQUVoQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLEVBQUU7UUFDaEQsRUFBRSxDQUFDLHlFQUF5RSxFQUFFLEdBQUcsRUFBRTtZQUNqRixNQUFNLEtBQUssR0FBeUM7Z0JBQ2xELElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixlQUFlLEVBQUUsOENBQThDO2dCQUMvRCxjQUFjLEVBQUUsT0FBTztnQkFDdkIsc0JBQXNCLEVBQUU7b0JBQ3RCLEVBQUUsRUFBRSxpR0FBaUc7aUJBQ3RHO2dCQUNELG9CQUFvQixFQUFFO29CQUNwQixFQUFFLEVBQUUsOEZBQThGO2lCQUNuRztnQkFDRCxTQUFTLEVBQUUsaUJBQWlCO2FBQzdCLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLG9FQUErQixDQUNwRCxLQUFLLEVBQ0wsZ0JBQWdCLEVBQ2hCLEtBQUssQ0FDTixD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dXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29tcHJlaGVuc2l2ZSB0ZXN0cyBmb3IgdGhlIFZpcnR1YWwgTmV0d29yayBHYXRld2F5IENvbm5lY3Rpb24gaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uIGNsYXNzIHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29yay5cbiAqIFRlc3RzIGNvdmVyIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb24sIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sXG4gKiBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uIGZvciBhbGwgY29ubmVjdGlvbiB0eXBlcy5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7XG4gIFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24sXG4gIFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb25Qcm9wcyxcbn0gZnJvbSBcIi4uL2xpYi92aXJ0dWFsLW5ldHdvcmstZ2F0ZXdheS1jb25uZWN0aW9uXCI7XG5cbmRlc2NyaWJlKFwiVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbiAtIEltcGxlbWVudGF0aW9uXCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdG4uQXBwO1xuICBsZXQgc3RhY2s6IGNka3RuLlRlcnJhZm9ybVN0YWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgY2RrdG4uVGVycmFmb3JtU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDb25zdHJ1Y3RvciBhbmQgQmFzaWMgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIElQc2VjIGNvbm5lY3Rpb24gd2l0aCBhdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvblByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3QtczJzLWNvbm5lY3Rpb25cIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICB9LFxuICAgICAgICBzaGFyZWRLZXk6IFwibXlTZWN1cmVLZXkxMjMhXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RDb25uZWN0aW9uXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMpLnRvQmUocHJvcHMpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ubmFtZSkudG9CZShcInRlc3QtczJzLWNvbm5lY3Rpb25cIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5sb2NhdGlvbikudG9CZShcImVhc3R1c1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBWbmV0MlZuZXQgY29ubmVjdGlvbiB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZ1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvblByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Qtdm5ldC1jb25uZWN0aW9uXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgfSxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcyXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNoYXJlZEtleTogXCJteVNlY3VyZUtleTEyMyFcIixcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVGVzdENvbm5lY3Rpb25cIixcbiAgICAgICAgcHJvcHMsXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTAxLTAxXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24udGFncykudG9FcXVhbCh7IGVudmlyb25tZW50OiBcInRlc3RcIiB9KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBFeHByZXNzUm91dGUgY29ubmVjdGlvbiB3aXRoIGFsbCBvcHRpb25hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1lci1jb25uZWN0aW9uXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImNlbnRyYWx1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvZXItZ2F0ZXdheVwiLFxuICAgICAgICB9LFxuICAgICAgICBwZWVyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9leHByZXNzUm91dGVDaXJjdWl0cy9jaXJjdWl0XCIsXG4gICAgICAgIH0sXG4gICAgICAgIGF1dGhvcml6YXRpb25LZXk6IFwiYXV0aC1rZXktMTIzXCIsXG4gICAgICAgIGVuYWJsZUJncDogdHJ1ZSxcbiAgICAgICAgcm91dGluZ1dlaWdodDogMTAsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgcHJvamVjdDogXCJuZXR3b3JraW5nXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RDb25uZWN0aW9uXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJFeHByZXNzUm91dGVcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5lbmFibGVCZ3ApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzKS50b0VxdWFsKHByb3BzLnRhZ3MpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdXNlIGRlZmF1bHQgbmFtZSB3aGVuIG5hbWUgaXMgbm90IHByb3ZpZGVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uUHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwiZGVmYXVsdC1uYW1lXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0Q29ubmVjdGlvblwiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLm5hbWUpLnRvQmUoXCJkZWZhdWx0LW5hbWVcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUmVzb3VyY2UgVHlwZSBhbmQgQVBJIFZlcnNpb25zXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgcmVzb3VyY2UgdHlwZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RDb25uZWN0aW9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtY29ubmVjdGlvblwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgc3VwcG9ydCBhbGwgcmVnaXN0ZXJlZCBBUEkgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTAxLTAxXCIsIFwiMjAyNC0wNS0wMVwiXTtcblxuICAgICAgdmVyc2lvbnMuZm9yRWFjaCgodmVyc2lvbikgPT4ge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgICAgc3RhY2ssXG4gICAgICAgICAgYENvbm5lY3Rpb24tJHt2ZXJzaW9uLnJlcGxhY2UoLy0vZywgXCJcIil9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBgY29ubi0ke3ZlcnNpb259YCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgICBhcGlWZXJzaW9uOiB2ZXJzaW9uLFxuICAgICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgICB9LFxuICAgICAgICApO1xuXG4gICAgICAgIGV4cGVjdChjb25uZWN0aW9uLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdXNlIGxhdGVzdCB2ZXJzaW9uIGFzIGRlZmF1bHRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0Q29ubmVjdGlvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMDUtMDFcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSVBzZWMgQ29ubmVjdGlvbiBUeXBlXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgSVBzZWMgY29ubmVjdGlvbiB3aXRoIG1pbmltYWwgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIklQc2VjTWluaW1hbFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpcHNlYy1taW5pbWFsXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwibXlTZWN1cmVLZXkxMjMhXCIsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5jb25uZWN0aW9uVHlwZSkudG9CZShcIklQc2VjXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMubG9jYWxOZXR3b3JrR2F0ZXdheTIpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5zaGFyZWRLZXkpLnRvQmUoXCJteVNlY3VyZUtleTEyMyFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgSVBzZWMgY29ubmVjdGlvbiB3aXRoIGN1c3RvbSBJUHNlYyBwb2xpY2llc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIklQc2VjQ3VzdG9tXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImlwc2VjLWN1c3RvbVwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICAgIGNvbm5lY3Rpb25Qcm90b2NvbDogXCJJS0V2MlwiLFxuICAgICAgICAgIGlwc2VjUG9saWNpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGhHcm91cDogXCJESEdyb3VwMTRcIixcbiAgICAgICAgICAgICAgaWtlRW5jcnlwdGlvbjogXCJBRVMyNTZcIixcbiAgICAgICAgICAgICAgaWtlSW50ZWdyaXR5OiBcIlNIQTI1NlwiLFxuICAgICAgICAgICAgICBpcHNlY0VuY3J5cHRpb246IFwiQUVTMjU2XCIsXG4gICAgICAgICAgICAgIGlwc2VjSW50ZWdyaXR5OiBcIlNIQTI1NlwiLFxuICAgICAgICAgICAgICBwZnNHcm91cDogXCJQRlMyMDQ4XCIsXG4gICAgICAgICAgICAgIHNhTGlmZVRpbWVTZWNvbmRzOiAzNjAwLFxuICAgICAgICAgICAgICBzYURhdGFTaXplS2lsb2J5dGVzOiAxMDI0MDAwMDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgdXNlUG9saWN5QmFzZWRUcmFmZmljU2VsZWN0b3JzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblByb3RvY29sKS50b0JlKFwiSUtFdjJcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5pcHNlY1BvbGljaWVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy51c2VQb2xpY3lCYXNlZFRyYWZmaWNTZWxlY3RvcnMpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgSVBzZWMgY29ubmVjdGlvbiB3aXRoIElLRXYxIHByb3RvY29sXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiSVBzZWNJS0V2MVwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJpcHNlYy1pa2V2MVwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICAgIGNvbm5lY3Rpb25Qcm90b2NvbDogXCJJS0V2MVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblByb3RvY29sKS50b0JlKFwiSUtFdjFcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiVm5ldDJWbmV0IENvbm5lY3Rpb24gVHlwZVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFZuZXQyVm5ldCBjb25uZWN0aW9uIHdpdGggbWluaW1hbCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVm5ldDJWbmV0TWluaW1hbFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJ2bmV0MnZuZXQtbWluaW1hbFwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJWbmV0MlZuZXRcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy52aXJ0dWFsTmV0d29ya0dhdGV3YXkyKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuc2hhcmVkS2V5KS50b0JlKFwibXlTZWN1cmVLZXkxMjMhXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFZuZXQyVm5ldCBjb25uZWN0aW9uIHdpdGggQkdQIGVuYWJsZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJWbmV0MlZuZXRCR1BcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwidm5ldDJ2bmV0LWJncFwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcIm15U2VjdXJlS2V5MTIzIVwiLFxuICAgICAgICAgIGVuYWJsZUJncDogdHJ1ZSxcbiAgICAgICAgICByb3V0aW5nV2VpZ2h0OiA1LFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuZW5hYmxlQmdwKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMucm91dGluZ1dlaWdodCkudG9CZSg1KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJFeHByZXNzUm91dGUgQ29ubmVjdGlvbiBUeXBlXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgRXhwcmVzc1JvdXRlIGNvbm5lY3Rpb24gd2l0aCBtaW5pbWFsIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJFeHByZXNzUm91dGVNaW5pbWFsXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImVyLW1pbmltYWxcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJFeHByZXNzUm91dGVcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvZXItZ2F0ZXdheVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGVlcjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9leHByZXNzUm91dGVDaXJjdWl0cy9jaXJjdWl0XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmNvbm5lY3Rpb25UeXBlKS50b0JlKFwiRXhwcmVzc1JvdXRlXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMucGVlcikudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBFeHByZXNzUm91dGUgY29ubmVjdGlvbiB3aXRoIGF1dGhvcml6YXRpb24ga2V5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiRXhwcmVzc1JvdXRlQXV0aFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJlci1hdXRoXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiRXhwcmVzc1JvdXRlXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL2VyLWdhdGV3YXlcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBlZXI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvZXhwcmVzc1JvdXRlQ2lyY3VpdHMvY2lyY3VpdFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXV0aG9yaXphdGlvbktleTogXCJteS1hdXRoLWtleS0xMjNcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmF1dGhvcml6YXRpb25LZXkpLnRvQmUoXCJteS1hdXRoLWtleS0xMjNcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29ubmVjdGlvbiBNb2RlIENvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBjb25uZWN0aW9uIHdpdGggRGVmYXVsdCBtb2RlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiRGVmYXVsdE1vZGVcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1kZWZhdWx0XCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgY29ubmVjdGlvbk1vZGU6IFwiRGVmYXVsdFwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvbk1vZGUpLnRvQmUoXCJEZWZhdWx0XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNvbm5lY3Rpb24gd2l0aCBSZXNwb25kZXJPbmx5IG1vZGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJSZXNwb25kZXJNb2RlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNvbm4tcmVzcG9uZGVyXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgY29ubmVjdGlvbk1vZGU6IFwiUmVzcG9uZGVyT25seVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvbk1vZGUpLnRvQmUoXCJSZXNwb25kZXJPbmx5XCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNvbm5lY3Rpb24gd2l0aCBJbml0aWF0b3JPbmx5IG1vZGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJJbml0aWF0b3JNb2RlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNvbm4taW5pdGlhdG9yXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgY29ubmVjdGlvbk1vZGU6IFwiSW5pdGlhdG9yT25seVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvbk1vZGUpLnRvQmUoXCJJbml0aWF0b3JPbmx5XCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIk5BVCBSdWxlcyBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgY29ubmVjdGlvbiB3aXRoIGVncmVzcyBOQVQgcnVsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJFZ3Jlc3NOQVRcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1lZ3Jlc3MtbmF0XCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgZWdyZXNzTmF0UnVsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzEvbmF0UnVsZXMvcnVsZTFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmVncmVzc05hdFJ1bGVzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgY29ubmVjdGlvbiB3aXRoIGluZ3Jlc3MgTkFUIHJ1bGVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiSW5ncmVzc05BVFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLWluZ3Jlc3MtbmF0XCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgaW5ncmVzc05hdFJ1bGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxL25hdFJ1bGVzL3J1bGUxXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5pbmdyZXNzTmF0UnVsZXMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWdzIE1hbmFnZW1lbnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBjb25uZWN0aW9uIHdpdGggdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRhZ2dlZENvbm5lY3Rpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi10YWdnZWRcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgICAgICBjb3N0X2NlbnRlcjogXCJlbmdpbmVlcmluZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzKS50b0VxdWFsKHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBjb3N0X2NlbnRlcjogXCJlbmdpbmVlcmluZ1wiLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IGFkZGluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihzdGFjaywgXCJBZGRUYWdcIiwge1xuICAgICAgICBuYW1lOiBcImNvbm4tYWRkLXRhZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25uZWN0aW9uLmFkZFRhZyhcIm5ld1RhZ1wiLCBcIm5ld1ZhbHVlXCIpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzdXBwb3J0IHJlbW92aW5nIHRhZ3NcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJSZW1vdmVUYWdcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1yZW1vdmUtdGFnXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICAgICAgdGVtcG9yYXJ5OiBcInRydWVcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgY29ubmVjdGlvbi5yZW1vdmVUYWcoXCJ0ZW1wb3JhcnlcIik7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy50YWdzIS50ZW1wb3JhcnkpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLnRhZ3MhLmVudmlyb25tZW50KS50b0JlKFwidGVzdFwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUZXJyYWZvcm0gT3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiT3V0cHV0VGVzdFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLW91dHB1dHNcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ubmFtZU91dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLmxvY2F0aW9uT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24udGFnc091dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgY29ycmVjdCBpZCBmb3JtYXRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJJZEZvcm1hdFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLWlkXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5yZXNvdXJjZUlkKS50b0JlKGNvbm5lY3Rpb24uaWQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZlcnNpb24gQ29tcGF0aWJpbGl0eVwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgd29yayB3aXRoIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHZlcnNpb25zID0gW1wiMjAyNC0wMS0wMVwiLCBcIjIwMjQtMDUtMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIGBDb25uLSR7dmVyc2lvbi5yZXBsYWNlKC8tL2csIFwiXCIpfWAsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYGNvbm4tJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgICAgYXBpVmVyc2lvbjogdmVyc2lvbixcbiAgICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QoY29ubmVjdGlvbi5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUodmVyc2lvbik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJJZ25vcmUgQ2hhbmdlcyBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBhcHBseSBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJJZ25vcmVDaGFuZ2VzXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImNvbm4taWdub3JlXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkxOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbG9jYWxOZXR3b3JrR2F0ZXdheTI6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaGFyZWRLZXk6IFwia2V5XCIsXG4gICAgICAgICAgaWdub3JlQ2hhbmdlczogW1widGFnc1wiXSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChjb25uZWN0aW9uKS50b0JlSW5zdGFuY2VPZihWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvRXF1YWwoW1widGFnc1wiXSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgZW1wdHkgaWdub3JlIGNoYW5nZXMgYXJyYXlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJFbXB0eUlnbm9yZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJjb25uLWVtcHR5LWlnbm9yZVwiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzFcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2xvY2FsTmV0d29ya0dhdGV3YXlzL2xuZ1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICAgIGlnbm9yZUNoYW5nZXM6IFtdLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJjb25uLXN5bnRoXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiSVBzZWNcIixcbiAgICAgICAgdmlydHVhbE5ldHdvcmtHYXRld2F5MToge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGxvY2FsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICB0YWdzOiB7IHRlc3Q6IFwic3ludGhlc2lzXCIgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIGNvbm5lY3Rpb25zIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGNvbm4xID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oc3RhY2ssIFwiQ29ubjFcIiwge1xuICAgICAgICBuYW1lOiBcImNvbm4tMVwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy90ZXN0LXJnXCIsXG4gICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIklQc2VjXCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICB9LFxuICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbG9jYWxOZXR3b3JrR2F0ZXdheXMvbG5nXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBjb25uMiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKHN0YWNrLCBcIkNvbm4yXCIsIHtcbiAgICAgICAgbmFtZTogXCJjb25uLTJcIixcbiAgICAgICAgbG9jYXRpb246IFwid2VzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDEtMDFcIixcbiAgICAgICAgY29ubmVjdGlvblR5cGU6IFwiVm5ldDJWbmV0XCIsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMVwiLFxuICAgICAgICB9LFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya0dhdGV3YXlzL3ZuZzJcIixcbiAgICAgICAgfSxcbiAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChjb25uMS5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI0LTA1LTAxXCIpO1xuICAgICAgZXhwZWN0KGNvbm4yLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjQtMDEtMDFcIik7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiRFBEIFRpbWVvdXQgQ29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNvbm5lY3Rpb24gd2l0aCBjdXN0b20gRFBEIHRpbWVvdXRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJDdXN0b21EUERcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiY29ubi1kcGRcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgICBkcGRUaW1lb3V0U2Vjb25kczogNDUsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QoY29ubmVjdGlvbi5wcm9wcy5kcGRUaW1lb3V0U2Vjb25kcykudG9CZSg0NSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiR2F0ZXdheSBSZWZlcmVuY2UgU3RydWN0dXJlIFZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBJUHNlYyBjb25uZWN0aW9uIHN1Y2Nlc3NmdWxseSAoZml4IGFwcGxpZWQpXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RBcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgICAgY29uc3QgdGVzdFN0YWNrID0gbmV3IGNka3RuLlRlcnJhZm9ybVN0YWNrKHRlc3RBcHAsIFwiSVBzZWNUZXN0U3RhY2tcIik7XG5cbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgdGVzdFN0YWNrLFxuICAgICAgICBcIklQc2VjUHJvcGVydGllc1Rlc3RcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaXBzZWMtcHJvcHNcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmdcIixcbiAgICAgICAgICBjb25uZWN0aW9uVHlwZTogXCJJUHNlY1wiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsb2NhbE5ldHdvcmtHYXRld2F5Mjoge1xuICAgICAgICAgICAgaWQ6IFwiL3N1YnNjcmlwdGlvbnMvc3ViLWlkL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9sb2NhbE5ldHdvcmtHYXRld2F5cy9sbmdcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNoYXJlZEtleTogXCJrZXlcIixcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFZlcmlmeSB0aGUgY29ubmVjdGlvbiB3YXMgY3JlYXRlZCBzdWNjZXNzZnVsbHlcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uKS50b0JlSW5zdGFuY2VPZihWaXJ0dWFsTmV0d29ya0dhdGV3YXlDb25uZWN0aW9uKTtcbiAgICAgIGV4cGVjdChjb25uZWN0aW9uLnByb3BzLmNvbm5lY3Rpb25UeXBlKS50b0JlKFwiSVBzZWNcIik7XG5cbiAgICAgIC8vIFN5bnRoZXNpemUgdG8gZW5zdXJlIG5vIGVycm9yc1xuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHRlc3RTdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgVm5ldDJWbmV0IGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IChmaXggYXBwbGllZClcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdGVzdEFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgICBjb25zdCB0ZXN0U3RhY2sgPSBuZXcgY2RrdG4uVGVycmFmb3JtU3RhY2sodGVzdEFwcCwgXCJWbmV0MlZuZXRUZXN0U3RhY2tcIik7XG5cbiAgICAgIGNvbnN0IGNvbm5lY3Rpb24gPSBuZXcgVmlydHVhbE5ldHdvcmtHYXRld2F5Q29ubmVjdGlvbihcbiAgICAgICAgdGVzdFN0YWNrLFxuICAgICAgICBcIlZuZXQyVm5ldFByb3BlcnRpZXNUZXN0XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInZuZXQydm5ldC1wcm9wc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIlZuZXQyVm5ldFwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy92bmcxXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0dhdGV3YXkyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3JrR2F0ZXdheXMvdm5nMlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hhcmVkS2V5OiBcImtleVwiLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgLy8gVmVyaWZ5IHRoZSBjb25uZWN0aW9uIHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJWbmV0MlZuZXRcIik7XG5cbiAgICAgIC8vIFN5bnRoZXNpemUgdG8gZW5zdXJlIG5vIGVycm9yc1xuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHRlc3RTdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgRXhwcmVzc1JvdXRlIGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5IChmaXggYXBwbGllZClcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdGVzdEFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgICBjb25zdCB0ZXN0U3RhY2sgPSBuZXcgY2RrdG4uVGVycmFmb3JtU3RhY2soXG4gICAgICAgIHRlc3RBcHAsXG4gICAgICAgIFwiRXhwcmVzc1JvdXRlVGVzdFN0YWNrXCIsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gbmV3IFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24oXG4gICAgICAgIHRlc3RTdGFjayxcbiAgICAgICAgXCJFeHByZXNzUm91dGVQcm9wZXJ0aWVzVGVzdFwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJlci1wcm9wc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICAgIGNvbm5lY3Rpb25UeXBlOiBcIkV4cHJlc3NSb3V0ZVwiLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrR2F0ZXdheTE6IHtcbiAgICAgICAgICAgIGlkOiBcIi9zdWJzY3JpcHRpb25zL3N1Yi1pZC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtHYXRld2F5cy9lci1nYXRld2F5XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwZWVyOiB7XG4gICAgICAgICAgICBpZDogXCIvc3Vic2NyaXB0aW9ucy9zdWItaWQvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2V4cHJlc3NSb3V0ZUNpcmN1aXRzL2NpcmN1aXRcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgLy8gVmVyaWZ5IHRoZSBjb25uZWN0aW9uIHdhcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24pLnRvQmVJbnN0YW5jZU9mKFZpcnR1YWxOZXR3b3JrR2F0ZXdheUNvbm5lY3Rpb24pO1xuICAgICAgZXhwZWN0KGNvbm5lY3Rpb24ucHJvcHMuY29ubmVjdGlvblR5cGUpLnRvQmUoXCJFeHByZXNzUm91dGVcIik7XG5cbiAgICAgIC8vIFN5bnRoZXNpemUgdG8gZW5zdXJlIG5vIGVycm9yc1xuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHRlc3RTdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* - Full backward compatibility
|
|
17
17
|
* - JSII compliance for multi-language support
|
|
18
18
|
*/
|
|
19
|
-
import * as
|
|
19
|
+
import * as cdktn from "cdktn";
|
|
20
20
|
import { Construct } from "constructs";
|
|
21
21
|
import { ConnectivityGroupItem, Hub } from "./connectivity-configuration-schemas";
|
|
22
22
|
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
@@ -137,9 +137,9 @@ export declare class ConnectivityConfiguration extends AzapiResource {
|
|
|
137
137
|
* The input properties for this Connectivity Configuration instance
|
|
138
138
|
*/
|
|
139
139
|
readonly props: ConnectivityConfigurationProps;
|
|
140
|
-
readonly idOutput:
|
|
141
|
-
readonly nameOutput:
|
|
142
|
-
readonly provisioningStateOutput:
|
|
140
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
141
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
142
|
+
readonly provisioningStateOutput: cdktn.TerraformOutput;
|
|
143
143
|
readonly resourceName: string;
|
|
144
144
|
/**
|
|
145
145
|
* Creates a new Azure Virtual Network Manager Connectivity Configuration using the AzapiResource framework
|
|
@@ -21,7 +21,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
21
21
|
* - Full backward compatibility
|
|
22
22
|
* - JSII compliance for multi-language support
|
|
23
23
|
*/
|
|
24
|
-
const
|
|
24
|
+
const cdktn = require("cdktn");
|
|
25
25
|
const connectivity_configuration_schemas_1 = require("./connectivity-configuration-schemas");
|
|
26
26
|
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
27
27
|
/**
|
|
@@ -80,15 +80,15 @@ class ConnectivityConfiguration extends azapi_resource_1.AzapiResource {
|
|
|
80
80
|
// Extract properties from the AZAPI resource outputs using Terraform interpolation
|
|
81
81
|
this.resourceName = `\${${this.terraformResource.fqn}.name}`;
|
|
82
82
|
// Create Terraform outputs for easy access and referencing from other resources
|
|
83
|
-
this.idOutput = new
|
|
83
|
+
this.idOutput = new cdktn.TerraformOutput(this, "id", {
|
|
84
84
|
value: this.id,
|
|
85
85
|
description: "The ID of the Connectivity Configuration",
|
|
86
86
|
});
|
|
87
|
-
this.nameOutput = new
|
|
87
|
+
this.nameOutput = new cdktn.TerraformOutput(this, "name", {
|
|
88
88
|
value: this.resourceName,
|
|
89
89
|
description: "The name of the Connectivity Configuration",
|
|
90
90
|
});
|
|
91
|
-
this.provisioningStateOutput = new
|
|
91
|
+
this.provisioningStateOutput = new cdktn.TerraformOutput(this, "provisioningState", {
|
|
92
92
|
value: `\${${this.terraformResource.fqn}.output.properties.provisioningState}`,
|
|
93
93
|
description: "The provisioning state of the Connectivity Configuration",
|
|
94
94
|
});
|
|
@@ -199,8 +199,8 @@ class ConnectivityConfiguration extends azapi_resource_1.AzapiResource {
|
|
|
199
199
|
}
|
|
200
200
|
exports.ConnectivityConfiguration = ConnectivityConfiguration;
|
|
201
201
|
_a = JSII_RTTI_SYMBOL_1;
|
|
202
|
-
ConnectivityConfiguration[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ConnectivityConfiguration", version: "
|
|
202
|
+
ConnectivityConfiguration[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ConnectivityConfiguration", version: "2.2.0" };
|
|
203
203
|
(() => {
|
|
204
204
|
azapi_resource_1.AzapiResource.registerSchemas(connectivity_configuration_schemas_1.CONNECTIVITY_CONFIGURATION_TYPE, connectivity_configuration_schemas_1.ALL_CONNECTIVITY_CONFIGURATION_VERSIONS);
|
|
205
205
|
})();
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGl2aXR5LWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtdmlydHVhbG5ldHdvcmttYW5hZ2VyL2xpYi9jb25uZWN0aXZpdHktY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILCtCQUErQjtBQUUvQiw2RkFLOEM7QUFDOUMsOEVBR21EO0FBa0ZuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLDhCQUFhO0lBcUIxRDs7Ozs7O09BTUc7SUFDSCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFxQztRQUVyQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUU3RCxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxXQUFXLEVBQUUsMENBQTBDO1NBQ3hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLFdBQVcsRUFBRSw0Q0FBNEM7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDdEQs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Q0FBQztJQUNkLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsMkRBQTJEO0lBQzNELGdGQUFnRjtJQUVoRjs7T0FFRztJQUNILElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyx1Q0FBdUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYseUJBQXlCO0lBQ3pCLGdGQUFnRjtJQUVoRjs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDOUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTthQUN6QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUFuTEgsOERBb0xDOzs7QUFuTEM7SUFDRSw4QkFBYSxDQUFDLGVBQWUsQ0FDM0Isb0VBQStCLEVBQy9CLDRFQUF1QyxDQUN4QyxDQUFDO0FBQ0osQ0FBQyxHQUFBLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGRlZmluaW5nIG5ldHdvcmsgdG9wb2xvZ3kgKG1lc2ggb3IgaHViLWFuZC1zcG9rZSlcbiAqIGZvciB2aXJ0dWFsIG5ldHdvcmtzIG1hbmFnZWQgYnkgQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0xMS0wMSAoTWFpbnRlbmFuY2UpXG4gKiAtIDIwMjQtMDUtMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIFN1cHBvcnQgZm9yIG1lc2ggYW5kIGh1Yi1hbmQtc3Bva2UgdG9wb2xvZ2llc1xuICogLSBGdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIC0gSlNJSSBjb21wbGlhbmNlIGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG4gKi9cblxuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQUxMX0NPTk5FQ1RJVklUWV9DT05GSUdVUkFUSU9OX1ZFUlNJT05TLFxuICBDT05ORUNUSVZJVFlfQ09ORklHVVJBVElPTl9UWVBFLFxuICBDb25uZWN0aXZpdHlHcm91cEl0ZW0sXG4gIEh1Yixcbn0gZnJvbSBcIi4vY29ubmVjdGl2aXR5LWNvbmZpZ3VyYXRpb24tc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgQ29ubmVjdGl2aXR5IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogUmVzb3VyY2UgSUQgb2YgdGhlIHBhcmVudCBOZXR3b3JrIE1hbmFnZXJcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL25ldHdvcmtNYW5hZ2Vycy92bm1cIlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya01hbmFnZXJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgY29ubmVjdGl2aXR5IGNvbmZpZ3VyYXRpb25cbiAgICogQGV4YW1wbGUgXCJIdWItYW5kLXNwb2tlIHRvcG9sb2d5IGZvciBwcm9kdWN0aW9uIHdvcmtsb2Fkc1wiXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29ubmVjdGl2aXR5IHRvcG9sb2d5IHR5cGVcbiAgICogLSBIdWJBbmRTcG9rZTogQ2VudHJhbCBodWIgd2l0aCBzcG9rZSBWTmV0c1xuICAgKiAtIE1lc2g6IEFsbCBWTmV0cyBjYW4gY29tbXVuaWNhdGUgZGlyZWN0bHlcbiAgICogQGV4YW1wbGUgXCJIdWJBbmRTcG9rZVwiXG4gICAqIEBleGFtcGxlIFwiTWVzaFwiXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aXZpdHlUb3BvbG9neTogXCJIdWJBbmRTcG9rZVwiIHwgXCJNZXNoXCI7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmsgZ3JvdXBzIHRvIGFwcGx5IHRoaXMgY29uZmlndXJhdGlvbiB0b1xuICAgKiBFYWNoIGl0ZW0gc3BlY2lmaWVzIGEgbmV0d29yayBncm91cCBhbmQgaG93IGl0IHNob3VsZCBjb25uZWN0XG4gICAqL1xuICByZWFkb25seSBhcHBsaWVzVG9Hcm91cHM6IENvbm5lY3Rpdml0eUdyb3VwSXRlbVtdO1xuXG4gIC8qKlxuICAgKiBIdWIgVk5ldHMgZm9yIGh1Yi1hbmQtc3Bva2UgdG9wb2xvZ3lcbiAgICogUmVxdWlyZWQgd2hlbiBjb25uZWN0aXZpdHlUb3BvbG9neSBpcyBcIkh1YkFuZFNwb2tlXCJcbiAgICogQGV4YW1wbGUgW3sgcmVzb3VyY2VJZDogXCIvc3Vic2NyaXB0aW9ucy8uLi4vdmlydHVhbE5ldHdvcmtzL2h1Yi12bmV0XCIsIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3NcIiB9XVxuICAgKi9cbiAgcmVhZG9ubHkgaHVicz86IEh1YltdO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZ2xvYmFsIG1lc2ggY29ubmVjdGl2aXR5XG4gICAqIEFsbG93cyBtZXNoIGNvbm5lY3Rpdml0eSBhY3Jvc3MgcmVnaW9uc1xuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNHbG9iYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWxldGUgZXhpc3RpbmcgcGVlcmluZ3Mgd2hlbiBhcHBseWluZyB0aGlzIGNvbmZpZ3VyYXRpb25cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUV4aXN0aW5nUGVlcmluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZlY3ljbGUgcnVsZXMgdG8gaWdub3JlIGNoYW5nZXNcbiAgICogQGV4YW1wbGUgW1widGFnc1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBjb25uZWN0aXZpdHlUb3BvbG9neTogc3RyaW5nO1xuICByZWFkb25seSBhcHBsaWVzVG9Hcm91cHM6IENvbm5lY3Rpdml0eUdyb3VwSXRlbVtdO1xuICByZWFkb25seSBodWJzPzogSHViW107XG4gIHJlYWRvbmx5IGlzR2xvYmFsPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVsZXRlRXhpc3RpbmdQZWVyaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIEFQSSBjYWxsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb25Cb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogQ29ubmVjdGl2aXR5Q29uZmlndXJhdGlvblByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgQ29ubmVjdGl2aXR5IENvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb25cbiAqXG4gKiBDb25uZWN0aXZpdHkgY29uZmlndXJhdGlvbnMgZGVmaW5lIHRoZSBuZXR3b3JrIHRvcG9sb2d5IChtZXNoIG9yIGh1Yi1hbmQtc3Bva2UpIGZvclxuICogdmlydHVhbCBuZXR3b3Jrcy4gVGhleSBlbmFibGUgYXV0b21hdGVkIHBlZXJpbmcgbWFuYWdlbWVudCBhdCBzY2FsZSBhbmQgc3VwcG9ydCBib3RoXG4gKiByZWdpb25hbCBhbmQgZ2xvYmFsIGNvbm5lY3Rpdml0eSBzY2VuYXJpb3MuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEh1Yi1hbmQtc3Bva2UgdG9wb2xvZ3k6XG4gKiBjb25zdCBodWJTcG9rZUNvbmZpZyA9IG5ldyBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uKHRoaXMsIFwiaHViLXNwb2tlXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWh1Yi1zcG9rZVwiLFxuICogICBuZXR3b3JrTWFuYWdlcklkOiBuZXR3b3JrTWFuYWdlci5pZCxcbiAqICAgZGVzY3JpcHRpb246IFwiSHViLWFuZC1zcG9rZSBmb3IgcHJvZHVjdGlvblwiLFxuICogICBjb25uZWN0aXZpdHlUb3BvbG9neTogXCJIdWJBbmRTcG9rZVwiLFxuICogICBhcHBsaWVzVG9Hcm91cHM6IFt7XG4gKiAgICAgbmV0d29ya0dyb3VwSWQ6IHByb2R1Y3Rpb25Hcm91cC5pZCxcbiAqICAgICBncm91cENvbm5lY3Rpdml0eTogXCJOb25lXCIsXG4gKiAgICAgdXNlSHViR2F0ZXdheTogdHJ1ZVxuICogICB9XSxcbiAqICAgaHViczogW3tcbiAqICAgICByZXNvdXJjZUlkOiBodWJWbmV0LmlkLFxuICogICAgIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3NcIlxuICogICB9XVxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIE1lc2ggdG9wb2xvZ3k6XG4gKiBjb25zdCBtZXNoQ29uZmlnID0gbmV3IENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb24odGhpcywgXCJtZXNoXCIsIHtcbiAqICAgbmFtZTogXCJkZXZlbG9wbWVudC1tZXNoXCIsXG4gKiAgIG5ldHdvcmtNYW5hZ2VySWQ6IG5ldHdvcmtNYW5hZ2VyLmlkLFxuICogICBkZXNjcmlwdGlvbjogXCJNZXNoIGZvciBkZXZlbG9wbWVudCBWTmV0c1wiLFxuICogICBjb25uZWN0aXZpdHlUb3BvbG9neTogXCJNZXNoXCIsXG4gKiAgIGFwcGxpZXNUb0dyb3VwczogW3tcbiAqICAgICBuZXR3b3JrR3JvdXBJZDogZGV2R3JvdXAuaWQsXG4gKiAgICAgZ3JvdXBDb25uZWN0aXZpdHk6IFwiRGlyZWN0bHlDb25uZWN0ZWRcIixcbiAqICAgICBpc0dsb2JhbDogZmFsc2VcbiAqICAgfV0sXG4gKiAgIGlzR2xvYmFsOiBmYWxzZVxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIENPTk5FQ1RJVklUWV9DT05GSUdVUkFUSU9OX1RZUEUsXG4gICAgICBBTExfQ09OTkVDVElWSVRZX0NPTkZJR1VSQVRJT05fVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvbiBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvblxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gdGhlIEFaQVBJIHJlc291cmNlIG91dHB1dHMgdXNpbmcgVGVycmFmb3JtIGludGVycG9sYXRpb25cbiAgICB0aGlzLnJlc291cmNlTmFtZSA9IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gO1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmcgZnJvbSBvdGhlciByZXNvdXJjZXNcbiAgICB0aGlzLmlkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImlkXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIElEIG9mIHRoZSBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvblwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IHRoaXMucmVzb3VyY2VOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByb3Zpc2lvbmluZ1N0YXRlXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBwcm92aXNpb25pbmcgc3RhdGUgb2YgdGhlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uXCIsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEcyB0byBtYXRjaCBuYW1pbmcgY29udmVudGlvblxuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMucHJvdmlzaW9uaW5nU3RhdGVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJwcm92aXNpb25pbmdTdGF0ZVwiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHBhcmVudCByZXNvdXJjZSBJRCBmb3IgdGhlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uXG4gICAqIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9ucyBhcmUgc2NvcGVkIHRvIE5ldHdvcmsgTWFuYWdlcnNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb25Qcm9wcztcbiAgICByZXR1cm4gdHlwZWRQcm9wcy5uZXR3b3JrTWFuYWdlcklkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMDUtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ09OTkVDVElWSVRZX0NPTkZJR1VSQVRJT05fVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb25Qcm9wcztcblxuICAgIC8vIFByb2Nlc3MgYXBwbGllc1RvR3JvdXBzIHRvIGVuc3VyZSBncm91cENvbm5lY3Rpdml0eSBpcyBzZXRcbiAgICAvLyBDb252ZXJ0IGJvb2xlYW5zIHRvIHN0cmluZ3MgdG8gYXZvaWQgQ0RLVEYgZmlsdGVyaW5nIG91dCBmYWxzZSB2YWx1ZXNcbiAgICBjb25zdCBwcm9jZXNzZWRBcHBsaWVzVG9Hcm91cHMgPSB0eXBlZFByb3BzLmFwcGxpZXNUb0dyb3Vwcy5tYXAoKGdyb3VwKSA9PiB7XG4gICAgICBjb25zdCBwcm9jZXNzZWRHcm91cDogYW55ID0ge1xuICAgICAgICBuZXR3b3JrR3JvdXBJZDogZ3JvdXAubmV0d29ya0dyb3VwSWQsXG4gICAgICAgIGdyb3VwQ29ubmVjdGl2aXR5OiBncm91cC5ncm91cENvbm5lY3Rpdml0eSB8fCBcIk5vbmVcIixcbiAgICAgIH07XG4gICAgICAvLyBDb252ZXJ0IGJvb2xlYW5zIHRvIHN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIEF6dXJlIEFQSVxuICAgICAgaWYgKGdyb3VwLmlzR2xvYmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvY2Vzc2VkR3JvdXAuaXNHbG9iYWwgPSBncm91cC5pc0dsb2JhbCA/IFwiVHJ1ZVwiIDogXCJGYWxzZVwiO1xuICAgICAgfVxuICAgICAgaWYgKGdyb3VwLnVzZUh1YkdhdGV3YXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9jZXNzZWRHcm91cC51c2VIdWJHYXRld2F5ID0gZ3JvdXAudXNlSHViR2F0ZXdheSA/IFwiVHJ1ZVwiIDogXCJGYWxzZVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb2Nlc3NlZEdyb3VwO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYm9keTogYW55ID0ge1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBkZXNjcmlwdGlvbjogdHlwZWRQcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgY29ubmVjdGl2aXR5VG9wb2xvZ3k6IHR5cGVkUHJvcHMuY29ubmVjdGl2aXR5VG9wb2xvZ3ksXG4gICAgICAgIGFwcGxpZXNUb0dyb3VwczogcHJvY2Vzc2VkQXBwbGllc1RvR3JvdXBzLFxuICAgICAgICBodWJzOiB0eXBlZFByb3BzLmh1YnMsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IHRvcC1sZXZlbCBib29sZWFucyB0byBzdHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciBBenVyZSBBUElcbiAgICBpZiAodHlwZWRQcm9wcy5pc0dsb2JhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuaXNHbG9iYWwgPSB0eXBlZFByb3BzLmlzR2xvYmFsID8gXCJUcnVlXCIgOiBcIkZhbHNlXCI7XG4gICAgfVxuICAgIGlmICh0eXBlZFByb3BzLmRlbGV0ZUV4aXN0aW5nUGVlcmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuZGVsZXRlRXhpc3RpbmdQZWVyaW5nID0gdHlwZWRQcm9wcy5kZWxldGVFeGlzdGluZ1BlZXJpbmdcbiAgICAgICAgPyBcIlRydWVcIlxuICAgICAgICA6IFwiRmFsc2VcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBDT05ORUNUSVZJVFkgQ09ORklHVVJBVElPTiBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGdldCBwcm92aXNpb25pbmdTdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjb25uZWN0aXZpdHkgdG9wb2xvZ3kgdHlwZVxuICAgKi9cbiAgcHVibGljIGdldCB0b3BvbG9neSgpOiBcIkh1YkFuZFNwb2tlXCIgfCBcIk1lc2hcIiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29ubmVjdGl2aXR5VG9wb2xvZ3k7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzIGlmIHNwZWNpZmllZCBpbiBwcm9wc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlJZ25vcmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMgJiYgdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGl2aXR5LWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtdmlydHVhbG5ldHdvcmttYW5hZ2VyL2xpYi9jb25uZWN0aXZpdHktY29uZmlndXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUVILCtCQUErQjtBQUUvQiw2RkFLOEM7QUFDOUMsOEVBR21EO0FBa0ZuRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Q0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLDhCQUFhO0lBcUIxRDs7Ozs7O09BTUc7SUFDSCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFxQztRQUVyQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUU3RCxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxXQUFXLEVBQUUsMENBQTBDO1NBQ3hELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLFdBQVcsRUFBRSw0Q0FBNEM7U0FDMUQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDdEQsSUFBSSxFQUNKLG1CQUFtQixFQUNuQjtZQUNFLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLHVDQUF1QztZQUM5RSxXQUFXLEVBQUUsMERBQTBEO1NBQ3hFLENBQ0YsQ0FBQztRQUVGLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFcEUsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsK0NBQStDO0lBQy9DLGdGQUFnRjtJQUVoRjs7O09BR0c7SUFDTyxlQUFlLENBQUMsS0FBVTtRQUNsQyxNQUFNLFVBQVUsR0FBRyxLQUF1QyxDQUFDO1FBQzNELE9BQU8sVUFBVSxDQUFDLGdCQUFnQixDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNPLGNBQWM7UUFDdEIsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ08sWUFBWTtRQUNwQixPQUFPLG9FQUErQixDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNPLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ08sa0JBQWtCLENBQUMsS0FBVTtRQUNyQyxNQUFNLFVBQVUsR0FBRyxLQUF1QyxDQUFDO1FBRTNELDZEQUE2RDtRQUM3RCx3RUFBd0U7UUFDeEUsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hFLE1BQU0sY0FBYyxHQUFRO2dCQUMxQixjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQ3BDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxNQUFNO2FBQ3JELENBQUM7WUFDRiwyREFBMkQ7WUFDM0QsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNqQyxjQUFjLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzlELENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3RDLGNBQWMsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDeEUsQ0FBQztZQUNELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQVE7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVztnQkFDbkMsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLG9CQUFvQjtnQkFDckQsZUFBZSxFQUFFLHdCQUF3QjtnQkFDekMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO2FBQ3RCO1NBQ0YsQ0FBQztRQUVGLHFFQUFxRTtRQUNyRSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksVUFBVSxDQUFDLHFCQUFxQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEdBQUcsVUFBVSxDQUFDLHFCQUFxQjtnQkFDdEUsQ0FBQyxDQUFDLE1BQU07Z0JBQ1IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsMkRBQTJEO0lBQzNELGdGQUFnRjtJQUVoRjs7T0FFRztJQUNILElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyx1Q0FBdUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYseUJBQXlCO0lBQ3pCLGdGQUFnRjtJQUVoRjs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDOUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTthQUN6QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUFuTEgsOERBb0xDOzs7QUFuTEM7SUFDRSw4QkFBYSxDQUFDLGVBQWUsQ0FDM0Isb0VBQStCLEVBQy9CLDRFQUF1QyxDQUN4QyxDQUFDO0FBQ0osQ0FBQyxHQUFBLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGRlZmluaW5nIG5ldHdvcmsgdG9wb2xvZ3kgKG1lc2ggb3IgaHViLWFuZC1zcG9rZSlcbiAqIGZvciB2aXJ0dWFsIG5ldHdvcmtzIG1hbmFnZWQgYnkgQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0xMS0wMSAoTWFpbnRlbmFuY2UpXG4gKiAtIDIwMjQtMDUtMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIFN1cHBvcnQgZm9yIG1lc2ggYW5kIGh1Yi1hbmQtc3Bva2UgdG9wb2xvZ2llc1xuICogLSBGdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAqIC0gSlNJSSBjb21wbGlhbmNlIGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG4gKi9cblxuaW1wb3J0ICogYXMgY2RrdG4gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQUxMX0NPTk5FQ1RJVklUWV9DT05GSUdVUkFUSU9OX1ZFUlNJT05TLFxuICBDT05ORUNUSVZJVFlfQ09ORklHVVJBVElPTl9UWVBFLFxuICBDb25uZWN0aXZpdHlHcm91cEl0ZW0sXG4gIEh1Yixcbn0gZnJvbSBcIi4vY29ubmVjdGl2aXR5LWNvbmZpZ3VyYXRpb24tc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgQ29ubmVjdGl2aXR5IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogUmVzb3VyY2UgSUQgb2YgdGhlIHBhcmVudCBOZXR3b3JrIE1hbmFnZXJcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL25ldHdvcmtNYW5hZ2Vycy92bm1cIlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya01hbmFnZXJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBkZXNjcmlwdGlvbiBvZiB0aGUgY29ubmVjdGl2aXR5IGNvbmZpZ3VyYXRpb25cbiAgICogQGV4YW1wbGUgXCJIdWItYW5kLXNwb2tlIHRvcG9sb2d5IGZvciBwcm9kdWN0aW9uIHdvcmtsb2Fkc1wiXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29ubmVjdGl2aXR5IHRvcG9sb2d5IHR5cGVcbiAgICogLSBIdWJBbmRTcG9rZTogQ2VudHJhbCBodWIgd2l0aCBzcG9rZSBWTmV0c1xuICAgKiAtIE1lc2g6IEFsbCBWTmV0cyBjYW4gY29tbXVuaWNhdGUgZGlyZWN0bHlcbiAgICogQGV4YW1wbGUgXCJIdWJBbmRTcG9rZVwiXG4gICAqIEBleGFtcGxlIFwiTWVzaFwiXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aXZpdHlUb3BvbG9neTogXCJIdWJBbmRTcG9rZVwiIHwgXCJNZXNoXCI7XG5cbiAgLyoqXG4gICAqIE5ldHdvcmsgZ3JvdXBzIHRvIGFwcGx5IHRoaXMgY29uZmlndXJhdGlvbiB0b1xuICAgKiBFYWNoIGl0ZW0gc3BlY2lmaWVzIGEgbmV0d29yayBncm91cCBhbmQgaG93IGl0IHNob3VsZCBjb25uZWN0XG4gICAqL1xuICByZWFkb25seSBhcHBsaWVzVG9Hcm91cHM6IENvbm5lY3Rpdml0eUdyb3VwSXRlbVtdO1xuXG4gIC8qKlxuICAgKiBIdWIgVk5ldHMgZm9yIGh1Yi1hbmQtc3Bva2UgdG9wb2xvZ3lcbiAgICogUmVxdWlyZWQgd2hlbiBjb25uZWN0aXZpdHlUb3BvbG9neSBpcyBcIkh1YkFuZFNwb2tlXCJcbiAgICogQGV4YW1wbGUgW3sgcmVzb3VyY2VJZDogXCIvc3Vic2NyaXB0aW9ucy8uLi4vdmlydHVhbE5ldHdvcmtzL2h1Yi12bmV0XCIsIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3NcIiB9XVxuICAgKi9cbiAgcmVhZG9ubHkgaHVicz86IEh1YltdO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZ2xvYmFsIG1lc2ggY29ubmVjdGl2aXR5XG4gICAqIEFsbG93cyBtZXNoIGNvbm5lY3Rpdml0eSBhY3Jvc3MgcmVnaW9uc1xuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNHbG9iYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWxldGUgZXhpc3RpbmcgcGVlcmluZ3Mgd2hlbiBhcHBseWluZyB0aGlzIGNvbmZpZ3VyYXRpb25cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlbGV0ZUV4aXN0aW5nUGVlcmluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZlY3ljbGUgcnVsZXMgdG8gaWdub3JlIGNoYW5nZXNcbiAgICogQGV4YW1wbGUgW1widGFnc1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBjb25uZWN0aXZpdHlUb3BvbG9neTogc3RyaW5nO1xuICByZWFkb25seSBhcHBsaWVzVG9Hcm91cHM6IENvbm5lY3Rpdml0eUdyb3VwSXRlbVtdO1xuICByZWFkb25seSBodWJzPzogSHViW107XG4gIHJlYWRvbmx5IGlzR2xvYmFsPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVsZXRlRXhpc3RpbmdQZWVyaW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIEFQSSBjYWxsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb25Cb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogQ29ubmVjdGl2aXR5Q29uZmlndXJhdGlvblByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgQ29ubmVjdGl2aXR5IENvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb25cbiAqXG4gKiBDb25uZWN0aXZpdHkgY29uZmlndXJhdGlvbnMgZGVmaW5lIHRoZSBuZXR3b3JrIHRvcG9sb2d5IChtZXNoIG9yIGh1Yi1hbmQtc3Bva2UpIGZvclxuICogdmlydHVhbCBuZXR3b3Jrcy4gVGhleSBlbmFibGUgYXV0b21hdGVkIHBlZXJpbmcgbWFuYWdlbWVudCBhdCBzY2FsZSBhbmQgc3VwcG9ydCBib3RoXG4gKiByZWdpb25hbCBhbmQgZ2xvYmFsIGNvbm5lY3Rpdml0eSBzY2VuYXJpb3MuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEh1Yi1hbmQtc3Bva2UgdG9wb2xvZ3k6XG4gKiBjb25zdCBodWJTcG9rZUNvbmZpZyA9IG5ldyBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uKHRoaXMsIFwiaHViLXNwb2tlXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWh1Yi1zcG9rZVwiLFxuICogICBuZXR3b3JrTWFuYWdlcklkOiBuZXR3b3JrTWFuYWdlci5pZCxcbiAqICAgZGVzY3JpcHRpb246IFwiSHViLWFuZC1zcG9rZSBmb3IgcHJvZHVjdGlvblwiLFxuICogICBjb25uZWN0aXZpdHlUb3BvbG9neTogXCJIdWJBbmRTcG9rZVwiLFxuICogICBhcHBsaWVzVG9Hcm91cHM6IFt7XG4gKiAgICAgbmV0d29ya0dyb3VwSWQ6IHByb2R1Y3Rpb25Hcm91cC5pZCxcbiAqICAgICBncm91cENvbm5lY3Rpdml0eTogXCJOb25lXCIsXG4gKiAgICAgdXNlSHViR2F0ZXdheTogdHJ1ZVxuICogICB9XSxcbiAqICAgaHViczogW3tcbiAqICAgICByZXNvdXJjZUlkOiBodWJWbmV0LmlkLFxuICogICAgIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuTmV0d29yay92aXJ0dWFsTmV0d29ya3NcIlxuICogICB9XVxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIE1lc2ggdG9wb2xvZ3k6XG4gKiBjb25zdCBtZXNoQ29uZmlnID0gbmV3IENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb24odGhpcywgXCJtZXNoXCIsIHtcbiAqICAgbmFtZTogXCJkZXZlbG9wbWVudC1tZXNoXCIsXG4gKiAgIG5ldHdvcmtNYW5hZ2VySWQ6IG5ldHdvcmtNYW5hZ2VyLmlkLFxuICogICBkZXNjcmlwdGlvbjogXCJNZXNoIGZvciBkZXZlbG9wbWVudCBWTmV0c1wiLFxuICogICBjb25uZWN0aXZpdHlUb3BvbG9neTogXCJNZXNoXCIsXG4gKiAgIGFwcGxpZXNUb0dyb3VwczogW3tcbiAqICAgICBuZXR3b3JrR3JvdXBJZDogZGV2R3JvdXAuaWQsXG4gKiAgICAgZ3JvdXBDb25uZWN0aXZpdHk6IFwiRGlyZWN0bHlDb25uZWN0ZWRcIixcbiAqICAgICBpc0dsb2JhbDogZmFsc2VcbiAqICAgfV0sXG4gKiAgIGlzR2xvYmFsOiBmYWxzZVxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIENPTk5FQ1RJVklUWV9DT05GSUdVUkFUSU9OX1RZUEUsXG4gICAgICBBTExfQ09OTkVDVElWSVRZX0NPTkZJR1VSQVRJT05fVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvbiBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RuLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0bi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uIHVzaW5nIHRoZSBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvblxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDb25uZWN0aXZpdHlDb25maWd1cmF0aW9uUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gdGhlIEFaQVBJIHJlc291cmNlIG91dHB1dHMgdXNpbmcgVGVycmFmb3JtIGludGVycG9sYXRpb25cbiAgICB0aGlzLnJlc291cmNlTmFtZSA9IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gO1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmcgZnJvbSBvdGhlciByZXNvdXJjZXNcbiAgICB0aGlzLmlkT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImlkXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIElEIG9mIHRoZSBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvblwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IHRoaXMucmVzb3VyY2VOYW1lLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0ID0gbmV3IGNka3RuLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByb3Zpc2lvbmluZ1N0YXRlXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBwcm92aXNpb25pbmcgc3RhdGUgb2YgdGhlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uXCIsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEcyB0byBtYXRjaCBuYW1pbmcgY29udmVudGlvblxuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMucHJvdmlzaW9uaW5nU3RhdGVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJwcm92aXNpb25pbmdTdGF0ZVwiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHBhcmVudCByZXNvdXJjZSBJRCBmb3IgdGhlIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9uXG4gICAqIENvbm5lY3Rpdml0eSBDb25maWd1cmF0aW9ucyBhcmUgc2NvcGVkIHRvIE5ldHdvcmsgTWFuYWdlcnNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb25Qcm9wcztcbiAgICByZXR1cm4gdHlwZWRQcm9wcy5uZXR3b3JrTWFuYWdlcklkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMDUtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvbnNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ09OTkVDVElWSVRZX0NPTkZJR1VSQVRJT05fVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIENvbm5lY3Rpdml0eUNvbmZpZ3VyYXRpb25Qcm9wcztcblxuICAgIC8vIFByb2Nlc3MgYXBwbGllc1RvR3JvdXBzIHRvIGVuc3VyZSBncm91cENvbm5lY3Rpdml0eSBpcyBzZXRcbiAgICAvLyBDb252ZXJ0IGJvb2xlYW5zIHRvIHN0cmluZ3MgdG8gYXZvaWQgQ0RLVEYgZmlsdGVyaW5nIG91dCBmYWxzZSB2YWx1ZXNcbiAgICBjb25zdCBwcm9jZXNzZWRBcHBsaWVzVG9Hcm91cHMgPSB0eXBlZFByb3BzLmFwcGxpZXNUb0dyb3Vwcy5tYXAoKGdyb3VwKSA9PiB7XG4gICAgICBjb25zdCBwcm9jZXNzZWRHcm91cDogYW55ID0ge1xuICAgICAgICBuZXR3b3JrR3JvdXBJZDogZ3JvdXAubmV0d29ya0dyb3VwSWQsXG4gICAgICAgIGdyb3VwQ29ubmVjdGl2aXR5OiBncm91cC5ncm91cENvbm5lY3Rpdml0eSB8fCBcIk5vbmVcIixcbiAgICAgIH07XG4gICAgICAvLyBDb252ZXJ0IGJvb2xlYW5zIHRvIHN0cmluZyByZXByZXNlbnRhdGlvbnMgZm9yIEF6dXJlIEFQSVxuICAgICAgaWYgKGdyb3VwLmlzR2xvYmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvY2Vzc2VkR3JvdXAuaXNHbG9iYWwgPSBncm91cC5pc0dsb2JhbCA/IFwiVHJ1ZVwiIDogXCJGYWxzZVwiO1xuICAgICAgfVxuICAgICAgaWYgKGdyb3VwLnVzZUh1YkdhdGV3YXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwcm9jZXNzZWRHcm91cC51c2VIdWJHYXRld2F5ID0gZ3JvdXAudXNlSHViR2F0ZXdheSA/IFwiVHJ1ZVwiIDogXCJGYWxzZVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHByb2Nlc3NlZEdyb3VwO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYm9keTogYW55ID0ge1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBkZXNjcmlwdGlvbjogdHlwZWRQcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgY29ubmVjdGl2aXR5VG9wb2xvZ3k6IHR5cGVkUHJvcHMuY29ubmVjdGl2aXR5VG9wb2xvZ3ksXG4gICAgICAgIGFwcGxpZXNUb0dyb3VwczogcHJvY2Vzc2VkQXBwbGllc1RvR3JvdXBzLFxuICAgICAgICBodWJzOiB0eXBlZFByb3BzLmh1YnMsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IHRvcC1sZXZlbCBib29sZWFucyB0byBzdHJpbmcgcmVwcmVzZW50YXRpb25zIGZvciBBenVyZSBBUElcbiAgICBpZiAodHlwZWRQcm9wcy5pc0dsb2JhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuaXNHbG9iYWwgPSB0eXBlZFByb3BzLmlzR2xvYmFsID8gXCJUcnVlXCIgOiBcIkZhbHNlXCI7XG4gICAgfVxuICAgIGlmICh0eXBlZFByb3BzLmRlbGV0ZUV4aXN0aW5nUGVlcmluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuZGVsZXRlRXhpc3RpbmdQZWVyaW5nID0gdHlwZWRQcm9wcy5kZWxldGVFeGlzdGluZ1BlZXJpbmdcbiAgICAgICAgPyBcIlRydWVcIlxuICAgICAgICA6IFwiRmFsc2VcIjtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBDT05ORUNUSVZJVFkgQ09ORklHVVJBVElPTiBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBDb25uZWN0aXZpdHkgQ29uZmlndXJhdGlvblxuICAgKi9cbiAgcHVibGljIGdldCBwcm92aXNpb25pbmdTdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjb25uZWN0aXZpdHkgdG9wb2xvZ3kgdHlwZVxuICAgKi9cbiAgcHVibGljIGdldCB0b3BvbG9neSgpOiBcIkh1YkFuZFNwb2tlXCIgfCBcIk1lc2hcIiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29ubmVjdGl2aXR5VG9wb2xvZ3k7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzIGlmIHNwZWNpZmllZCBpbiBwcm9wc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlJZ25vcmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMgJiYgdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|