@microsoft/terraform-cdk-constructs 1.8.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 +48328 -33656
- package/API.md +56123 -38995
- 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/index.d.ts +6 -0
- package/lib/azure-loganalyticsworkspace/index.js +23 -0
- package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
- package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
- 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/index.d.ts +14 -0
- package/lib/azure-networkwatcher/index.js +31 -0
- package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
- package/lib/azure-networkwatcher/lib/index.js +22 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
- package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
- 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/index.d.ts +10 -0
- package/lib/azure-policysetdefinition/index.js +27 -0
- package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
- package/lib/azure-policysetdefinition/lib/index.js +22 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
- 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-schemas.js +2 -2
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +9 -7
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +13 -10
- 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 +119 -11
- 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 +12 -0
- package/lib/index.js +14 -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
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* property transformation, and full backward compatibility.
|
|
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 azure_resourcegroup_1 = require("../../azure-resourcegroup");
|
|
13
13
|
const api_version_manager_1 = require("../../core-azure/lib/version-manager/api-version-manager");
|
|
14
14
|
const aks_cluster_1 = require("../lib/aks-cluster");
|
|
@@ -19,8 +19,8 @@ describe("AksCluster - Unified Implementation", () => {
|
|
|
19
19
|
let manager;
|
|
20
20
|
let resourceGroup;
|
|
21
21
|
beforeEach(() => {
|
|
22
|
-
app =
|
|
23
|
-
stack = new
|
|
22
|
+
app = cdktn_1.Testing.app();
|
|
23
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
24
24
|
manager = api_version_manager_1.ApiVersionManager.instance();
|
|
25
25
|
// Create a resource group for AKS cluster tests
|
|
26
26
|
resourceGroup = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
@@ -982,11 +982,11 @@ describe("AksCluster - Unified Implementation", () => {
|
|
|
982
982
|
},
|
|
983
983
|
],
|
|
984
984
|
});
|
|
985
|
-
expect(aksCluster.idOutput).toBeInstanceOf(
|
|
986
|
-
expect(aksCluster.locationOutput).toBeInstanceOf(
|
|
987
|
-
expect(aksCluster.nameOutput).toBeInstanceOf(
|
|
988
|
-
expect(aksCluster.tagsOutput).toBeInstanceOf(
|
|
989
|
-
expect(aksCluster.fqdnOutput).toBeInstanceOf(
|
|
985
|
+
expect(aksCluster.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
986
|
+
expect(aksCluster.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
987
|
+
expect(aksCluster.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
988
|
+
expect(aksCluster.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
989
|
+
expect(aksCluster.fqdnOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
990
990
|
// kubeConfig is retrieved via a resource action (not a direct output)
|
|
991
991
|
});
|
|
992
992
|
it("should handle undefined outputs gracefully", () => {
|
|
@@ -1353,7 +1353,7 @@ describe("AksCluster - Unified Implementation", () => {
|
|
|
1353
1353
|
},
|
|
1354
1354
|
],
|
|
1355
1355
|
});
|
|
1356
|
-
const synthesized =
|
|
1356
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
1357
1357
|
expect(synthesized).toBeDefined();
|
|
1358
1358
|
const stackConfig = JSON.parse(synthesized);
|
|
1359
1359
|
expect(stackConfig.resource).toBeDefined();
|
|
@@ -1388,9 +1388,9 @@ describe("AksCluster - Unified Implementation", () => {
|
|
|
1388
1388
|
});
|
|
1389
1389
|
expect(aks1.resolvedApiVersion).toBe("2025-07-01");
|
|
1390
1390
|
expect(aks2.resolvedApiVersion).toBe("2025-07-01");
|
|
1391
|
-
const synthesized =
|
|
1391
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
1392
1392
|
expect(synthesized).toBeDefined();
|
|
1393
1393
|
});
|
|
1394
1394
|
});
|
|
1395
1395
|
});
|
|
1396
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWtzLWNsdXN0ZXIuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1ha3MvdGVzdC9ha3MtY2x1c3Rlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQixtRUFBMEQ7QUFDMUQsa0dBQTZGO0FBQzdGLG9EQUFpRTtBQUNqRSxvRUFHb0M7QUFFcEMsUUFBUSxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRTtJQUNuRCxJQUFJLEdBQWMsQ0FBQztJQUNuQixJQUFJLEtBQTJCLENBQUM7SUFDaEMsSUFBSSxPQUEwQixDQUFDO0lBQy9CLElBQUksYUFBNEIsQ0FBQztJQUVqQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsdUNBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdkMsZ0RBQWdEO1FBQ2hELGFBQWEsR0FBRyxJQUFJLG1DQUFhLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNqRCxJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILDRDQUE0QztRQUM1QyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsb0JBQW9CLENBQUMsc0NBQWdCLEVBQUUsOENBQXdCLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLCtCQUErQjtRQUNqQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFD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QUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUVuRCxNQUFNLFdBQVcsR0FBRyxlQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdW5pdCB0ZXN0cyBmb3IgQXp1cmUgS3ViZXJuZXRlcyBTZXJ2aWNlIChBS1MpIENsdXN0ZXJcbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSB1bmlmaWVkIEFrc0NsdXN0ZXIgY2xhc3MgdGhhdCB1c2VzIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlXG4gKiBmcmFtZXdvcmsuIFRlc3RzIGNvdmVyIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb24sIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sXG4gKiBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIGZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vLi4vYXp1cmUtcmVzb3VyY2Vncm91cFwiO1xuaW1wb3J0IHsgQXBpVmVyc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2FwaS12ZXJzaW9uLW1hbmFnZXJcIjtcbmltcG9ydCB7IEFrc0NsdXN0ZXIsIEFrc0NsdXN0ZXJQcm9wcyB9IGZyb20gXCIuLi9saWIvYWtzLWNsdXN0ZXJcIjtcbmltcG9ydCB7XG4gIEFMTF9BS1NfQ0xVU1RFUl9WRVJTSU9OUyxcbiAgQUtTX0NMVVNURVJfVFlQRSxcbn0gZnJvbSBcIi4uL2xpYi9ha3MtY2x1c3Rlci1zY2hlbWFzXCI7XG5cbmRlc2NyaWJlKFwiQWtzQ2x1c3RlciAtIFVuaWZpZWQgSW1wbGVtZW50YXRpb25cIiwgKCkgPT4ge1xuICBsZXQgYXBwOiBjZGt0Zi5BcHA7XG4gIGxldCBzdGFjazogY2RrdGYuVGVycmFmb3JtU3RhY2s7XG4gIGxldCBtYW5hZ2VyOiBBcGlWZXJzaW9uTWFuYWdlcjtcbiAgbGV0IHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1TdGFjayhhcHAsIFwiVGVzdFN0YWNrXCIpO1xuICAgIG1hbmFnZXIgPSBBcGlWZXJzaW9uTWFuYWdlci5pbnN0YW5jZSgpO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXAgZm9yIEFLUyBjbHVzdGVyIHRlc3RzXG4gICAgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgIH0pO1xuXG4gICAgLy8gRW5zdXJlIEFLUyBDbHVzdGVyIHNjaGVtYXMgYXJlIHJlZ2lzdGVyZWRcbiAgICB0cnkge1xuICAgICAgbWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZShBS1NfQ0xVU1RFUl9UWVBFLCBBTExfQUtTX0NMVVNURVJfVkVSU0lPTlMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBJZ25vcmUgaWYgYWxyZWFkeSByZWdpc3RlcmVkXG4gICAgfVxuICB9KTtcblxuICBkZXNjcmliZShcIkJhc2ljIENvbnN0cnVjdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNsdXN0ZXIgd2l0aCByZXF1aXJlZCBwcm9wZXJ0aWVzIG9ubHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IEFrc0NsdXN0ZXJQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICBtb2RlOiBcIlN5c3RlbVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3RlcikudG9CZUluc3RhbmNlT2YoQWtzQ2x1c3Rlcik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTA3LTAxXCIpOyAvLyBMYXRlc3QgdmVyc2lvblxuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNsdXN0ZXIgd2l0aCBmdWxsIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IEFrc0NsdXN0ZXJQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrcy1mdWxsXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzZnVsbFwiLFxuICAgICAgICBrdWJlcm5ldGVzVmVyc2lvbjogXCIxLjI4LjNcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRcIiwgdGllcjogXCJTdGFuZGFyZFwiIH0sXG4gICAgICAgIGlkZW50aXR5OiB7IHR5cGU6IFwiU3lzdGVtQXNzaWduZWRcIiB9LFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic3lzdGVtXCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9ENHNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiU3lzdGVtXCIsXG4gICAgICAgICAgICBlbmFibGVBdXRvU2NhbGluZzogdHJ1ZSxcbiAgICAgICAgICAgIG1pbkNvdW50OiAzLFxuICAgICAgICAgICAgbWF4Q291bnQ6IDEwLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG5ldHdvcmtQcm9maWxlOiB7XG4gICAgICAgICAgbmV0d29ya1BsdWdpbjogXCJhenVyZVwiLFxuICAgICAgICAgIHNlcnZpY2VDaWRyOiBcIjEwLjAuMC4wLzE2XCIsXG4gICAgICAgICAgZG5zU2VydmljZUlQOiBcIjEwLjAuMC4xMFwiLFxuICAgICAgICB9LFxuICAgICAgICBlbmFibGVSQkFDOiB0cnVlLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICAgIHByb2plY3Q6IFwiY2RrdGYtY29uc3RydWN0c1wiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIpLnRvQmVJbnN0YW5jZU9mKEFrc0NsdXN0ZXIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMua3ViZXJuZXRlc1ZlcnNpb24pLnRvQmUoXCIxLjI4LjNcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5lbmFibGVSQkFDKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGdlbmVyYXRlIGNvcnJlY3QgVGVycmFmb3JtIHJlc291cmNlIG5hbWVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzZXQgY29ycmVjdCByZXNvdXJjZSB0eXBlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuc2NoZW1hLnJlc291cmNlVHlwZSkudG9CZShBS1NfQ0xVU1RFUl9UWVBFKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXJlIHByZXNlbnRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiSW52YWxpZEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcIlwiLFxuICAgICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXSxcbiAgICAgICAgfSBhcyBBa3NDbHVzdGVyUHJvcHMpO1xuICAgICAgfSkudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG9wdGlvbmFsIHByb3BlcnRpZXMgY29ycmVjdGx5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGt1YmVybmV0ZXNWZXJzaW9uOiBcIjEuMjguM1wiLFxuICAgICAgICBub2RlUmVzb3VyY2VHcm91cDogXCJ0ZXN0LW5vZGUtcmdcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5rdWJlcm5ldGVzVmVyc2lvbikudG9CZShcIjEuMjguM1wiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5vZGVSZXNvdXJjZUdyb3VwKS50b0JlKFwidGVzdC1ub2RlLXJnXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYXBwbHkgZGVmYXVsdCB2YWx1ZXMgd2hlbiBhcHByb3ByaWF0ZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnRhZ3MpLnRvRXF1YWwoe30pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlNjaGVtYSBSZWdpc3RyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHJlZ2lzdGVyIHNjaGVtYXMgb24gZmlyc3QgaW5zdGFudGlhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnNjaGVtYSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIG5vdCByZS1yZWdpc3RlciBzY2hlbWFzIG9uIHN1YnNlcXVlbnQgaW5zdGFudGlhdGlvbnNcIiwgKCkgPT4ge1xuICAgICAgbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiRmlyc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrcy0xXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzMVwiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJTZWNvbmRBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtYWtzLTJcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3MyXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgfSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgYWxsIHRocmVlIEFQSSB2ZXJzaW9ucyByZWdpc3RlcmVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3VwcG9ydGVkVmVyc2lvbnMgPSBha3NDbHVzdGVyLnN1cHBvcnRlZFZlcnNpb25zKCk7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjQtMTAtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDEtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzZXQgY29ycmVjdCBkZWZhdWx0IEFQSSB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wNy0wMVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJWZXJzaW9uIE1hbmFnZW1lbnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IHZlcnNpb24gd2hlbiBub3Qgc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLmxhdGVzdFZlcnNpb24oKSkudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgZXhwbGljaXRseSBzcGVjaWZpZWQgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNS0wNy0wMVwiLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTA3LTAxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWNjZXB0IDIwMjQtMTAtMDEgQVBJIHZlcnNpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMTAtMDFcIixcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0xMC0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGFjY2VwdCAyMDI1LTA3LTAxIEFQSSB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI1LTA3LTAxXCIsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhY2NlcHQgMjAyNS0wMS0wMSBBUEkgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNS0wMS0wMVwiLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTAxLTAxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgcmVqZWN0IGludmFsaWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWRWZXJzaW9uXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICAgIGFwaVZlcnNpb246IFwiMjAyNi0wMS0wMVwiLFxuICAgICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdyhcIlVuc3VwcG9ydGVkIEFQSSB2ZXJzaW9uICcyMDI2LTAxLTAxJ1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSB2ZXJzaW9uIG1pZ3JhdGlvbnMgY29ycmVjdGx5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTEwLTAxXCIsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFuYWx5c2lzID0gYWtzQ2x1c3Rlci5hbmFseXplTWlncmF0aW9uVG8oXCIyMDI1LTA3LTAxXCIpO1xuXG4gICAgICBleHBlY3QoYW5hbHlzaXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYW5hbHlzaXMuZnJvbVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgICAgZXhwZWN0KGFuYWx5c2lzLnRvVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSBzY2hlbWEgY29tcGF0aWJpbGl0eSBhY3Jvc3MgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTEwLTAxXCIsIFwiMjAyNS0wMS0wMVwiLCBcIjIwMjUtMDctMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIGBBS1MtJHt2ZXJzaW9uLnJlcGxhY2UoLy0vZywgXCJcIil9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBgdGVzdC1ha3MtJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgICAgIGFwaVZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QoYWtzQ2x1c3Rlci5zY2hlbWEudmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuc2NoZW1hLnByb3BlcnRpZXMubG9jYXRpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChha3NDbHVzdGVyLnNjaGVtYS5wcm9wZXJ0aWVzLmRuc1ByZWZpeCkudG9CZURlZmluZWQoKTtcbiAgICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuc2NoZW1hLnByb3BlcnRpZXMuYWdlbnRQb29sUHJvZmlsZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJQcm9wZXJ0eSBIYW5kbGluZ1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIGJhc2ljIGNsdXN0ZXIgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5hbWUpLnRvQmUoXCJ0ZXN0LWFrc1wiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmxvY2F0aW9uKS50b0JlKFwid2VzdHVzXCIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuZG5zUHJlZml4KS50b0JlKFwidGVzdGFrc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBTeXN0ZW1Bc3NpZ25lZCBpZGVudGl0eSBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgaWRlbnRpdHk6IHsgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiIH0sXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlkZW50aXR5Py50eXBlKS50b0JlKFwiU3lzdGVtQXNzaWduZWRcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgVXNlckFzc2lnbmVkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBpZGVudGl0eToge1xuICAgICAgICAgIHR5cGU6IFwiVXNlckFzc2lnbmVkXCIsXG4gICAgICAgICAgdXNlckFzc2lnbmVkSWRlbnRpdGllczoge1xuICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL3Rlc3QvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VkSWRlbnRpdHkvdXNlckFzc2lnbmVkSWRlbnRpdGllcy90ZXN0XCI6XG4gICAgICAgICAgICAgIHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlkZW50aXR5Py50eXBlKS50b0JlKFwiVXNlckFzc2lnbmVkXCIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuaWRlbnRpdHk/LnVzZXJBc3NpZ25lZElkZW50aXRpZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgU0tVIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBza3U6IHsgbmFtZTogXCJTdGFuZGFyZFwiLCB0aWVyOiBcIlN0YW5kYXJkXCIgfSxcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiU3RhbmRhcmRcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5za3U/LnRpZXIpLnRvQmUoXCJTdGFuZGFyZFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBhZ2VudCBwb29sIHByb2ZpbGVzIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzeXN0ZW1cIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Q0c192M1wiLFxuICAgICAgICAgICAgbW9kZTogXCJTeXN0ZW1cIixcbiAgICAgICAgICAgIGVuYWJsZUF1dG9TY2FsaW5nOiB0cnVlLFxuICAgICAgICAgICAgbWluQ291bnQ6IDMsXG4gICAgICAgICAgICBtYXhDb3VudDogMTAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZXJcIixcbiAgICAgICAgICAgIGNvdW50OiAyLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgbW9kZTogXCJVc2VyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZ2VudFBvb2xQcm9maWxlcykudG9IYXZlTGVuZ3RoKDIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYWdlbnRQb29sUHJvZmlsZXNbMF0ubmFtZSkudG9CZShcInN5c3RlbVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFnZW50UG9vbFByb2ZpbGVzWzFdLm5hbWUpLnRvQmUoXCJ1c2VyXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG5ldHdvcmsgcHJvZmlsZSB3aXRoIGFsbCBvcHRpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG5ldHdvcmtQcm9maWxlOiB7XG4gICAgICAgICAgbmV0d29ya1BsdWdpbjogXCJhenVyZVwiLFxuICAgICAgICAgIG5ldHdvcmtQb2xpY3k6IFwiY2FsaWNvXCIsXG4gICAgICAgICAgc2VydmljZUNpZHI6IFwiMTAuMC4wLjAvMTZcIixcbiAgICAgICAgICBkbnNTZXJ2aWNlSVA6IFwiMTAuMC4wLjEwXCIsXG4gICAgICAgICAgZG9ja2VyQnJpZGdlQ2lkcjogXCIxNzIuMTcuMC4xLzE2XCIsXG4gICAgICAgICAgbG9hZEJhbGFuY2VyU2t1OiBcInN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubmV0d29ya1Byb2ZpbGU/Lm5ldHdvcmtQbHVnaW4pLnRvQmUoXCJhenVyZVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5ldHdvcmtQcm9maWxlPy5uZXR3b3JrUG9saWN5KS50b0JlKFwiY2FsaWNvXCIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubmV0d29ya1Byb2ZpbGU/LnNlcnZpY2VDaWRyKS50b0JlKFwiMTAuMC4wLjAvMTZcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgYWRkb24gcHJvZmlsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgYWRkb25Qcm9maWxlczoge1xuICAgICAgICAgIGh0dHBBcHBsaWNhdGlvblJvdXRpbmc6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIG9tc2FnZW50OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7IGxvZ0FuYWx5dGljc1dvcmtzcGFjZVJlc291cmNlSUQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdFwiIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoXG4gICAgICAgIGFrc0NsdXN0ZXIucHJvcHMuYWRkb25Qcm9maWxlcz8uaHR0cEFwcGxpY2F0aW9uUm91dGluZz8uZW5hYmxlZCxcbiAgICAgICkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFkZG9uUHJvZmlsZXM/Lm9tc2FnZW50Py5lbmFibGVkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHNlY3VyaXR5IHByb2ZpbGVzIHdpdGggQUFEIGFuZCBSQkFDXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGFhZFByb2ZpbGU6IHtcbiAgICAgICAgICBtYW5hZ2VkOiB0cnVlLFxuICAgICAgICAgIGVuYWJsZUF6dXJlUkJBQzogdHJ1ZSxcbiAgICAgICAgICBhZG1pbkdyb3VwT2JqZWN0SURzOiBbXCJncm91cC1pZC0xXCIsIFwiZ3JvdXAtaWQtMlwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgZW5hYmxlUkJBQzogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hYWRQcm9maWxlPy5tYW5hZ2VkKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYWFkUHJvZmlsZT8uZW5hYmxlQXp1cmVSQkFDKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuZW5hYmxlUkJBQykudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBhdXRvLXNjYWxlciBwcm9maWxlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGF1dG9TY2FsZXJQcm9maWxlOiB7XG4gICAgICAgICAgc2NhbGVEb3duRGVsYXlBZnRlckFkZDogXCIxMG1cIixcbiAgICAgICAgICBzY2FsZURvd25Vbm5lZWRlZFRpbWU6IFwiMTBtXCIsXG4gICAgICAgICAgc2NhbGVEb3duVXRpbGl6YXRpb25UaHJlc2hvbGQ6IFwiMC41XCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYXV0b1NjYWxlclByb2ZpbGU/LnNjYWxlRG93bkRlbGF5QWZ0ZXJBZGQpLnRvQmUoXG4gICAgICAgIFwiMTBtXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIFdpbmRvd3MgcHJvZmlsZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB3aW5kb3dzUHJvZmlsZToge1xuICAgICAgICAgIGFkbWluVXNlcm5hbWU6IFwiYXp1cmV1c2VyXCIsXG4gICAgICAgICAgYWRtaW5QYXNzd29yZDogXCJQQHNzdzByZDEyMzQhXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMud2luZG93c1Byb2ZpbGU/LmFkbWluVXNlcm5hbWUpLnRvQmUoXCJhenVyZXVzZXJcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgTGludXggcHJvZmlsZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsaW51eFByb2ZpbGU6IHtcbiAgICAgICAgICBhZG1pblVzZXJuYW1lOiBcImF6dXJldXNlclwiLFxuICAgICAgICAgIHNzaDoge1xuICAgICAgICAgICAgcHVibGljS2V5czogW3sga2V5RGF0YTogXCJzc2gtcnNhIEFBQUFCMy4uLlwiIH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubGludXhQcm9maWxlPy5hZG1pblVzZXJuYW1lKS50b0JlKFwiYXp1cmV1c2VyXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHRhZ3MgcHJvcGVybHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIixcbiAgICAgICAgICBjb3N0OiBcImNlbnRlcjFcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci50YWdzKS50b0VxdWFsKHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBjb3N0OiBcImNlbnRlcjFcIixcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIG5hbWUgZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWROYW1lXCIsIHtcbiAgICAgICAgICBuYW1lOiBcImludmFsaWRfbmFtZV93aXRoX3VuZGVyc2NvcmVzXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSBsb2NhdGlvbiBpcyBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJNaXNzaW5nTG9jYXRpb25cIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pLnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIEROUyBwcmVmaXggZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWREbnNQcmVmaXhcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcImludmFsaWRfZG5zX3ByZWZpeFwiLFxuICAgICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVuYWJsZVZhbGlkYXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgS3ViZXJuZXRlcyB2ZXJzaW9uIGZvcm1hdFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJJbnZhbGlkSzhzVmVyc2lvblwiLCB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICAgIGt1YmVybmV0ZXNWZXJzaW9uOiBcImludmFsaWQtdmVyc2lvblwiLFxuICAgICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVuYWJsZVZhbGlkYXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgYWdlbnQgcG9vbCBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIC8vIENyZWF0aW5nIHdpdGggZW1wdHkgYWdlbnQgcG9vbCBzaG91bGQgbm90IHRocm93IGR1cmluZyBjb25zdHJ1Y3Rpb25cbiAgICAgIC8vIGJ1dCB3b3VsZCBmYWlsIGR1cmluZyBUZXJyYWZvcm0gdmFsaWRhdGlvblxuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWRBZ2VudFBvb2xcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXSxcbiAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogZmFsc2UsIC8vIERpc2FibGUgdmFsaWRhdGlvbiB0byBhbGxvdyBjb25zdHJ1Y3Rpb25cbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZ2VudFBvb2xQcm9maWxlcykudG9IYXZlTGVuZ3RoKDApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgbmV0d29yayBwcm9maWxlIGNvbnN0cmFpbnRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJWYWxpZE5ldHdvcmtcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBuZXR3b3JrUHJvZmlsZToge1xuICAgICAgICAgIG5ldHdvcmtQbHVnaW46IFwiYXp1cmVcIixcbiAgICAgICAgICBzZXJ2aWNlQ2lkcjogXCIxMC4wLjAuMC8xNlwiLFxuICAgICAgICAgIGRuc1NlcnZpY2VJUDogXCIxMC4wLjAuMTBcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5uZXR3b3JrUHJvZmlsZT8ubmV0d29ya1BsdWdpbikudG9CZShcImF6dXJlXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgaWRlbnRpdHkgdHlwZSBjb21iaW5hdGlvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlZhbGlkSWRlbnRpdHlcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGlkZW50aXR5OiB7IHR5cGU6IFwiU3lzdGVtQXNzaWduZWRcIiB9LFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5pZGVudGl0eT8udHlwZSkudG9CZShcIlN5c3RlbUFzc2lnbmVkXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgU0tVIHRpZXJzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJWYWxpZFNrdVwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRcIiwgdGllcjogXCJTdGFuZGFyZFwiIH0sXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnNrdT8udGllcikudG9CZShcIlN0YW5kYXJkXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgcHVibGljIG5ldHdvcmsgYWNjZXNzIHZhbHVlc1wiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJJbnZhbGlkUHVibGljQWNjZXNzXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgICAgcHVibGljTmV0d29ya0FjY2VzczogXCJJbnZhbGlkXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSBzdXBwb3J0IHBsYW4gdmFsdWVzXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWRTdXBwb3J0UGxhblwiLCB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICAgIHN1cHBvcnRQbGFuOiBcIkludmFsaWRQbGFuXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUGFyZW50IElEXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBkZXRlcm1pbmUgcGFyZW50IElEIGZyb20gcmVzb3VyY2VHcm91cElkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMucmVzb3VyY2VHcm91cElkKS50b0JlKHJlc291cmNlR3JvdXAuaWQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY29uc3RydWN0IGNvcnJlY3QgcGFyZW50IElEIGZvcm1hdFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5yZXNvdXJjZUdyb3VwSWQpLnRvQ29udGFpbihcIi9zdWJzY3JpcHRpb25zL1wiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnJlc291cmNlR3JvdXBJZCkudG9Db250YWluKFwiL3Jlc291cmNlR3JvdXBzL1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSByZXNvdXJjZSBncm91cCBJRCBpbiBkaWZmZXJlbnQgZm9ybWF0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnJlc291cmNlR3JvdXBJZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJPdXRwdXQgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgZXhwb3NlIGlkIHByb3BlcnR5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuaWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBleHBvc2UgbmFtZSBwcm9wZXJ0eVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5hbWUpLnRvQmUoXCJ0ZXN0LWFrc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGV4cG9zZSBmcWRuIHByb3BlcnR5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuZnFkbikudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGV4cG9zZSBrdWJlQ29uZmlnIHByb3BlcnR5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIua3ViZUNvbmZpZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgYWtzQ2x1c3Rlci5rdWJlQ29uZmlnKS50b0JlKFwic3RyaW5nXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZXhwb3NlIGFsbCB0ZXJyYWZvcm0gb3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIubG9jYXRpb25PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0Zi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIudGFnc091dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdGYuVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLmZxZG5PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RmLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICAvLyBrdWJlQ29uZmlnIGlzIHJldHJpZXZlZCB2aWEgYSByZXNvdXJjZSBhY3Rpb24gKG5vdCBhIGRpcmVjdCBvdXRwdXQpXG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgdW5kZWZpbmVkIG91dHB1dHMgZ3JhY2VmdWxseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCgoKSA9PiBha3NDbHVzdGVyLmZxZG4pLm5vdC50b1Rocm93KCk7XG4gICAgICBleHBlY3QoKCkgPT4gYWtzQ2x1c3Rlci5rdWJlQ29uZmlnKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdHlwZSBvdXRwdXRzIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh0eXBlb2YgYWtzQ2x1c3Rlci5pZCkudG9CZShcInN0cmluZ1wiKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgYWtzQ2x1c3Rlci5mcWRuKS50b0JlKFwic3RyaW5nXCIpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBha3NDbHVzdGVyLmt1YmVDb25maWcpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSWdub3JlIENoYW5nZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgaWdub3JlQ2hhbmdlcyBmb3IgZHluYW1pYyBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcImt1YmVybmV0ZXNWZXJzaW9uXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvQ29udGFpbihcImt1YmVybmV0ZXNWZXJzaW9uXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYXBwbHkgaWdub3JlIGNoYW5nZXMgdG8gYWdlbnRQb29sUHJvZmlsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW1wiYWdlbnRQb29sUHJvZmlsZXNcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuaWdub3JlQ2hhbmdlcykudG9Db250YWluKFwiYWdlbnRQb29sUHJvZmlsZXNcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhcHBseSBpZ25vcmUgY2hhbmdlcyB0byB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuaWdub3JlQ2hhbmdlcykudG9Db250YWluKFwidGFnc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBpZ25vcmUgY2hhbmdlcyBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcImt1YmVybmV0ZXNWZXJzaW9uXCIsIFwiYWdlbnRQb29sUHJvZmlsZXNcIiwgXCJ0YWdzXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWcgTWFuYWdlbWVudFwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgYWRkIHRhZ3MgY29ycmVjdGx5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgYWtzQ2x1c3Rlci5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZW1vdmUgdGFncyBjb3JyZWN0bHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIsIGNvc3Q6IFwiY2VudGVyMVwiIH0sXG4gICAgICB9KTtcblxuICAgICAgYWtzQ2x1c3Rlci5yZW1vdmVUYWcoXCJlbnZpcm9ubWVudFwiKTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMudGFncyEuZW52aXJvbm1lbnQpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnRhZ3MhLmNvc3QpLnRvQmUoXCJjZW50ZXIxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgbWVyZ2Ugd2l0aCBleGlzdGluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgYWtzQ2x1c3Rlci5hZGRUYWcoXCJjb3N0XCIsIFwiY2VudGVyMVwiKTtcbiAgICAgIGFrc0NsdXN0ZXIuYWRkVGFnKFwicHJvamVjdFwiLCBcImNka3RmXCIpO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5jb3N0KS50b0JlKFwiY2VudGVyMVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnRhZ3MhLnByb2plY3QpLnRvQmUoXCJjZGt0ZlwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSB1bmRlZmluZWQgdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGFrc0NsdXN0ZXIuYWRkVGFnKFwiZmlyc3RUYWdcIiwgXCJmaXJzdFZhbHVlXCIpO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5maXJzdFRhZykudG9CZShcImZpcnN0VmFsdWVcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29tcGxleCBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBoYW5kbGUgbXVsdGktbm9kZSBwb29sIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic3lzdGVtXCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9ENHNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiU3lzdGVtXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZXIxXCIsXG4gICAgICAgICAgICBjb3VudDogMixcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiVXNlclwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ1c2VyMlwiLFxuICAgICAgICAgICAgY291bnQ6IDUsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDhzX3YzXCIsXG4gICAgICAgICAgICBtb2RlOiBcIlVzZXJcIixcbiAgICAgICAgICAgIGVuYWJsZUF1dG9TY2FsaW5nOiB0cnVlLFxuICAgICAgICAgICAgbWluQ291bnQ6IDMsXG4gICAgICAgICAgICBtYXhDb3VudDogMTAsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZ2VudFBvb2xQcm9maWxlcykudG9IYXZlTGVuZ3RoKDMpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHByaXZhdGUgY2x1c3RlciBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGFwaVNlcnZlckFjY2Vzc1Byb2ZpbGU6IHtcbiAgICAgICAgICBlbmFibGVQcml2YXRlQ2x1c3RlcjogdHJ1ZSxcbiAgICAgICAgICBwcml2YXRlRE5TWm9uZTogXCJzeXN0ZW1cIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoXG4gICAgICAgIGFrc0NsdXN0ZXIucHJvcHMuYXBpU2VydmVyQWNjZXNzUHJvZmlsZT8uZW5hYmxlUHJpdmF0ZUNsdXN0ZXIsXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgYWR2YW5jZWQgbmV0d29ya2luZyB3aXRoIGN1c3RvbSBWTmV0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgdm5ldFN1Ym5ldElEOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvcmVzb3VyY2VHcm91cHMvdGVzdC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qvc3VibmV0cy90ZXN0XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbmV0d29ya1Byb2ZpbGU6IHtcbiAgICAgICAgICBuZXR3b3JrUGx1Z2luOiBcImF6dXJlXCIsXG4gICAgICAgICAgc2VydmljZUNpZHI6IFwiMTAuMC4wLjAvMTZcIixcbiAgICAgICAgICBkbnNTZXJ2aWNlSVA6IFwiMTAuMC4wLjEwXCIsXG4gICAgICAgICAgZG9ja2VyQnJpZGdlQ2lkcjogXCIxNzIuMTcuMC4xLzE2XCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubmV0d29ya1Byb2ZpbGU/Lm5ldHdvcmtQbHVnaW4pLnRvQmUoXCJhenVyZVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFnZW50UG9vbFByb2ZpbGVzWzBdLnZuZXRTdWJuZXRJRCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBhbGwgYWRkb24gY29uZmlndXJhdGlvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgYWRkb25Qcm9maWxlczoge1xuICAgICAgICAgIGh0dHBBcHBsaWNhdGlvblJvdXRpbmc6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIG9tc2FnZW50OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZVJlc291cmNlSUQ6XG4gICAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL3Rlc3QvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF6dXJlcG9saWN5OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBhenVyZUtleXZhdWx0U2VjcmV0c1Byb3ZpZGVyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7IGVuYWJsZVNlY3JldFJvdGF0aW9uOiBcInRydWVcIiB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KFxuICAgICAgICBha3NDbHVzdGVyLnByb3BzLmFkZG9uUHJvZmlsZXM/Lmh0dHBBcHBsaWNhdGlvblJvdXRpbmc/LmVuYWJsZWQsXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZGRvblByb2ZpbGVzPy5vbXNhZ2VudD8uZW5hYmxlZCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFkZG9uUHJvZmlsZXM/LmF6dXJlcG9saWN5Py5lbmFibGVkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIGNvbXBsZXRlIHByb2R1Y3Rpb24tcmVhZHkgY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInByb2QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNS0wNy0wMVwiLFxuICAgICAgICBkbnNQcmVmaXg6IFwicHJvZGFrc1wiLFxuICAgICAgICBrdWJlcm5ldGVzVmVyc2lvbjogXCIxLjI4LjNcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRcIiwgdGllcjogXCJTdGFuZGFyZFwiIH0sXG4gICAgICAgIGlkZW50aXR5OiB7IHR5cGU6IFwiU3lzdGVtQXNzaWduZWRcIiB9LFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic3lzdGVtXCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9ENHNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiU3lzdGVtXCIsXG4gICAgICAgICAgICBlbmFibGVBdXRvU2NhbGluZzogdHJ1ZSxcbiAgICAgICAgICAgIG1pbkNvdW50OiAzLFxuICAgICAgICAgICAgbWF4Q291bnQ6IDEwLFxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZXM6IFtcIjFcIiwgXCIyXCIsIFwiM1wiXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBuZXR3b3JrUHJvZmlsZToge1xuICAgICAgICAgIG5ldHdvcmtQbHVnaW46IFwiYXp1cmVcIixcbiAgICAgICAgICBuZXR3b3JrUG9saWN5OiBcImNhbGljb1wiLFxuICAgICAgICAgIHNlcnZpY2VDaWRyOiBcIjEwLjAuMC4wLzE2XCIsXG4gICAgICAgICAgZG5zU2VydmljZUlQOiBcIjEwLjAuMC4xMFwiLFxuICAgICAgICAgIGxvYWRCYWxhbmNlclNrdTogXCJzdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBlbmFibGVSQkFDOiB0cnVlLFxuICAgICAgICBhYWRQcm9maWxlOiB7XG4gICAgICAgICAgbWFuYWdlZDogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVBenVyZVJCQUM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFwaVNlcnZlckFjY2Vzc1Byb2ZpbGU6IHtcbiAgICAgICAgICBlbmFibGVQcml2YXRlQ2x1c3RlcjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkb25Qcm9maWxlczoge1xuICAgICAgICAgIG9tc2FnZW50OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZVJlc291cmNlSUQ6XG4gICAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL3Rlc3QvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIGNvc3Q6IFwiY2VudGVyMVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5lbmFibGVSQkFDKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYWdlbnRQb29sUHJvZmlsZXNbMF0uZW5hYmxlQXV0b1NjYWxpbmcpLnRvQmUoXG4gICAgICAgIHRydWUsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG4gICAgICBleHBlY3Qoc3RhY2tDb25maWcucmVzb3VyY2UpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgbXVsdGlwbGUgQUtTIGNsdXN0ZXJzIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrczEgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJBa3NDbHVzdGVyMVwiLCB7XG4gICAgICAgIG5hbWU6IFwiYWtzLTFcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcImFrczFcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYWtzMiA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkFrc0NsdXN0ZXIyXCIsIHtcbiAgICAgICAgbmFtZTogXCJha3MtMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjUtMDctMDFcIixcbiAgICAgICAgZG5zUHJlZml4OiBcImFrczJcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrczEucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdChha3MyLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
1396
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWtzLWNsdXN0ZXIuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1ha3MvdGVzdC9ha3MtY2x1c3Rlci5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQixtRUFBMEQ7QUFDMUQsa0dBQTZGO0FBQzdGLG9EQUFpRTtBQUNqRSxvRUFHb0M7QUFFcEMsUUFBUSxDQUFDLHFDQUFxQyxFQUFFLEdBQUcsRUFBRTtJQUNuRCxJQUFJLEdBQWMsQ0FBQztJQUNuQixJQUFJLEtBQTJCLENBQUM7SUFDaEMsSUFBSSxPQUEwQixDQUFDO0lBQy9CLElBQUksYUFBNEIsQ0FBQztJQUVqQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsdUNBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdkMsZ0RBQWdEO1FBQ2hELGFBQWEsR0FBRyxJQUFJLG1DQUFhLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNqRCxJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILDRDQUE0QztRQUM1QyxJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsb0JBQW9CLENBQUMsc0NBQWdCLEVBQUUsOENBQXdCLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLCtCQUErQjtRQUNqQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO1FBQ2xDLEVBQUUsQ0FBQyxxREFBcUQsRUFBRSxHQUFHLEVBQUU7WUFD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QUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUVuRCxNQUFNLFdBQVcsR0FBRyxlQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbXByZWhlbnNpdmUgdW5pdCB0ZXN0cyBmb3IgQXp1cmUgS3ViZXJuZXRlcyBTZXJ2aWNlIChBS1MpIENsdXN0ZXJcbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSB1bmlmaWVkIEFrc0NsdXN0ZXIgY2xhc3MgdGhhdCB1c2VzIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlXG4gKiBmcmFtZXdvcmsuIFRlc3RzIGNvdmVyIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb24sIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZywgc2NoZW1hIHZhbGlkYXRpb24sXG4gKiBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiwgYW5kIGZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vLi4vYXp1cmUtcmVzb3VyY2Vncm91cFwiO1xuaW1wb3J0IHsgQXBpVmVyc2lvbk1hbmFnZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2FwaS12ZXJzaW9uLW1hbmFnZXJcIjtcbmltcG9ydCB7IEFrc0NsdXN0ZXIsIEFrc0NsdXN0ZXJQcm9wcyB9IGZyb20gXCIuLi9saWIvYWtzLWNsdXN0ZXJcIjtcbmltcG9ydCB7XG4gIEFMTF9BS1NfQ0xVU1RFUl9WRVJTSU9OUyxcbiAgQUtTX0NMVVNURVJfVFlQRSxcbn0gZnJvbSBcIi4uL2xpYi9ha3MtY2x1c3Rlci1zY2hlbWFzXCI7XG5cbmRlc2NyaWJlKFwiQWtzQ2x1c3RlciAtIFVuaWZpZWQgSW1wbGVtZW50YXRpb25cIiwgKCkgPT4ge1xuICBsZXQgYXBwOiBjZGt0bi5BcHA7XG4gIGxldCBzdGFjazogY2RrdG4uVGVycmFmb3JtU3RhY2s7XG4gIGxldCBtYW5hZ2VyOiBBcGlWZXJzaW9uTWFuYWdlcjtcbiAgbGV0IHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBzdGFjayA9IG5ldyBjZGt0bi5UZXJyYWZvcm1TdGFjayhhcHAsIFwiVGVzdFN0YWNrXCIpO1xuICAgIG1hbmFnZXIgPSBBcGlWZXJzaW9uTWFuYWdlci5pbnN0YW5jZSgpO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXAgZm9yIEFLUyBjbHVzdGVyIHRlc3RzXG4gICAgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgIH0pO1xuXG4gICAgLy8gRW5zdXJlIEFLUyBDbHVzdGVyIHNjaGVtYXMgYXJlIHJlZ2lzdGVyZWRcbiAgICB0cnkge1xuICAgICAgbWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZShBS1NfQ0xVU1RFUl9UWVBFLCBBTExfQUtTX0NMVVNURVJfVkVSU0lPTlMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBJZ25vcmUgaWYgYWxyZWFkeSByZWdpc3RlcmVkXG4gICAgfVxuICB9KTtcblxuICBkZXNjcmliZShcIkJhc2ljIENvbnN0cnVjdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNsdXN0ZXIgd2l0aCByZXF1aXJlZCBwcm9wZXJ0aWVzIG9ubHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IEFrc0NsdXN0ZXJQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICBtb2RlOiBcIlN5c3RlbVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3RlcikudG9CZUluc3RhbmNlT2YoQWtzQ2x1c3Rlcik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcykudG9CZShwcm9wcyk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTA3LTAxXCIpOyAvLyBMYXRlc3QgdmVyc2lvblxuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGNsdXN0ZXIgd2l0aCBmdWxsIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHM6IEFrc0NsdXN0ZXJQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrcy1mdWxsXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzZnVsbFwiLFxuICAgICAgICBrdWJlcm5ldGVzVmVyc2lvbjogXCIxLjI4LjNcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRcIiwgdGllcjogXCJTdGFuZGFyZFwiIH0sXG4gICAgICAgIGlkZW50aXR5OiB7IHR5cGU6IFwiU3lzdGVtQXNzaWduZWRcIiB9LFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic3lzdGVtXCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9ENHNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiU3lzdGVtXCIsXG4gICAgICAgICAgICBlbmFibGVBdXRvU2NhbGluZzogdHJ1ZSxcbiAgICAgICAgICAgIG1pbkNvdW50OiAzLFxuICAgICAgICAgICAgbWF4Q291bnQ6IDEwLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG5ldHdvcmtQcm9maWxlOiB7XG4gICAgICAgICAgbmV0d29ya1BsdWdpbjogXCJhenVyZVwiLFxuICAgICAgICAgIHNlcnZpY2VDaWRyOiBcIjEwLjAuMC4wLzE2XCIsXG4gICAgICAgICAgZG5zU2VydmljZUlQOiBcIjEwLjAuMC4xMFwiLFxuICAgICAgICB9LFxuICAgICAgICBlbmFibGVSQkFDOiB0cnVlLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwidGVzdFwiLFxuICAgICAgICAgIHByb2plY3Q6IFwiY2RrdGYtY29uc3RydWN0c1wiLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIpLnRvQmVJbnN0YW5jZU9mKEFrc0NsdXN0ZXIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMua3ViZXJuZXRlc1ZlcnNpb24pLnRvQmUoXCIxLjI4LjNcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5lbmFibGVSQkFDKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGdlbmVyYXRlIGNvcnJlY3QgVGVycmFmb3JtIHJlc291cmNlIG5hbWVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzZXQgY29ycmVjdCByZXNvdXJjZSB0eXBlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuc2NoZW1hLnJlc291cmNlVHlwZSkudG9CZShBS1NfQ0xVU1RFUl9UWVBFKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIHJlcXVpcmVkIHByb3BlcnRpZXMgYXJlIHByZXNlbnRcIiwgKCkgPT4ge1xuICAgICAgZXhwZWN0KCgpID0+IHtcbiAgICAgICAgbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiSW52YWxpZEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcIlwiLFxuICAgICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXSxcbiAgICAgICAgfSBhcyBBa3NDbHVzdGVyUHJvcHMpO1xuICAgICAgfSkudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG9wdGlvbmFsIHByb3BlcnRpZXMgY29ycmVjdGx5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGt1YmVybmV0ZXNWZXJzaW9uOiBcIjEuMjguM1wiLFxuICAgICAgICBub2RlUmVzb3VyY2VHcm91cDogXCJ0ZXN0LW5vZGUtcmdcIixcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5rdWJlcm5ldGVzVmVyc2lvbikudG9CZShcIjEuMjguM1wiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5vZGVSZXNvdXJjZUdyb3VwKS50b0JlKFwidGVzdC1ub2RlLXJnXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYXBwbHkgZGVmYXVsdCB2YWx1ZXMgd2hlbiBhcHByb3ByaWF0ZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnRhZ3MpLnRvRXF1YWwoe30pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlNjaGVtYSBSZWdpc3RyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHJlZ2lzdGVyIHNjaGVtYXMgb24gZmlyc3QgaW5zdGFudGlhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnNjaGVtYSkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIG5vdCByZS1yZWdpc3RlciBzY2hlbWFzIG9uIHN1YnNlcXVlbnQgaW5zdGFudGlhdGlvbnNcIiwgKCkgPT4ge1xuICAgICAgbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiRmlyc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrcy0xXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzMVwiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJTZWNvbmRBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtYWtzLTJcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3MyXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgfSkubm90LnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhdmUgYWxsIHRocmVlIEFQSSB2ZXJzaW9ucyByZWdpc3RlcmVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3VwcG9ydGVkVmVyc2lvbnMgPSBha3NDbHVzdGVyLnN1cHBvcnRlZFZlcnNpb25zKCk7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjQtMTAtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDEtMDFcIik7XG4gICAgICBleHBlY3Qoc3VwcG9ydGVkVmVyc2lvbnMpLnRvQ29udGFpbihcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBzZXQgY29ycmVjdCBkZWZhdWx0IEFQSSB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wNy0wMVwiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJWZXJzaW9uIE1hbmFnZW1lbnRcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IHZlcnNpb24gd2hlbiBub3Qgc3BlY2lmaWVkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLmxhdGVzdFZlcnNpb24oKSkudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB1c2UgZXhwbGljaXRseSBzcGVjaWZpZWQgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNS0wNy0wMVwiLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTA3LTAxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWNjZXB0IDIwMjQtMTAtMDEgQVBJIHZlcnNpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMTAtMDFcIixcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNC0xMC0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGFjY2VwdCAyMDI1LTA3LTAxIEFQSSB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI1LTA3LTAxXCIsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhY2NlcHQgMjAyNS0wMS0wMSBBUEkgdmVyc2lvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNS0wMS0wMVwiLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDI1LTAxLTAxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgcmVqZWN0IGludmFsaWQgQVBJIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWRWZXJzaW9uXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICAgIGFwaVZlcnNpb246IFwiMjAyNi0wMS0wMVwiLFxuICAgICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdyhcIlVuc3VwcG9ydGVkIEFQSSB2ZXJzaW9uICcyMDI2LTAxLTAxJ1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSB2ZXJzaW9uIG1pZ3JhdGlvbnMgY29ycmVjdGx5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDI0LTEwLTAxXCIsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGFuYWx5c2lzID0gYWtzQ2x1c3Rlci5hbmFseXplTWlncmF0aW9uVG8oXCIyMDI1LTA3LTAxXCIpO1xuXG4gICAgICBleHBlY3QoYW5hbHlzaXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYW5hbHlzaXMuZnJvbVZlcnNpb24pLnRvQmUoXCIyMDI0LTEwLTAxXCIpO1xuICAgICAgZXhwZWN0KGFuYWx5c2lzLnRvVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSBzY2hlbWEgY29tcGF0aWJpbGl0eSBhY3Jvc3MgdmVyc2lvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyc2lvbnMgPSBbXCIyMDI0LTEwLTAxXCIsIFwiMjAyNS0wMS0wMVwiLCBcIjIwMjUtMDctMDFcIl07XG5cbiAgICAgIHZlcnNpb25zLmZvckVhY2goKHZlcnNpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKFxuICAgICAgICAgIHN0YWNrLFxuICAgICAgICAgIGBBS1MtJHt2ZXJzaW9uLnJlcGxhY2UoLy0vZywgXCJcIil9YCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBgdGVzdC1ha3MtJHt2ZXJzaW9ufWAsXG4gICAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgICAgIGFwaVZlcnNpb246IHZlcnNpb24sXG4gICAgICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcblxuICAgICAgICBleHBlY3QoYWtzQ2x1c3Rlci5zY2hlbWEudmVyc2lvbikudG9CZSh2ZXJzaW9uKTtcbiAgICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuc2NoZW1hLnByb3BlcnRpZXMubG9jYXRpb24pLnRvQmVEZWZpbmVkKCk7XG4gICAgICAgIGV4cGVjdChha3NDbHVzdGVyLnNjaGVtYS5wcm9wZXJ0aWVzLmRuc1ByZWZpeCkudG9CZURlZmluZWQoKTtcbiAgICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuc2NoZW1hLnByb3BlcnRpZXMuYWdlbnRQb29sUHJvZmlsZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJQcm9wZXJ0eSBIYW5kbGluZ1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIGJhc2ljIGNsdXN0ZXIgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcIndlc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5hbWUpLnRvQmUoXCJ0ZXN0LWFrc1wiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmxvY2F0aW9uKS50b0JlKFwid2VzdHVzXCIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuZG5zUHJlZml4KS50b0JlKFwidGVzdGFrc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBTeXN0ZW1Bc3NpZ25lZCBpZGVudGl0eSBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgaWRlbnRpdHk6IHsgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiIH0sXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlkZW50aXR5Py50eXBlKS50b0JlKFwiU3lzdGVtQXNzaWduZWRcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgVXNlckFzc2lnbmVkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBpZGVudGl0eToge1xuICAgICAgICAgIHR5cGU6IFwiVXNlckFzc2lnbmVkXCIsXG4gICAgICAgICAgdXNlckFzc2lnbmVkSWRlbnRpdGllczoge1xuICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL3Rlc3QvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VkSWRlbnRpdHkvdXNlckFzc2lnbmVkSWRlbnRpdGllcy90ZXN0XCI6XG4gICAgICAgICAgICAgIHt9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlkZW50aXR5Py50eXBlKS50b0JlKFwiVXNlckFzc2lnbmVkXCIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuaWRlbnRpdHk/LnVzZXJBc3NpZ25lZElkZW50aXRpZXMpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgU0tVIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBza3U6IHsgbmFtZTogXCJTdGFuZGFyZFwiLCB0aWVyOiBcIlN0YW5kYXJkXCIgfSxcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuc2t1Py5uYW1lKS50b0JlKFwiU3RhbmRhcmRcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5za3U/LnRpZXIpLnRvQmUoXCJTdGFuZGFyZFwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBhZ2VudCBwb29sIHByb2ZpbGVzIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJzeXN0ZW1cIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Q0c192M1wiLFxuICAgICAgICAgICAgbW9kZTogXCJTeXN0ZW1cIixcbiAgICAgICAgICAgIGVuYWJsZUF1dG9TY2FsaW5nOiB0cnVlLFxuICAgICAgICAgICAgbWluQ291bnQ6IDMsXG4gICAgICAgICAgICBtYXhDb3VudDogMTAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZXJcIixcbiAgICAgICAgICAgIGNvdW50OiAyLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgbW9kZTogXCJVc2VyXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZ2VudFBvb2xQcm9maWxlcykudG9IYXZlTGVuZ3RoKDIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYWdlbnRQb29sUHJvZmlsZXNbMF0ubmFtZSkudG9CZShcInN5c3RlbVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFnZW50UG9vbFByb2ZpbGVzWzFdLm5hbWUpLnRvQmUoXCJ1c2VyXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG5ldHdvcmsgcHJvZmlsZSB3aXRoIGFsbCBvcHRpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG5ldHdvcmtQcm9maWxlOiB7XG4gICAgICAgICAgbmV0d29ya1BsdWdpbjogXCJhenVyZVwiLFxuICAgICAgICAgIG5ldHdvcmtQb2xpY3k6IFwiY2FsaWNvXCIsXG4gICAgICAgICAgc2VydmljZUNpZHI6IFwiMTAuMC4wLjAvMTZcIixcbiAgICAgICAgICBkbnNTZXJ2aWNlSVA6IFwiMTAuMC4wLjEwXCIsXG4gICAgICAgICAgZG9ja2VyQnJpZGdlQ2lkcjogXCIxNzIuMTcuMC4xLzE2XCIsXG4gICAgICAgICAgbG9hZEJhbGFuY2VyU2t1OiBcInN0YW5kYXJkXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubmV0d29ya1Byb2ZpbGU/Lm5ldHdvcmtQbHVnaW4pLnRvQmUoXCJhenVyZVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5ldHdvcmtQcm9maWxlPy5uZXR3b3JrUG9saWN5KS50b0JlKFwiY2FsaWNvXCIpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubmV0d29ya1Byb2ZpbGU/LnNlcnZpY2VDaWRyKS50b0JlKFwiMTAuMC4wLjAvMTZcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgYWRkb24gcHJvZmlsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgYWRkb25Qcm9maWxlczoge1xuICAgICAgICAgIGh0dHBBcHBsaWNhdGlvblJvdXRpbmc6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIG9tc2FnZW50OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7IGxvZ0FuYWx5dGljc1dvcmtzcGFjZVJlc291cmNlSUQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdFwiIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoXG4gICAgICAgIGFrc0NsdXN0ZXIucHJvcHMuYWRkb25Qcm9maWxlcz8uaHR0cEFwcGxpY2F0aW9uUm91dGluZz8uZW5hYmxlZCxcbiAgICAgICkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFkZG9uUHJvZmlsZXM/Lm9tc2FnZW50Py5lbmFibGVkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHNlY3VyaXR5IHByb2ZpbGVzIHdpdGggQUFEIGFuZCBSQkFDXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGFhZFByb2ZpbGU6IHtcbiAgICAgICAgICBtYW5hZ2VkOiB0cnVlLFxuICAgICAgICAgIGVuYWJsZUF6dXJlUkJBQzogdHJ1ZSxcbiAgICAgICAgICBhZG1pbkdyb3VwT2JqZWN0SURzOiBbXCJncm91cC1pZC0xXCIsIFwiZ3JvdXAtaWQtMlwiXSxcbiAgICAgICAgfSxcbiAgICAgICAgZW5hYmxlUkJBQzogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hYWRQcm9maWxlPy5tYW5hZ2VkKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYWFkUHJvZmlsZT8uZW5hYmxlQXp1cmVSQkFDKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuZW5hYmxlUkJBQykudG9CZSh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBhdXRvLXNjYWxlciBwcm9maWxlXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGF1dG9TY2FsZXJQcm9maWxlOiB7XG4gICAgICAgICAgc2NhbGVEb3duRGVsYXlBZnRlckFkZDogXCIxMG1cIixcbiAgICAgICAgICBzY2FsZURvd25Vbm5lZWRlZFRpbWU6IFwiMTBtXCIsXG4gICAgICAgICAgc2NhbGVEb3duVXRpbGl6YXRpb25UaHJlc2hvbGQ6IFwiMC41XCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYXV0b1NjYWxlclByb2ZpbGU/LnNjYWxlRG93bkRlbGF5QWZ0ZXJBZGQpLnRvQmUoXG4gICAgICAgIFwiMTBtXCIsXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIFdpbmRvd3MgcHJvZmlsZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICB3aW5kb3dzUHJvZmlsZToge1xuICAgICAgICAgIGFkbWluVXNlcm5hbWU6IFwiYXp1cmV1c2VyXCIsXG4gICAgICAgICAgYWRtaW5QYXNzd29yZDogXCJQQHNzdzByZDEyMzQhXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMud2luZG93c1Byb2ZpbGU/LmFkbWluVXNlcm5hbWUpLnRvQmUoXCJhenVyZXVzZXJcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgTGludXggcHJvZmlsZVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBsaW51eFByb2ZpbGU6IHtcbiAgICAgICAgICBhZG1pblVzZXJuYW1lOiBcImF6dXJldXNlclwiLFxuICAgICAgICAgIHNzaDoge1xuICAgICAgICAgICAgcHVibGljS2V5czogW3sga2V5RGF0YTogXCJzc2gtcnNhIEFBQUFCMy4uLlwiIH1dLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubGludXhQcm9maWxlPy5hZG1pblVzZXJuYW1lKS50b0JlKFwiYXp1cmV1c2VyXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHRhZ3MgcHJvcGVybHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIixcbiAgICAgICAgICBjb3N0OiBcImNlbnRlcjFcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci50YWdzKS50b0VxdWFsKHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICBjb3N0OiBcImNlbnRlcjFcIixcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlZhbGlkYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIG5hbWUgZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWROYW1lXCIsIHtcbiAgICAgICAgICBuYW1lOiBcImludmFsaWRfbmFtZV93aXRoX3VuZGVyc2NvcmVzXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSBsb2NhdGlvbiBpcyBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJNaXNzaW5nTG9jYXRpb25cIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlbmFibGVWYWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pLnRvVGhyb3coKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHZhbGlkYXRlIEROUyBwcmVmaXggZm9ybWF0XCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWREbnNQcmVmaXhcIiwge1xuICAgICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgICAgZG5zUHJlZml4OiBcImludmFsaWRfZG5zX3ByZWZpeFwiLFxuICAgICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVuYWJsZVZhbGlkYXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgS3ViZXJuZXRlcyB2ZXJzaW9uIGZvcm1hdFwiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJJbnZhbGlkSzhzVmVyc2lvblwiLCB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICAgIGt1YmVybmV0ZXNWZXJzaW9uOiBcImludmFsaWQtdmVyc2lvblwiLFxuICAgICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVuYWJsZVZhbGlkYXRpb246IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfSkudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgYWdlbnQgcG9vbCBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIC8vIENyZWF0aW5nIHdpdGggZW1wdHkgYWdlbnQgcG9vbCBzaG91bGQgbm90IHRocm93IGR1cmluZyBjb25zdHJ1Y3Rpb25cbiAgICAgIC8vIGJ1dCB3b3VsZCBmYWlsIGR1cmluZyBUZXJyYWZvcm0gdmFsaWRhdGlvblxuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWRBZ2VudFBvb2xcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXSxcbiAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogZmFsc2UsIC8vIERpc2FibGUgdmFsaWRhdGlvbiB0byBhbGxvdyBjb25zdHJ1Y3Rpb25cbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZ2VudFBvb2xQcm9maWxlcykudG9IYXZlTGVuZ3RoKDApO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgbmV0d29yayBwcm9maWxlIGNvbnN0cmFpbnRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJWYWxpZE5ldHdvcmtcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBuZXR3b3JrUHJvZmlsZToge1xuICAgICAgICAgIG5ldHdvcmtQbHVnaW46IFwiYXp1cmVcIixcbiAgICAgICAgICBzZXJ2aWNlQ2lkcjogXCIxMC4wLjAuMC8xNlwiLFxuICAgICAgICAgIGRuc1NlcnZpY2VJUDogXCIxMC4wLjAuMTBcIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5uZXR3b3JrUHJvZmlsZT8ubmV0d29ya1BsdWdpbikudG9CZShcImF6dXJlXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgaWRlbnRpdHkgdHlwZSBjb21iaW5hdGlvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlZhbGlkSWRlbnRpdHlcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGlkZW50aXR5OiB7IHR5cGU6IFwiU3lzdGVtQXNzaWduZWRcIiB9LFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5pZGVudGl0eT8udHlwZSkudG9CZShcIlN5c3RlbUFzc2lnbmVkXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgU0tVIHRpZXJzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJWYWxpZFNrdVwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRcIiwgdGllcjogXCJTdGFuZGFyZFwiIH0sXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnNrdT8udGllcikudG9CZShcIlN0YW5kYXJkXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdmFsaWRhdGUgcHVibGljIG5ldHdvcmsgYWNjZXNzIHZhbHVlc1wiLCAoKSA9PiB7XG4gICAgICBleHBlY3QoKCkgPT4ge1xuICAgICAgICBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJJbnZhbGlkUHVibGljQWNjZXNzXCIsIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgICAgcHVibGljTmV0d29ya0FjY2VzczogXCJJbnZhbGlkXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCB2YWxpZGF0ZSBzdXBwb3J0IHBsYW4gdmFsdWVzXCIsICgpID0+IHtcbiAgICAgIGV4cGVjdCgoKSA9PiB7XG4gICAgICAgIG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkludmFsaWRTdXBwb3J0UGxhblwiLCB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICAgIHN1cHBvcnRQbGFuOiBcIkludmFsaWRQbGFuXCIsXG4gICAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZW5hYmxlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KS50b1Rocm93KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiUGFyZW50IElEXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBkZXRlcm1pbmUgcGFyZW50IElEIGZyb20gcmVzb3VyY2VHcm91cElkXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMucmVzb3VyY2VHcm91cElkKS50b0JlKHJlc291cmNlR3JvdXAuaWQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY29uc3RydWN0IGNvcnJlY3QgcGFyZW50IElEIGZvcm1hdFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IFwiL3N1YnNjcmlwdGlvbnMvdGVzdC1zdWIvcmVzb3VyY2VHcm91cHMvdGVzdC1yZ1wiLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5yZXNvdXJjZUdyb3VwSWQpLnRvQ29udGFpbihcIi9zdWJzY3JpcHRpb25zL1wiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnJlc291cmNlR3JvdXBJZCkudG9Db250YWluKFwiL3Jlc291cmNlR3JvdXBzL1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSByZXNvdXJjZSBncm91cCBJRCBpbiBkaWZmZXJlbnQgZm9ybWF0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnJlc291cmNlR3JvdXBJZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJPdXRwdXQgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgZXhwb3NlIGlkIHByb3BlcnR5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuaWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5pZCkudG9NYXRjaCgvXlxcJFxcey4qXFwuaWRcXH0kLyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBleHBvc2UgbmFtZSBwcm9wZXJ0eVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLm5hbWUpLnRvQmUoXCJ0ZXN0LWFrc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGV4cG9zZSBmcWRuIHByb3BlcnR5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIuZnFkbikudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGV4cG9zZSBrdWJlQ29uZmlnIHByb3BlcnR5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIua3ViZUNvbmZpZykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgYWtzQ2x1c3Rlci5rdWJlQ29uZmlnKS50b0JlKFwic3RyaW5nXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZXhwb3NlIGFsbCB0ZXJyYWZvcm0gb3V0cHV0c1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLmlkT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIubG9jYXRpb25PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIudGFnc091dHB1dCkudG9CZUluc3RhbmNlT2YoY2RrdG4uVGVycmFmb3JtT3V0cHV0KTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLmZxZG5PdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICAvLyBrdWJlQ29uZmlnIGlzIHJldHJpZXZlZCB2aWEgYSByZXNvdXJjZSBhY3Rpb24gKG5vdCBhIGRpcmVjdCBvdXRwdXQpXG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgdW5kZWZpbmVkIG91dHB1dHMgZ3JhY2VmdWxseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCgoKSA9PiBha3NDbHVzdGVyLmZxZG4pLm5vdC50b1Rocm93KCk7XG4gICAgICBleHBlY3QoKCkgPT4gYWtzQ2x1c3Rlci5rdWJlQ29uZmlnKS5ub3QudG9UaHJvdygpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgdHlwZSBvdXRwdXRzIGNvcnJlY3RseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdCh0eXBlb2YgYWtzQ2x1c3Rlci5pZCkudG9CZShcInN0cmluZ1wiKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgYWtzQ2x1c3Rlci5mcWRuKS50b0JlKFwic3RyaW5nXCIpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBha3NDbHVzdGVyLmt1YmVDb25maWcpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSWdub3JlIENoYW5nZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN1cHBvcnQgaWdub3JlQ2hhbmdlcyBmb3IgZHluYW1pYyBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcImt1YmVybmV0ZXNWZXJzaW9uXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvQ29udGFpbihcImt1YmVybmV0ZXNWZXJzaW9uXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYXBwbHkgaWdub3JlIGNoYW5nZXMgdG8gYWdlbnRQb29sUHJvZmlsZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaWdub3JlQ2hhbmdlczogW1wiYWdlbnRQb29sUHJvZmlsZXNcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuaWdub3JlQ2hhbmdlcykudG9Db250YWluKFwiYWdlbnRQb29sUHJvZmlsZXNcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhcHBseSBpZ25vcmUgY2hhbmdlcyB0byB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcInRhZ3NcIl0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuaWdub3JlQ2hhbmdlcykudG9Db250YWluKFwidGFnc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBpZ25vcmUgY2hhbmdlcyBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGlnbm9yZUNoYW5nZXM6IFtcImt1YmVybmV0ZXNWZXJzaW9uXCIsIFwiYWdlbnRQb29sUHJvZmlsZXNcIiwgXCJ0YWdzXCJdLFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmlnbm9yZUNoYW5nZXMpLnRvSGF2ZUxlbmd0aCgzKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJUYWcgTWFuYWdlbWVudFwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgYWRkIHRhZ3MgY29ycmVjdGx5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgYWtzQ2x1c3Rlci5hZGRUYWcoXCJuZXdUYWdcIiwgXCJuZXdWYWx1ZVwiKTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMudGFncyEubmV3VGFnKS50b0JlKFwibmV3VmFsdWVcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZW1vdmUgdGFncyBjb3JyZWN0bHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgdGFnczogeyBlbnZpcm9ubWVudDogXCJ0ZXN0XCIsIGNvc3Q6IFwiY2VudGVyMVwiIH0sXG4gICAgICB9KTtcblxuICAgICAgYWtzQ2x1c3Rlci5yZW1vdmVUYWcoXCJlbnZpcm9ubWVudFwiKTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMudGFncyEuZW52aXJvbm1lbnQpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnRhZ3MhLmNvc3QpLnRvQmUoXCJjZW50ZXIxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgbWVyZ2Ugd2l0aCBleGlzdGluZyB0YWdzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgYWtzQ2x1c3Rlci5hZGRUYWcoXCJjb3N0XCIsIFwiY2VudGVyMVwiKTtcbiAgICAgIGFrc0NsdXN0ZXIuYWRkVGFnKFwicHJvamVjdFwiLCBcImNka3RmXCIpO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5jb3N0KS50b0JlKFwiY2VudGVyMVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLnRhZ3MhLnByb2plY3QpLnRvQmUoXCJjZGt0ZlwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSB1bmRlZmluZWQgdGFnc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGFrc0NsdXN0ZXIuYWRkVGFnKFwiZmlyc3RUYWdcIiwgXCJmaXJzdFZhbHVlXCIpO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy50YWdzIS5maXJzdFRhZykudG9CZShcImZpcnN0VmFsdWVcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ29tcGxleCBDb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBoYW5kbGUgbXVsdGktbm9kZSBwb29sIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic3lzdGVtXCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9ENHNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiU3lzdGVtXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcInVzZXIxXCIsXG4gICAgICAgICAgICBjb3VudDogMixcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiVXNlclwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJ1c2VyMlwiLFxuICAgICAgICAgICAgY291bnQ6IDUsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDhzX3YzXCIsXG4gICAgICAgICAgICBtb2RlOiBcIlVzZXJcIixcbiAgICAgICAgICAgIGVuYWJsZUF1dG9TY2FsaW5nOiB0cnVlLFxuICAgICAgICAgICAgbWluQ291bnQ6IDMsXG4gICAgICAgICAgICBtYXhDb3VudDogMTAsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZ2VudFBvb2xQcm9maWxlcykudG9IYXZlTGVuZ3RoKDMpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIHByaXZhdGUgY2x1c3RlciBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGFwaVNlcnZlckFjY2Vzc1Byb2ZpbGU6IHtcbiAgICAgICAgICBlbmFibGVQcml2YXRlQ2x1c3RlcjogdHJ1ZSxcbiAgICAgICAgICBwcml2YXRlRE5TWm9uZTogXCJzeXN0ZW1cIixcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QoXG4gICAgICAgIGFrc0NsdXN0ZXIucHJvcHMuYXBpU2VydmVyQWNjZXNzUHJvZmlsZT8uZW5hYmxlUHJpdmF0ZUNsdXN0ZXIsXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgYWR2YW5jZWQgbmV0d29ya2luZyB3aXRoIGN1c3RvbSBWTmV0XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJUZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1ha3NcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcInRlc3Rha3NcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgICAgdm5ldFN1Ym5ldElEOlxuICAgICAgICAgICAgICBcIi9zdWJzY3JpcHRpb25zL3Rlc3QvcmVzb3VyY2VHcm91cHMvdGVzdC9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3Rlc3Qvc3VibmV0cy90ZXN0XCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgbmV0d29ya1Byb2ZpbGU6IHtcbiAgICAgICAgICBuZXR3b3JrUGx1Z2luOiBcImF6dXJlXCIsXG4gICAgICAgICAgc2VydmljZUNpZHI6IFwiMTAuMC4wLjAvMTZcIixcbiAgICAgICAgICBkbnNTZXJ2aWNlSVA6IFwiMTAuMC4wLjEwXCIsXG4gICAgICAgICAgZG9ja2VyQnJpZGdlQ2lkcjogXCIxNzIuMTcuMC4xLzE2XCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMubmV0d29ya1Byb2ZpbGU/Lm5ldHdvcmtQbHVnaW4pLnRvQmUoXCJhenVyZVwiKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFnZW50UG9vbFByb2ZpbGVzWzBdLnZuZXRTdWJuZXRJRCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBhbGwgYWRkb24gY29uZmlndXJhdGlvbnNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgYWtzQ2x1c3RlciA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIlRlc3RBa3NDbHVzdGVyXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LWFrc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBkbnNQcmVmaXg6IFwidGVzdGFrc1wiLFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgICAgY291bnQ6IDMsXG4gICAgICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfRDJzX3YzXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgYWRkb25Qcm9maWxlczoge1xuICAgICAgICAgIGh0dHBBcHBsaWNhdGlvblJvdXRpbmc6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIG9tc2FnZW50OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZVJlc291cmNlSUQ6XG4gICAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL3Rlc3QvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF6dXJlcG9saWN5OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBhenVyZUtleXZhdWx0U2VjcmV0c1Byb3ZpZGVyOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7IGVuYWJsZVNlY3JldFJvdGF0aW9uOiBcInRydWVcIiB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KFxuICAgICAgICBha3NDbHVzdGVyLnByb3BzLmFkZG9uUHJvZmlsZXM/Lmh0dHBBcHBsaWNhdGlvblJvdXRpbmc/LmVuYWJsZWQsXG4gICAgICApLnRvQmUodHJ1ZSk7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5hZGRvblByb2ZpbGVzPy5vbXNhZ2VudD8uZW5hYmxlZCkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnByb3BzLmFkZG9uUHJvZmlsZXM/LmF6dXJlcG9saWN5Py5lbmFibGVkKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIGNvbXBsZXRlIHByb2R1Y3Rpb24tcmVhZHkgY29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBha3NDbHVzdGVyID0gbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInByb2QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGFwaVZlcnNpb246IFwiMjAyNS0wNy0wMVwiLFxuICAgICAgICBkbnNQcmVmaXg6IFwicHJvZGFrc1wiLFxuICAgICAgICBrdWJlcm5ldGVzVmVyc2lvbjogXCIxLjI4LjNcIixcbiAgICAgICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRcIiwgdGllcjogXCJTdGFuZGFyZFwiIH0sXG4gICAgICAgIGlkZW50aXR5OiB7IHR5cGU6IFwiU3lzdGVtQXNzaWduZWRcIiB9LFxuICAgICAgICBhZ2VudFBvb2xQcm9maWxlczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwic3lzdGVtXCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9ENHNfdjNcIixcbiAgICAgICAgICAgIG1vZGU6IFwiU3lzdGVtXCIsXG4gICAgICAgICAgICBlbmFibGVBdXRvU2NhbGluZzogdHJ1ZSxcbiAgICAgICAgICAgIG1pbkNvdW50OiAzLFxuICAgICAgICAgICAgbWF4Q291bnQ6IDEwLFxuICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZXM6IFtcIjFcIiwgXCIyXCIsIFwiM1wiXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBuZXR3b3JrUHJvZmlsZToge1xuICAgICAgICAgIG5ldHdvcmtQbHVnaW46IFwiYXp1cmVcIixcbiAgICAgICAgICBuZXR3b3JrUG9saWN5OiBcImNhbGljb1wiLFxuICAgICAgICAgIHNlcnZpY2VDaWRyOiBcIjEwLjAuMC4wLzE2XCIsXG4gICAgICAgICAgZG5zU2VydmljZUlQOiBcIjEwLjAuMC4xMFwiLFxuICAgICAgICAgIGxvYWRCYWxhbmNlclNrdTogXCJzdGFuZGFyZFwiLFxuICAgICAgICB9LFxuICAgICAgICBlbmFibGVSQkFDOiB0cnVlLFxuICAgICAgICBhYWRQcm9maWxlOiB7XG4gICAgICAgICAgbWFuYWdlZDogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVBenVyZVJCQUM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGFwaVNlcnZlckFjY2Vzc1Byb2ZpbGU6IHtcbiAgICAgICAgICBlbmFibGVQcml2YXRlQ2x1c3RlcjogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgYWRkb25Qcm9maWxlczoge1xuICAgICAgICAgIG9tc2FnZW50OiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZVJlc291cmNlSUQ6XG4gICAgICAgICAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy90ZXN0L3Jlc291cmNlR3JvdXBzL3Rlc3QvcHJvdmlkZXJzL01pY3Jvc29mdC5PcGVyYXRpb25hbEluc2lnaHRzL3dvcmtzcGFjZXMvdGVzdFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIGNvc3Q6IFwiY2VudGVyMVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGV4cGVjdChha3NDbHVzdGVyLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG4gICAgICBleHBlY3QoYWtzQ2x1c3Rlci5wcm9wcy5lbmFibGVSQkFDKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGFrc0NsdXN0ZXIucHJvcHMuYWdlbnRQb29sUHJvZmlsZXNbMF0uZW5hYmxlQXV0b1NjYWxpbmcpLnRvQmUoXG4gICAgICAgIHRydWUsXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkNESyBUZXJyYWZvcm0gSW50ZWdyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIHN5bnRoZXNpemUgdG8gdmFsaWQgVGVycmFmb3JtIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgICAgbmV3IEFrc0NsdXN0ZXIoc3RhY2ssIFwiVGVzdEFrc0NsdXN0ZXJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtYWtzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICAgIGRuc1ByZWZpeDogXCJ0ZXN0YWtzXCIsXG4gICAgICAgIGFnZW50UG9vbFByb2ZpbGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJkZWZhdWx0XCIsXG4gICAgICAgICAgICBjb3VudDogMyxcbiAgICAgICAgICAgIHZtU2l6ZTogXCJTdGFuZGFyZF9EMnNfdjNcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG4gICAgICBleHBlY3Qoc3RhY2tDb25maWcucmVzb3VyY2UpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYW5kbGUgbXVsdGlwbGUgQUtTIGNsdXN0ZXJzIGluIHRoZSBzYW1lIHN0YWNrXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGFrczEgPSBuZXcgQWtzQ2x1c3RlcihzdGFjaywgXCJBa3NDbHVzdGVyMVwiLCB7XG4gICAgICAgIG5hbWU6IFwiYWtzLTFcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgICAgZG5zUHJlZml4OiBcImFrczFcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgYWtzMiA9IG5ldyBBa3NDbHVzdGVyKHN0YWNrLCBcIkFrc0NsdXN0ZXIyXCIsIHtcbiAgICAgICAgbmFtZTogXCJha3MtMlwiLFxuICAgICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjUtMDctMDFcIixcbiAgICAgICAgZG5zUHJlZml4OiBcImFrczJcIixcbiAgICAgICAgYWdlbnRQb29sUHJvZmlsZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgICAgIGNvdW50OiAzLFxuICAgICAgICAgICAgdm1TaXplOiBcIlN0YW5kYXJkX0Qyc192M1wiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KGFrczEucmVzb2x2ZWRBcGlWZXJzaW9uKS50b0JlKFwiMjAyNS0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdChha3MyLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjUtMDctMDFcIik7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtY29udGFpbmVyYXBwcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliXCI7XG4iXX0=
|