@microsoft/terraform-cdk-constructs 1.7.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.jsii +22 -22
  2. package/lib/azure-actiongroup/lib/action-group.js +1 -1
  3. package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
  4. package/lib/azure-aks/lib/aks-cluster.js +1 -1
  5. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
  6. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
  7. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
  8. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
  9. package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
  10. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
  11. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
  12. package/lib/azure-dnszone/lib/dns-zone.js +1 -1
  13. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  14. package/lib/azure-networkinterface/lib/network-interface.js +1 -1
  15. package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
  16. package/lib/azure-policyassignment/lib/policy-assignment.js +4 -9
  17. package/lib/azure-policyassignment/test/policy-assignment.spec.js +1 -6
  18. package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
  19. package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
  20. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
  21. package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
  22. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  23. package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
  24. package/lib/azure-roledefinition/lib/role-definition.js +1 -1
  25. package/lib/azure-storageaccount/lib/storage-account.js +1 -1
  26. package/lib/azure-subnet/lib/subnet.js +1 -1
  27. package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
  28. package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
  29. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +1 -1
  30. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
  31. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
  32. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
  33. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
  34. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
  35. package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
  36. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
  37. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
  38. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
  39. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
  40. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +1 -1
  41. package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
  42. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  43. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  44. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
  45. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  46. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  47. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  48. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +3 -2
  49. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  50. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  51. package/lib/testing/index.js +2 -2
  52. package/lib/testing/lib/cleanup.js +1 -1
  53. package/lib/testing/lib/metadata.js +1 -1
  54. package/package.json +1 -1
package/.jsii CHANGED
@@ -26914,7 +26914,7 @@
26914
26914
  },
26915
26915
  "locationInModule": {
26916
26916
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
26917
- "line": 405
26917
+ "line": 397
26918
26918
  },
26919
26919
  "name": "apiSchema",
26920
26920
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -26933,7 +26933,7 @@
26933
26933
  },
26934
26934
  "locationInModule": {
26935
26935
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
26936
- "line": 428
26936
+ "line": 420
26937
26937
  },
26938
26938
  "name": "createResourceBody",
26939
26939
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -26959,7 +26959,7 @@
26959
26959
  },
26960
26960
  "locationInModule": {
26961
26961
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
26962
- "line": 390
26962
+ "line": 382
26963
26963
  },
26964
26964
  "name": "defaultVersion",
26965
26965
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -26977,7 +26977,7 @@
26977
26977
  },
26978
26978
  "locationInModule": {
26979
26979
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
26980
- "line": 459
26980
+ "line": 451
26981
26981
  },
26982
26982
  "name": "resolveParentId",
26983
26983
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -27003,7 +27003,7 @@
27003
27003
  },
27004
27004
  "locationInModule": {
27005
27005
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
27006
- "line": 397
27006
+ "line": 389
27007
27007
  },
27008
27008
  "name": "resourceType",
27009
27009
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -27025,7 +27025,7 @@
27025
27025
  },
27026
27026
  "locationInModule": {
27027
27027
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
27028
- "line": 415
27028
+ "line": 407
27029
27029
  },
27030
27030
  "name": "supportsTags",
27031
27031
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -27047,7 +27047,7 @@
27047
27047
  "immutable": true,
27048
27048
  "locationInModule": {
27049
27049
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
27050
- "line": 486
27050
+ "line": 478
27051
27051
  },
27052
27052
  "name": "assignmentScope",
27053
27053
  "type": {
@@ -27062,7 +27062,7 @@
27062
27062
  "immutable": true,
27063
27063
  "locationInModule": {
27064
27064
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
27065
- "line": 493
27065
+ "line": 485
27066
27066
  },
27067
27067
  "name": "enforcementMode",
27068
27068
  "type": {
@@ -27105,7 +27105,7 @@
27105
27105
  "immutable": true,
27106
27106
  "locationInModule": {
27107
27107
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
27108
- "line": 479
27108
+ "line": 471
27109
27109
  },
27110
27110
  "name": "policyDefinitionId",
27111
27111
  "type": {
@@ -27135,7 +27135,7 @@
27135
27135
  "immutable": true,
27136
27136
  "locationInModule": {
27137
27137
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
27138
- "line": 472
27138
+ "line": 464
27139
27139
  },
27140
27140
  "name": "resourceId",
27141
27141
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -70516,7 +70516,7 @@
70516
70516
  },
70517
70517
  "locationInModule": {
70518
70518
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70519
- "line": 405
70519
+ "line": 397
70520
70520
  },
70521
70521
  "name": "apiSchema",
70522
70522
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -70535,7 +70535,7 @@
70535
70535
  },
70536
70536
  "locationInModule": {
70537
70537
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70538
- "line": 428
70538
+ "line": 420
70539
70539
  },
70540
70540
  "name": "createResourceBody",
70541
70541
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -70561,7 +70561,7 @@
70561
70561
  },
70562
70562
  "locationInModule": {
70563
70563
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70564
- "line": 390
70564
+ "line": 382
70565
70565
  },
70566
70566
  "name": "defaultVersion",
70567
70567
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -70579,7 +70579,7 @@
70579
70579
  },
70580
70580
  "locationInModule": {
70581
70581
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70582
- "line": 459
70582
+ "line": 451
70583
70583
  },
70584
70584
  "name": "resolveParentId",
70585
70585
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -70605,7 +70605,7 @@
70605
70605
  },
70606
70606
  "locationInModule": {
70607
70607
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70608
- "line": 397
70608
+ "line": 389
70609
70609
  },
70610
70610
  "name": "resourceType",
70611
70611
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -70627,7 +70627,7 @@
70627
70627
  },
70628
70628
  "locationInModule": {
70629
70629
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70630
- "line": 415
70630
+ "line": 407
70631
70631
  },
70632
70632
  "name": "supportsTags",
70633
70633
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -70650,7 +70650,7 @@
70650
70650
  "immutable": true,
70651
70651
  "locationInModule": {
70652
70652
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70653
- "line": 486
70653
+ "line": 478
70654
70654
  },
70655
70655
  "name": "assignmentScope",
70656
70656
  "type": {
@@ -70665,7 +70665,7 @@
70665
70665
  "immutable": true,
70666
70666
  "locationInModule": {
70667
70667
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70668
- "line": 493
70668
+ "line": 485
70669
70669
  },
70670
70670
  "name": "enforcementMode",
70671
70671
  "type": {
@@ -70708,7 +70708,7 @@
70708
70708
  "immutable": true,
70709
70709
  "locationInModule": {
70710
70710
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70711
- "line": 479
70711
+ "line": 471
70712
70712
  },
70713
70713
  "name": "policyDefinitionId",
70714
70714
  "type": {
@@ -70738,7 +70738,7 @@
70738
70738
  "immutable": true,
70739
70739
  "locationInModule": {
70740
70740
  "filename": "src/azure-policyassignment/lib/policy-assignment.ts",
70741
- "line": 472
70741
+ "line": 464
70742
70742
  },
70743
70743
  "name": "resourceId",
70744
70744
  "overrides": "@microsoft/terraform-cdk-constructs.core_azure.AzapiResource",
@@ -110969,6 +110969,6 @@
110969
110969
  "usedFeatures": [
110970
110970
  "class-covariant-overrides"
110971
110971
  ],
110972
- "version": "1.7.0",
110973
- "fingerprint": "VEDy7HhcoVy4ry85MJYhWQwnVnIckjjl/GLMlMCmkDo="
110972
+ "version": "1.7.1",
110973
+ "fingerprint": "Kw0J/FZOkPTbuxzpQHvrI3R6N39mSD/CkiRq0NCA+ZI="
110974
110974
  }
@@ -168,7 +168,7 @@ class ActionGroup extends azapi_resource_1.AzapiResource {
168
168
  }
169
169
  exports.ActionGroup = ActionGroup;
170
170
  _a = JSII_RTTI_SYMBOL_1;
171
- ActionGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActionGroup", version: "1.7.0" };
171
+ ActionGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActionGroup", version: "1.7.1" };
172
172
  (() => {
173
173
  azapi_resource_1.AzapiResource.registerSchemas(action_group_schemas_1.ACTION_GROUP_TYPE, action_group_schemas_1.ALL_ACTION_GROUP_VERSIONS);
174
174
  })();
@@ -179,7 +179,7 @@ class ActivityLogAlert extends azapi_resource_1.AzapiResource {
179
179
  }
180
180
  exports.ActivityLogAlert = ActivityLogAlert;
181
181
  _a = JSII_RTTI_SYMBOL_1;
182
- ActivityLogAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActivityLogAlert", version: "1.7.0" };
182
+ ActivityLogAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActivityLogAlert", version: "1.7.1" };
183
183
  (() => {
184
184
  azapi_resource_1.AzapiResource.registerSchemas(activity_log_alert_schemas_1.ACTIVITY_LOG_ALERT_TYPE, activity_log_alert_schemas_1.ALL_ACTIVITY_LOG_ALERT_VERSIONS);
185
185
  })();
@@ -459,7 +459,7 @@ class AksCluster extends azapi_resource_1.AzapiResource {
459
459
  }
460
460
  exports.AksCluster = AksCluster;
461
461
  _a = JSII_RTTI_SYMBOL_1;
462
- AksCluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.AksCluster", version: "1.7.0" };
462
+ AksCluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.AksCluster", version: "1.7.1" };
463
463
  (() => {
464
464
  azapi_resource_1.AzapiResource.registerSchemas(aks_cluster_schemas_1.AKS_CLUSTER_TYPE, aks_cluster_schemas_1.ALL_AKS_CLUSTER_VERSIONS);
465
465
  })();
@@ -167,7 +167,7 @@ class DiagnosticSettings extends azapi_resource_1.AzapiResource {
167
167
  }
168
168
  exports.DiagnosticSettings = DiagnosticSettings;
169
169
  _a = JSII_RTTI_SYMBOL_1;
170
- DiagnosticSettings[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DiagnosticSettings", version: "1.7.0" };
170
+ DiagnosticSettings[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DiagnosticSettings", version: "1.7.1" };
171
171
  (() => {
172
172
  azapi_resource_1.AzapiResource.registerSchemas(diagnostic_settings_schemas_1.DIAGNOSTIC_SETTINGS_TYPE, diagnostic_settings_schemas_1.ALL_DIAGNOSTIC_SETTINGS_VERSIONS);
173
173
  })();
@@ -207,7 +207,7 @@ class DnsForwardingRuleset extends azapi_resource_1.AzapiResource {
207
207
  }
208
208
  exports.DnsForwardingRuleset = DnsForwardingRuleset;
209
209
  _a = JSII_RTTI_SYMBOL_1;
210
- DnsForwardingRuleset[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsForwardingRuleset", version: "1.7.0" };
210
+ DnsForwardingRuleset[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsForwardingRuleset", version: "1.7.1" };
211
211
  (() => {
212
212
  azapi_resource_1.AzapiResource.registerSchemas(dns_forwarding_ruleset_schemas_1.DNS_FORWARDING_RULESET_TYPE, dns_forwarding_ruleset_schemas_1.ALL_DNS_FORWARDING_RULESET_VERSIONS);
213
213
  })();
@@ -186,7 +186,7 @@ class ForwardingRule extends azapi_resource_1.AzapiResource {
186
186
  }
187
187
  exports.ForwardingRule = ForwardingRule;
188
188
  _a = JSII_RTTI_SYMBOL_1;
189
- ForwardingRule[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ForwardingRule", version: "1.7.0" };
189
+ ForwardingRule[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ForwardingRule", version: "1.7.1" };
190
190
  (() => {
191
191
  azapi_resource_1.AzapiResource.registerSchemas(forwarding_rule_schemas_1.FORWARDING_RULE_TYPE, forwarding_rule_schemas_1.ALL_FORWARDING_RULE_VERSIONS);
192
192
  })();
@@ -171,7 +171,7 @@ class DnsForwardingRulesetVirtualNetworkLink extends azapi_resource_1.AzapiResou
171
171
  }
172
172
  exports.DnsForwardingRulesetVirtualNetworkLink = DnsForwardingRulesetVirtualNetworkLink;
173
173
  _a = JSII_RTTI_SYMBOL_1;
174
- DnsForwardingRulesetVirtualNetworkLink[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsForwardingRulesetVirtualNetworkLink", version: "1.7.0" };
174
+ DnsForwardingRulesetVirtualNetworkLink[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsForwardingRulesetVirtualNetworkLink", version: "1.7.1" };
175
175
  (() => {
176
176
  azapi_resource_1.AzapiResource.registerSchemas(virtual_network_link_schemas_1.VIRTUAL_NETWORK_LINK_TYPE, virtual_network_link_schemas_1.ALL_VIRTUAL_NETWORK_LINK_VERSIONS);
177
177
  })();
@@ -229,7 +229,7 @@ class DnsResolver extends azapi_resource_1.AzapiResource {
229
229
  }
230
230
  exports.DnsResolver = DnsResolver;
231
231
  _a = JSII_RTTI_SYMBOL_1;
232
- DnsResolver[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsResolver", version: "1.7.0" };
232
+ DnsResolver[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsResolver", version: "1.7.1" };
233
233
  (() => {
234
234
  azapi_resource_1.AzapiResource.registerSchemas(dns_resolver_schemas_1.DNS_RESOLVER_TYPE, dns_resolver_schemas_1.ALL_DNS_RESOLVER_VERSIONS);
235
235
  })();
@@ -236,7 +236,7 @@ class DnsResolverInboundEndpoint extends azapi_resource_1.AzapiResource {
236
236
  }
237
237
  exports.DnsResolverInboundEndpoint = DnsResolverInboundEndpoint;
238
238
  _a = JSII_RTTI_SYMBOL_1;
239
- DnsResolverInboundEndpoint[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsResolverInboundEndpoint", version: "1.7.0" };
239
+ DnsResolverInboundEndpoint[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsResolverInboundEndpoint", version: "1.7.1" };
240
240
  (() => {
241
241
  azapi_resource_1.AzapiResource.registerSchemas(inbound_endpoint_schemas_1.DNS_RESOLVER_INBOUND_ENDPOINT_TYPE, inbound_endpoint_schemas_1.ALL_DNS_RESOLVER_INBOUND_ENDPOINT_VERSIONS);
242
242
  })();
@@ -227,7 +227,7 @@ class DnsResolverOutboundEndpoint extends azapi_resource_1.AzapiResource {
227
227
  }
228
228
  exports.DnsResolverOutboundEndpoint = DnsResolverOutboundEndpoint;
229
229
  _a = JSII_RTTI_SYMBOL_1;
230
- DnsResolverOutboundEndpoint[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsResolverOutboundEndpoint", version: "1.7.0" };
230
+ DnsResolverOutboundEndpoint[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsResolverOutboundEndpoint", version: "1.7.1" };
231
231
  (() => {
232
232
  azapi_resource_1.AzapiResource.registerSchemas(outbound_endpoint_schemas_1.DNS_RESOLVER_OUTBOUND_ENDPOINT_TYPE, outbound_endpoint_schemas_1.ALL_DNS_RESOLVER_OUTBOUND_ENDPOINT_VERSIONS);
233
233
  })();
@@ -221,7 +221,7 @@ class DnsZone extends azapi_resource_1.AzapiResource {
221
221
  }
222
222
  exports.DnsZone = DnsZone;
223
223
  _a = JSII_RTTI_SYMBOL_1;
224
- DnsZone[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsZone", version: "1.7.0" };
224
+ DnsZone[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsZone", version: "1.7.1" };
225
225
  (() => {
226
226
  azapi_resource_1.AzapiResource.registerSchemas(dns_zone_schemas_1.DNS_ZONE_TYPE, dns_zone_schemas_1.ALL_DNS_ZONE_VERSIONS);
227
227
  })();
@@ -219,7 +219,7 @@ class MetricAlert extends azapi_resource_1.AzapiResource {
219
219
  }
220
220
  exports.MetricAlert = MetricAlert;
221
221
  _a = JSII_RTTI_SYMBOL_1;
222
- MetricAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.MetricAlert", version: "1.7.0" };
222
+ MetricAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.MetricAlert", version: "1.7.1" };
223
223
  (() => {
224
224
  azapi_resource_1.AzapiResource.registerSchemas(metric_alert_schemas_1.METRIC_ALERT_TYPE, metric_alert_schemas_1.ALL_METRIC_ALERT_VERSIONS);
225
225
  })();
@@ -206,7 +206,7 @@ class NetworkInterface extends azapi_resource_1.AzapiResource {
206
206
  }
207
207
  exports.NetworkInterface = NetworkInterface;
208
208
  _a = JSII_RTTI_SYMBOL_1;
209
- NetworkInterface[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkInterface", version: "1.7.0" };
209
+ NetworkInterface[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkInterface", version: "1.7.1" };
210
210
  (() => {
211
211
  azapi_resource_1.AzapiResource.registerSchemas(network_interface_schemas_1.NETWORK_INTERFACE_TYPE, network_interface_schemas_1.ALL_NETWORK_INTERFACE_VERSIONS);
212
212
  })();
@@ -219,7 +219,7 @@ class NetworkSecurityGroup extends azapi_resource_1.AzapiResource {
219
219
  }
220
220
  exports.NetworkSecurityGroup = NetworkSecurityGroup;
221
221
  _a = JSII_RTTI_SYMBOL_1;
222
- NetworkSecurityGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkSecurityGroup", version: "1.7.0" };
222
+ NetworkSecurityGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkSecurityGroup", version: "1.7.1" };
223
223
  (() => {
224
224
  azapi_resource_1.AzapiResource.registerSchemas(network_security_group_schemas_1.NETWORK_SECURITY_GROUP_TYPE, network_security_group_schemas_1.ALL_NETWORK_SECURITY_GROUP_VERSIONS);
225
225
  })();
@@ -102,11 +102,6 @@ class PolicyAssignment extends azapi_resource_1.AzapiResource {
102
102
  constructor(scope, id, props) {
103
103
  super(scope, id, props);
104
104
  this.props = props;
105
- // Validate that location is provided when identity is specified
106
- if (props.identity && !this.location) {
107
- throw new Error(`Location is required for Policy Assignment "${props.name || id}" when identity is specified. ` +
108
- `The managed identity must be provisioned in a specific Azure region.`);
109
- }
110
105
  // Extract properties from the AZAPI resource outputs using Terraform interpolation
111
106
  // Create Terraform outputs for easy access and referencing from other resources
112
107
  this.idOutput = new cdktf.TerraformOutput(this, "id", {
@@ -182,8 +177,8 @@ class PolicyAssignment extends azapi_resource_1.AzapiResource {
182
177
  // Add identity if provided
183
178
  if (typedProps.identity) {
184
179
  body.identity = typedProps.identity;
185
- // Azure requires location when identity is specified for managed identity provisioning
186
- body.location = typedProps.location;
180
+ // Note: location is NOT added to the body for policy assignments
181
+ // It's handled by the AZAPI provider config for identity provisioning
187
182
  }
188
183
  return body;
189
184
  }
@@ -241,8 +236,8 @@ class PolicyAssignment extends azapi_resource_1.AzapiResource {
241
236
  }
242
237
  exports.PolicyAssignment = PolicyAssignment;
243
238
  _a = JSII_RTTI_SYMBOL_1;
244
- PolicyAssignment[_a] = { fqn: "@microsoft/terraform-cdk-constructs.PolicyAssignment", version: "1.7.0" };
239
+ PolicyAssignment[_a] = { fqn: "@microsoft/terraform-cdk-constructs.PolicyAssignment", version: "1.7.1" };
245
240
  (() => {
246
241
  azapi_resource_1.AzapiResource.registerSchemas(policy_assignment_schemas_1.POLICY_ASSIGNMENT_TYPE, policy_assignment_schemas_1.ALL_POLICY_ASSIGNMENT_VERSIONS);
247
242
  })();
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWFzc2lnbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcG9saWN5YXNzaWdubWVudC9saWIvcG9saWN5LWFzc2lnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCwrQkFBK0I7QUFFL0IsMkVBR3FDO0FBQ3JDLDhFQUdtRDtBQW1PbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkRHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSw4QkFBYTtJQWlCakQsb0JBQW9CO0lBRXBCOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsZ0VBQWdFO1FBQ2hFLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyxNQUFNLElBQUksS0FBSyxDQUNiLCtDQUErQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsZ0NBQWdDO2dCQUM3RixzRUFBc0UsQ0FDekUsQ0FBQztRQUNKLENBQUM7UUFFRCxtRkFBbUY7UUFFbkYsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDcEQsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2QsV0FBVyxFQUFFLGlDQUFpQztTQUMvQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3hE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VyxFQUFFO2dCQUM5QztvQkFDRSxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2lCQUN6QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQWpNSCw0Q0FrTUM7OztBQWpNQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQixrREFBc0IsRUFDdEIsMERBQThCLENBQy9CLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBQb2xpY3kgQXNzaWdubWVudCBpbXBsZW1lbnRhdGlvbiB1c2luZyBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBtYW5hZ2luZyBBenVyZSBQb2xpY3kgQXNzaWdubWVudHNcbiAqIHVzaW5nIHRoZSBBWkFQSSBwcm92aWRlci4gUG9saWN5IGFzc2lnbm1lbnRzIGFwcGx5IHBvbGljeSBkZWZpbml0aW9ucyB0byBzcGVjaWZpYyBzY29wZXNcbiAqIChtYW5hZ2VtZW50IGdyb3VwLCBzdWJzY3JpcHRpb24sIHJlc291cmNlIGdyb3VwLCBvciByZXNvdXJjZSkgYW5kIGNhbiBwcm92aWRlIHBhcmFtZXRlclxuICogdmFsdWVzIGFuZCBlbmZvcmNlbWVudCBzZXR0aW5ncy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIyLTA2LTAxIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBTdXBwb3J0IGZvciBlbmZvcmNlbWVudCBtb2RlcyAoRGVmYXVsdCwgRG9Ob3RFbmZvcmNlKVxuICogLSBNYW5hZ2VkIGlkZW50aXR5IHN1cHBvcnQgZm9yIHJlbWVkaWF0aW9uIHBvbGljaWVzXG4gKiAtIEN1c3RvbSBub24tY29tcGxpYW5jZSBtZXNzYWdlc1xuICogLSBTY29wZSBleGNsdXNpb25zIChub3RTY29wZXMpXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9QT0xJQ1lfQVNTSUdOTUVOVF9WRVJTSU9OUyxcbiAgUE9MSUNZX0FTU0lHTk1FTlRfVFlQRSxcbn0gZnJvbSBcIi4vcG9saWN5LWFzc2lnbm1lbnQtc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBJZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciBwb2xpY3kgYXNzaWdubWVudHNcbiAqIFJlcXVpcmVkIGZvciBwb2xpY2llcyB3aXRoIGRlcGxveUlmTm90RXhpc3RzIG9yIG1vZGlmeSBlZmZlY3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudElkZW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIG1hbmFnZWQgaWRlbnRpdHlcbiAgICogQGV4YW1wbGUgXCJTeXN0ZW1Bc3NpZ25lZFwiLCBcIlVzZXJBc3NpZ25lZFwiLCBcIk5vbmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlciBhc3NpZ25lZCBpZGVudGl0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICogUmVxdWlyZWQgd2hlbiB0eXBlIGlzIFVzZXJBc3NpZ25lZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB7XG4gICAqICAgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VkSWRlbnRpdHkvdXNlckFzc2lnbmVkSWRlbnRpdGllcy9pZGVudGl0eVwiOiB7fVxuICAgKiB9XG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBOb24tY29tcGxpYW5jZSBtZXNzYWdlIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lBc3NpZ25tZW50Tm9uQ29tcGxpYW5jZU1lc3NhZ2Uge1xuICAvKipcbiAgICogVGhlIG5vbi1jb21wbGlhbmNlIG1lc3NhZ2UgZm9yIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGRlZmluaXRpb24gcmVmZXJlbmNlIElEIHdpdGhpbiBhIHBvbGljeSBzZXQgZGVmaW5pdGlvblxuICAgKiBPcHRpb25hbCAtIGlmIHNwZWNpZmllZCwgdGhpcyBtZXNzYWdlIGFwcGxpZXMgb25seSB0byB0aGUgc3BlY2lmaWVkIHBvbGljeSB3aXRoaW4gdGhlIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RGVmaW5pdGlvblJlZmVyZW5jZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSB1bmlmaWVkIEF6dXJlIFBvbGljeSBBc3NpZ25tZW50XG4gKlxuICogRXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMgd2l0aCBQb2xpY3kgQXNzaWdubWVudCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudFByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwb2xpY3kgZGVmaW5pdGlvbiBJRCB0byBhc3NpZ25cbiAgICogVGhpcyBjYW4gYmUgYSBidWlsdC1pbiBvciBjdXN0b20gcG9saWN5IGRlZmluaXRpb25cbiAgICogUmVxdWlyZWQgcHJvcGVydHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zL3BvbGljeS1uYW1lXCJcbiAgICogQGV4YW1wbGUgXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zLzA2YTc4ZTIwLTkzNTgtNDFjOS05MjNjLWZiNzM2ZDM4MmE0ZFwiIChidWlsdC1pbilcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeURlZmluaXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgYXQgd2hpY2ggdGhlIHBvbGljeSBhc3NpZ25tZW50IGlzIGFwcGxpZWRcbiAgICogQ2FuIGJlIGEgbWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2VcbiAgICogUmVxdWlyZWQgcHJvcGVydHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VtZW50L21hbmFnZW1lbnRHcm91cHMvbXktbWdcIlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMFwiXG4gICAqIEBleGFtcGxlIFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL3JnLW5hbWVcIlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICogUHJvdmlkZXMgYSBodW1hbi1yZWFkYWJsZSBuYW1lIGZvciB0aGUgYXNzaWdubWVudFxuICAgKlxuICAgKiBAZXhhbXBsZSBcIlJlcXVpcmUgdGFnIG9uIHJlc291cmNlcyBpbiBwcm9kdWN0aW9uXCJcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGFzc2lnbm1lbnQgZGVzY3JpcHRpb25cbiAgICogUHJvdmlkZXMgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGFzc2lnbm1lbnRcbiAgICpcbiAgICogQGV4YW1wbGUgXCJFbmZvcmNlcyByZXF1aXJlZCB0YWdzIG9uIGFsbCByZXNvdXJjZXMgaW4gcHJvZHVjdGlvbiBlbnZpcm9ubWVudFwiXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVuZm9yY2VtZW50IG1vZGUgb2YgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIEBkZWZhdWx0IFwiRGVmYXVsdFwiXG4gICAqIEBleGFtcGxlIFwiRGVmYXVsdFwiIC0gUG9saWN5IGVmZmVjdCBpcyBlbmZvcmNlZCBkdXJpbmcgcmVzb3VyY2UgY3JlYXRpb24vdXBkYXRlXG4gICAqIEBleGFtcGxlIFwiRG9Ob3RFbmZvcmNlXCIgLSBQb2xpY3kgZWZmZWN0IGlzIG5vdCBlbmZvcmNlZCAoYXVkaXQgb25seSlcbiAgICovXG4gIHJlYWRvbmx5IGVuZm9yY2VtZW50TW9kZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVycyBmb3IgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIFByb3ZpZGVzIHZhbHVlcyBmb3IgcGFyYW1ldGVycyBkZWZpbmVkIGluIHRoZSBwb2xpY3kgZGVmaW5pdGlvblxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB7XG4gICAqICAgdGFnTmFtZToge1xuICAgKiAgICAgdmFsdWU6IFwiRW52aXJvbm1lbnRcIlxuICAgKiAgIH0sXG4gICAqICAgdGFnVmFsdWU6IHtcbiAgICogICAgIHZhbHVlOiBcIlByb2R1Y3Rpb25cIlxuICAgKiAgIH1cbiAgICogfVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IGFueTtcblxuICAvKipcbiAgICogTWV0YWRhdGEgZm9yIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKiBVc2VkIHRvIHN0b3JlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gbGlrZSBhc3NpZ25lZEJ5LCBwYXJhbWV0ZXJTY29wZXMsIGV0Yy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICoge1xuICAgKiAgIGFzc2lnbmVkQnk6IFwiYWRtaW5AZXhhbXBsZS5jb21cIixcbiAgICogICBwYXJhbWV0ZXJTY29wZXM6IHt9XG4gICAqIH1cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlZCBpZGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIFJlcXVpcmVkIGZvciBwb2xpY2llcyB3aXRoIGRlcGxveUlmTm90RXhpc3RzIG9yIG1vZGlmeSBlZmZlY3RzXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHtcbiAgICogICB0eXBlOiBcIlN5c3RlbUFzc2lnbmVkXCJcbiAgICogfVxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHk/OiBQb2xpY3lBc3NpZ25tZW50SWRlbnRpdHk7XG5cbiAgLyoqXG4gICAqIFRoZSBwb2xpY3kncyBleGNsdWRlZCBzY29wZXNcbiAgICogUmVzb3VyY2VzIHdpdGhpbiB0aGVzZSBzY29wZXMgd2lsbCBub3QgYmUgZXZhbHVhdGVkIGJ5IHRoZSBwb2xpY3lcbiAgICpcbiAgICogQGV4YW1wbGUgW1wiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL2V4Y2x1ZGVkLXJnXCJdXG4gICAqL1xuICByZWFkb25seSBub3RTY29wZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5vbi1jb21wbGlhbmNlIG1lc3NhZ2VzIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICogUHJvdmlkZXMgY3VzdG9tIG1lc3NhZ2VzIHdoZW4gcmVzb3VyY2VzIGFyZSBub24tY29tcGxpYW50XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIFtcbiAgICogICB7XG4gICAqICAgICBtZXNzYWdlOiBcIlJlc291cmNlIG11c3QgaGF2ZSB0aGUgRW52aXJvbm1lbnQgdGFnXCJcbiAgICogICB9XG4gICAqIF1cbiAgICovXG4gIHJlYWRvbmx5IG5vbkNvbXBsaWFuY2VNZXNzYWdlcz86IFBvbGljeUFzc2lnbm1lbnROb25Db21wbGlhbmNlTWVzc2FnZVtdO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcIm1ldGFkYXRhXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBpbnRlcmZhY2UgZm9yIEF6dXJlIFBvbGljeSBBc3NpZ25tZW50XG4gKiBUaGlzIGlzIHJlcXVpcmVkIGZvciBKU0lJIGNvbXBsaWFuY2UgdG8gc3VwcG9ydCBtdWx0aS1sYW5ndWFnZSBjb2RlIGdlbmVyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lBc3NpZ25tZW50UHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGRlZmluaXRpb24gSURcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeURlZmluaXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgb2YgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqL1xuICByZWFkb25seSBzY29wZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIG9mIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwb2xpY3kgYXNzaWdubWVudCBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmZvcmNlbWVudCBtb2RlXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlbWVudE1vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlcnMgZm9yIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IGFueTtcblxuICAvKipcbiAgICogTWV0YWRhdGEgZm9yIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFRoZSBwb2xpY3kncyBleGNsdWRlZCBzY29wZXNcbiAgICovXG4gIHJlYWRvbmx5IG5vdFNjb3Blcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgbm9uLWNvbXBsaWFuY2UgbWVzc2FnZXNcbiAgICovXG4gIHJlYWRvbmx5IG5vbkNvbXBsaWFuY2VNZXNzYWdlcz86IFBvbGljeUFzc2lnbm1lbnROb25Db21wbGlhbmNlTWVzc2FnZVtdO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgUG9saWN5IEFzc2lnbm1lbnQgQVBJIGNhbGxzXG4gKiBUaGlzIG1hdGNoZXMgdGhlIEF6dXJlIFJFU1QgQVBJIHNjaGVtYSBmb3IgcG9saWN5IGFzc2lnbm1lbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudEJvZHkge1xuICAvKipcbiAgICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzOiBQb2xpY3lBc3NpZ25tZW50UHJvcGVydGllcztcblxuICAvKipcbiAgICogVGhlIG1hbmFnZWQgaWRlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHk/OiBQb2xpY3lBc3NpZ25tZW50SWRlbnRpdHk7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBQb2xpY3kgQXNzaWdubWVudCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gZm9yIG1hbmFnaW5nIEF6dXJlXG4gKiBQb2xpY3kgQXNzaWdubWVudHMuIEl0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIHJlc29sdXRpb24sIHNjaGVtYSB2YWxpZGF0aW9uLFxuICogYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIE5vdGU6IFBvbGljeSBhc3NpZ25tZW50cyBjYW4gYmUgZGVwbG95ZWQgYXQgbWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCxcbiAqIG9yIHJlc291cmNlIHNjb3BlLiBMaWtlIHBvbGljeSBkZWZpbml0aW9ucywgdGhleSBkbyBub3QgaGF2ZSBhIGxvY2F0aW9uIHByb3BlcnR5IGFzIHRoZXlcbiAqIGFyZSBub3QgcmVnaW9uLXNwZWNpZmljLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyBwb2xpY3kgYXNzaWdubWVudDpcbiAqIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgUG9saWN5QXNzaWdubWVudCh0aGlzLCBcImFzc2lnbm1lbnRcIiwge1xuICogICBuYW1lOiBcInJlcXVpcmUtdGFnLWFzc2lnbm1lbnRcIixcbiAqICAgcG9saWN5RGVmaW5pdGlvbklkOiBwb2xpY3lEZWZpbml0aW9uLmlkLFxuICogICBzY29wZTogXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmctbmFtZVwiLFxuICogICBkaXNwbGF5TmFtZTogXCJSZXF1aXJlIHRhZyBvbiByZXNvdXJjZXNcIixcbiAqICAgZGVzY3JpcHRpb246IFwiRW5mb3JjZXMgcmVxdWlyZWQgdGFncyBvbiByZXNvdXJjZXNcIlxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFBvbGljeSBhc3NpZ25tZW50IHdpdGggcGFyYW1ldGVyczpcbiAqIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgUG9saWN5QXNzaWdubWVudCh0aGlzLCBcImFzc2lnbm1lbnRcIiwge1xuICogICBuYW1lOiBcInJlcXVpcmUtdGFnLWFzc2lnbm1lbnRcIixcbiAqICAgcG9saWN5RGVmaW5pdGlvbklkOiBwb2xpY3lEZWZpbml0aW9uLmlkLFxuICogICBzY29wZTogXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIHRhZ05hbWU6IHtcbiAqICAgICAgIHZhbHVlOiBcIkVudmlyb25tZW50XCJcbiAqICAgICB9LFxuICogICAgIHRhZ1ZhbHVlOiB7XG4gKiAgICAgICB2YWx1ZTogXCJQcm9kdWN0aW9uXCJcbiAqICAgICB9XG4gKiAgIH1cbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQb2xpY3kgYXNzaWdubWVudCB3aXRoIG1hbmFnZWQgaWRlbnRpdHk6XG4gKiBjb25zdCBhc3NpZ25tZW50ID0gbmV3IFBvbGljeUFzc2lnbm1lbnQodGhpcywgXCJhc3NpZ25tZW50XCIsIHtcbiAqICAgbmFtZTogXCJkZXBsb3ktbW9uaXRvcmluZy1hc3NpZ25tZW50XCIsXG4gKiAgIHBvbGljeURlZmluaXRpb25JZDogXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zL3BvbGljeS1pZFwiLFxuICogICBzY29wZTogXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAqICAgaWRlbnRpdHk6IHtcbiAqICAgICB0eXBlOiBcIlN5c3RlbUFzc2lnbmVkXCJcbiAqICAgfVxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFBvbGljeSBhc3NpZ25tZW50IGF0IG1hbmFnZW1lbnQgZ3JvdXAgc2NvcGU6XG4gKiBjb25zdCBtZ0Fzc2lnbm1lbnQgPSBuZXcgUG9saWN5QXNzaWdubWVudCh0aGlzLCBcIm1nQXNzaWdubWVudFwiLCB7XG4gKiAgIG5hbWU6IFwibWctcG9saWN5LWFzc2lnbm1lbnRcIixcbiAqICAgcG9saWN5RGVmaW5pdGlvbklkOiBcIi9wcm92aWRlcnMvTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcG9saWN5RGVmaW5pdGlvbnMvcG9saWN5LWlkXCIsXG4gKiAgIHNjb3BlOiBcIi9wcm92aWRlcnMvTWljcm9zb2Z0Lk1hbmFnZW1lbnQvbWFuYWdlbWVudEdyb3Vwcy9teS1tZ1wiLFxuICogICBkaXNwbGF5TmFtZTogXCJNYW5hZ2VtZW50IEdyb3VwIFBvbGljeVwiLFxuICogICBkZXNjcmlwdGlvbjogXCJBcHBsaWVzIHBvbGljeSBhY3Jvc3MgdGhlIGVudGlyZSBtYW5hZ2VtZW50IGdyb3VwIGhpZXJhcmNoeVwiXG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgUG9saWN5QXNzaWdubWVudCBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgUE9MSUNZX0FTU0lHTk1FTlRfVFlQRSxcbiAgICAgIEFMTF9QT0xJQ1lfQVNTSUdOTUVOVF9WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGlzIFBvbGljeSBBc3NpZ25tZW50IGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IFBvbGljeUFzc2lnbm1lbnRQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZU91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuXG4gIC8vIFB1YmxpYyBwcm9wZXJ0aWVzXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgUG9saWN5IEFzc2lnbm1lbnQgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFBvbGljeSBBc3NpZ25tZW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUG9saWN5QXNzaWdubWVudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBWYWxpZGF0ZSB0aGF0IGxvY2F0aW9uIGlzIHByb3ZpZGVkIHdoZW4gaWRlbnRpdHkgaXMgc3BlY2lmaWVkXG4gICAgaWYgKHByb3BzLmlkZW50aXR5ICYmICF0aGlzLmxvY2F0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgUG9saWN5IEFzc2lnbm1lbnQgXCIke3Byb3BzLm5hbWUgfHwgaWR9XCIgd2hlbiBpZGVudGl0eSBpcyBzcGVjaWZpZWQuIGAgK1xuICAgICAgICAgIGBUaGUgbWFuYWdlZCBpZGVudGl0eSBtdXN0IGJlIHByb3Zpc2lvbmVkIGluIGEgc3BlY2lmaWMgQXp1cmUgcmVnaW9uLmAsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEV4dHJhY3QgcHJvcGVydGllcyBmcm9tIHRoZSBBWkFQSSByZXNvdXJjZSBvdXRwdXRzIHVzaW5nIFRlcnJhZm9ybSBpbnRlcnBvbGF0aW9uXG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZyBmcm9tIG90aGVyIHJlc291cmNlc1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIFBvbGljeSBBc3NpZ25tZW50XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgUG9saWN5IEFzc2lnbm1lbnRcIixcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzIHRvIG1hdGNoIG9yaWdpbmFsIG5hbWluZyBjb252ZW50aW9uXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubmFtZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcIm5hbWVcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICogUmV0dXJucyB0aGUgbW9zdCByZWNlbnQgc3RhYmxlIHZlcnNpb24gYXMgdGhlIGRlZmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjItMDYtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBQb2xpY3kgQXNzaWdubWVudHNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gUE9MSUNZX0FTU0lHTk1FTlRfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKiBVc2VzIHRoZSBmcmFtZXdvcmsncyBzY2hlbWEgcmVzb2x1dGlvbiB0byBnZXQgdGhlIGFwcHJvcHJpYXRlIHNjaGVtYVxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQb2xpY3kgQXNzaWdubWVudHMgZG8gbm90IHN1cHBvcnQgdGFncyBhdCB0aGUgcmVzb3VyY2UgbGV2ZWxcbiAgICogVGFncyBhcmUgbm90IGEgdmFsaWQgcHJvcGVydHkgZm9yIE1pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeUFzc2lnbm1lbnRzXG4gICAqIEByZXR1cm5zIGZhbHNlIC0gUG9saWN5IEFzc2lnbm1lbnRzIGNhbm5vdCBoYXZlIHRhZ3NcbiAgICogQG92ZXJyaWRlXG4gICAqL1xuICBwcm90ZWN0ZWQgc3VwcG9ydHNUYWdzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKlxuICAgKiBOb3RlOiBQb2xpY3kgYXNzaWdubWVudHMgZG8gbm90IGhhdmUgYSBsb2NhdGlvbiBwcm9wZXJ0eSBhcyB0aGV5IGFyZVxuICAgKiBzY29wZWQgcmVzb3VyY2VzIChzdWJzY3JpcHRpb24sIHJlc291cmNlIGdyb3VwLCBvciByZXNvdXJjZSBsZXZlbCkuXG4gICAqIFRoZSBzY29wZSBwcm9wZXJ0eSBpcyBOT1QgaW5jbHVkZWQgaW4gdGhlIGJvZHkgYXMgaXQncyByZWFkLW9ubHkgYW5kXG4gICAqIGF1dG9tYXRpY2FsbHkgZGVyaXZlZCBmcm9tIHRoZSBwYXJlbnRJZC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIFBvbGljeUFzc2lnbm1lbnRQcm9wcztcblxuICAgIGNvbnN0IGJvZHk6IGFueSA9IHtcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgcG9saWN5RGVmaW5pdGlvbklkOiB0eXBlZFByb3BzLnBvbGljeURlZmluaXRpb25JZCxcbiAgICAgICAgLy8gTm90ZTogc2NvcGUgaXMgTk9UIGluY2x1ZGVkIGhlcmUgLSBpdCdzIHJlYWQtb25seSBhbmQgZGVyaXZlZCBmcm9tIHBhcmVudElkXG4gICAgICAgIGRpc3BsYXlOYW1lOiB0eXBlZFByb3BzLmRpc3BsYXlOYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogdHlwZWRQcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgZW5mb3JjZW1lbnRNb2RlOiB0eXBlZFByb3BzLmVuZm9yY2VtZW50TW9kZSB8fCBcIkRlZmF1bHRcIixcbiAgICAgICAgcGFyYW1ldGVyczogdHlwZWRQcm9wcy5wYXJhbWV0ZXJzLFxuICAgICAgICBtZXRhZGF0YTogdHlwZWRQcm9wcy5tZXRhZGF0YSxcbiAgICAgICAgbm90U2NvcGVzOiB0eXBlZFByb3BzLm5vdFNjb3BlcyxcbiAgICAgICAgbm9uQ29tcGxpYW5jZU1lc3NhZ2VzOiB0eXBlZFByb3BzLm5vbkNvbXBsaWFuY2VNZXNzYWdlcyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIEFkZCBpZGVudGl0eSBpZiBwcm92aWRlZFxuICAgIGlmICh0eXBlZFByb3BzLmlkZW50aXR5KSB7XG4gICAgICBib2R5LmlkZW50aXR5ID0gdHlwZWRQcm9wcy5pZGVudGl0eTtcbiAgICAgIC8vIEF6dXJlIHJlcXVpcmVzIGxvY2F0aW9uIHdoZW4gaWRlbnRpdHkgaXMgc3BlY2lmaWVkIGZvciBtYW5hZ2VkIGlkZW50aXR5IHByb3Zpc2lvbmluZ1xuICAgICAgYm9keS5sb2NhdGlvbiA9IHR5cGVkUHJvcHMubG9jYXRpb247XG4gICAgfVxuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHBhcmVudCBJRCByZXNvbHV0aW9uIHRvIHVzZSB0aGUgc2NvcGUgZnJvbSBwcm9wc1xuICAgKiBQb2xpY3kgYXNzaWdubWVudHMgYXJlIHNjb3BlZCByZXNvdXJjZXMgd2hlcmUgdGhlIHNjb3BlIElTIHRoZSBwYXJlbnRcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIFBvbGljeUFzc2lnbm1lbnRQcm9wcztcbiAgICByZXR1cm4gdHlwZWRQcm9wcy5zY29wZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBQT0xJQ1kgQVNTSUdOTUVOVCBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZnVsbCByZXNvdXJjZSBpZGVudGlmaWVyIGZvciB1c2UgaW4gb3RoZXIgQXp1cmUgcmVzb3VyY2VzXG4gICAqIEFsaWFzIGZvciB0aGUgaWQgcHJvcGVydHlcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcG9saWN5IGRlZmluaXRpb24gSUQgdGhpcyBhc3NpZ25tZW50IHJlZmVyZW5jZXNcbiAgICovXG4gIHB1YmxpYyBnZXQgcG9saWN5RGVmaW5pdGlvbklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucG9saWN5RGVmaW5pdGlvbklkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc2NvcGUgb2YgdGhpcyBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcHVibGljIGdldCBhc3NpZ25tZW50U2NvcGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zY29wZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGVuZm9yY2VtZW50IG1vZGVcbiAgICovXG4gIHB1YmxpYyBnZXQgZW5mb3JjZW1lbnRNb2RlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZW5mb3JjZW1lbnRNb2RlIHx8IFwiRGVmYXVsdFwiO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWFzc2lnbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcG9saWN5YXNzaWdubWVudC9saWIvcG9saWN5LWFzc2lnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCwrQkFBK0I7QUFFL0IsMkVBR3FDO0FBQ3JDLDhFQUdtRDtBQW1PbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkRHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSw4QkFBYTtJQWlCakQsb0JBQW9CO0lBRXBCOzs7Ozs7Ozs7T0FTRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBNEI7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsbUZBQW1GO1FBRW5GLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxRQUFRO1lBQy9DLFdBQVcsRUFBRSxtQ0FBbUM7U0FDakQsQ0FBQyxDQUFDO1FBRUgsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUs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Q29udGVudCI6WyIvKipcbiAqIFVuaWZpZWQgQXp1cmUgUG9saWN5IEFzc2lnbm1lbnQgaW1wbGVtZW50YXRpb24gdXNpbmcgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiBmb3IgbWFuYWdpbmcgQXp1cmUgUG9saWN5IEFzc2lnbm1lbnRzXG4gKiB1c2luZyB0aGUgQVpBUEkgcHJvdmlkZXIuIFBvbGljeSBhc3NpZ25tZW50cyBhcHBseSBwb2xpY3kgZGVmaW5pdGlvbnMgdG8gc3BlY2lmaWMgc2NvcGVzXG4gKiAobWFuYWdlbWVudCBncm91cCwgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2UpIGFuZCBjYW4gcHJvdmlkZSBwYXJhbWV0ZXJcbiAqIHZhbHVlcyBhbmQgZW5mb3JjZW1lbnQgc2V0dGluZ3MuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMi0wNi0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gU3VwcG9ydCBmb3IgZW5mb3JjZW1lbnQgbW9kZXMgKERlZmF1bHQsIERvTm90RW5mb3JjZSlcbiAqIC0gTWFuYWdlZCBpZGVudGl0eSBzdXBwb3J0IGZvciByZW1lZGlhdGlvbiBwb2xpY2llc1xuICogLSBDdXN0b20gbm9uLWNvbXBsaWFuY2UgbWVzc2FnZXNcbiAqIC0gU2NvcGUgZXhjbHVzaW9ucyAobm90U2NvcGVzKVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfUE9MSUNZX0FTU0lHTk1FTlRfVkVSU0lPTlMsXG4gIFBPTElDWV9BU1NJR05NRU5UX1RZUEUsXG59IGZyb20gXCIuL3BvbGljeS1hc3NpZ25tZW50LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogSWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgcG9saWN5IGFzc2lnbm1lbnRzXG4gKiBSZXF1aXJlZCBmb3IgcG9saWNpZXMgd2l0aCBkZXBsb3lJZk5vdEV4aXN0cyBvciBtb2RpZnkgZWZmZWN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeUFzc2lnbm1lbnRJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBtYW5hZ2VkIGlkZW50aXR5XG4gICAqIEBleGFtcGxlIFwiU3lzdGVtQXNzaWduZWRcIiwgXCJVc2VyQXNzaWduZWRcIiwgXCJOb25lXCJcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVzZXIgYXNzaWduZWQgaWRlbnRpdGllcyBhc3NvY2lhdGVkIHdpdGggdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIFJlcXVpcmVkIHdoZW4gdHlwZSBpcyBVc2VyQXNzaWduZWRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICoge1xuICAgKiAgIFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTWFuYWdlZElkZW50aXR5L3VzZXJBc3NpZ25lZElkZW50aXRpZXMvaWRlbnRpdHlcIjoge31cbiAgICogfVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlckFzc2lnbmVkSWRlbnRpdGllcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogTm9uLWNvbXBsaWFuY2UgbWVzc2FnZSBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudE5vbkNvbXBsaWFuY2VNZXNzYWdlIHtcbiAgLyoqXG4gICAqIFRoZSBub24tY29tcGxpYW5jZSBtZXNzYWdlIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvbGljeSBkZWZpbml0aW9uIHJlZmVyZW5jZSBJRCB3aXRoaW4gYSBwb2xpY3kgc2V0IGRlZmluaXRpb25cbiAgICogT3B0aW9uYWwgLSBpZiBzcGVjaWZpZWQsIHRoaXMgbWVzc2FnZSBhcHBsaWVzIG9ubHkgdG8gdGhlIHNwZWNpZmllZCBwb2xpY3kgd2l0aGluIHRoZSBzZXRcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeURlZmluaXRpb25SZWZlcmVuY2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBQb2xpY3kgQXNzaWdubWVudFxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggUG9saWN5IEFzc2lnbm1lbnQgc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeUFzc2lnbm1lbnRQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGRlZmluaXRpb24gSUQgdG8gYXNzaWduXG4gICAqIFRoaXMgY2FuIGJlIGEgYnVpbHQtaW4gb3IgY3VzdG9tIHBvbGljeSBkZWZpbml0aW9uXG4gICAqIFJlcXVpcmVkIHByb3BlcnR5XG4gICAqXG4gICAqIEBleGFtcGxlIFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Byb3ZpZGVycy9NaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9wb2xpY3lEZWZpbml0aW9ucy9wb2xpY3ktbmFtZVwiXG4gICAqIEBleGFtcGxlIFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9wb2xpY3lEZWZpbml0aW9ucy8wNmE3OGUyMC05MzU4LTQxYzktOTIzYy1mYjczNmQzODJhNGRcIiAoYnVpbHQtaW4pXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lEZWZpbml0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNjb3BlIGF0IHdoaWNoIHRoZSBwb2xpY3kgYXNzaWdubWVudCBpcyBhcHBsaWVkXG4gICAqIENhbiBiZSBhIG1hbmFnZW1lbnQgZ3JvdXAsIHN1YnNjcmlwdGlvbiwgcmVzb3VyY2UgZ3JvdXAsIG9yIHJlc291cmNlXG4gICAqIFJlcXVpcmVkIHByb3BlcnR5XG4gICAqXG4gICAqIEBleGFtcGxlIFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuTWFuYWdlbWVudC9tYW5hZ2VtZW50R3JvdXBzL215LW1nXCJcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9yZy1uYW1lXCJcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIFByb3ZpZGVzIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGFzc2lnbm1lbnRcbiAgICpcbiAgICogQGV4YW1wbGUgXCJSZXF1aXJlIHRhZyBvbiByZXNvdXJjZXMgaW4gcHJvZHVjdGlvblwiXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvbGljeSBhc3NpZ25tZW50IGRlc2NyaXB0aW9uXG4gICAqIFByb3ZpZGVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhc3NpZ25tZW50XG4gICAqXG4gICAqIEBleGFtcGxlIFwiRW5mb3JjZXMgcmVxdWlyZWQgdGFncyBvbiBhbGwgcmVzb3VyY2VzIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRcIlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmZvcmNlbWVudCBtb2RlIG9mIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKiBAZGVmYXVsdCBcIkRlZmF1bHRcIlxuICAgKiBAZXhhbXBsZSBcIkRlZmF1bHRcIiAtIFBvbGljeSBlZmZlY3QgaXMgZW5mb3JjZWQgZHVyaW5nIHJlc291cmNlIGNyZWF0aW9uL3VwZGF0ZVxuICAgKiBAZXhhbXBsZSBcIkRvTm90RW5mb3JjZVwiIC0gUG9saWN5IGVmZmVjdCBpcyBub3QgZW5mb3JjZWQgKGF1ZGl0IG9ubHkpXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlbWVudE1vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlcnMgZm9yIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKiBQcm92aWRlcyB2YWx1ZXMgZm9yIHBhcmFtZXRlcnMgZGVmaW5lZCBpbiB0aGUgcG9saWN5IGRlZmluaXRpb25cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICoge1xuICAgKiAgIHRhZ05hbWU6IHtcbiAgICogICAgIHZhbHVlOiBcIkVudmlyb25tZW50XCJcbiAgICogICB9LFxuICAgKiAgIHRhZ1ZhbHVlOiB7XG4gICAqICAgICB2YWx1ZTogXCJQcm9kdWN0aW9uXCJcbiAgICogICB9XG4gICAqIH1cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBhbnk7XG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICogVXNlZCB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGxpa2UgYXNzaWduZWRCeSwgcGFyYW1ldGVyU2NvcGVzLCBldGMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHtcbiAgICogICBhc3NpZ25lZEJ5OiBcImFkbWluQGV4YW1wbGUuY29tXCIsXG4gICAqICAgcGFyYW1ldGVyU2NvcGVzOiB7fVxuICAgKiB9XG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IGFueTtcblxuICAvKipcbiAgICogVGhlIG1hbmFnZWQgaWRlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKiBSZXF1aXJlZCBmb3IgcG9saWNpZXMgd2l0aCBkZXBsb3lJZk5vdEV4aXN0cyBvciBtb2RpZnkgZWZmZWN0c1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB7XG4gICAqICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiXG4gICAqIH1cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogUG9saWN5QXNzaWdubWVudElkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5J3MgZXhjbHVkZWQgc2NvcGVzXG4gICAqIFJlc291cmNlcyB3aXRoaW4gdGhlc2Ugc2NvcGVzIHdpbGwgbm90IGJlIGV2YWx1YXRlZCBieSB0aGUgcG9saWN5XG4gICAqXG4gICAqIEBleGFtcGxlIFtcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9leGNsdWRlZC1yZ1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgbm90U2NvcGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBub24tY29tcGxpYW5jZSBtZXNzYWdlcyBmb3IgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIFByb3ZpZGVzIGN1c3RvbSBtZXNzYWdlcyB3aGVuIHJlc291cmNlcyBhcmUgbm9uLWNvbXBsaWFudFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBbXG4gICAqICAge1xuICAgKiAgICAgbWVzc2FnZTogXCJSZXNvdXJjZSBtdXN0IGhhdmUgdGhlIEVudmlyb25tZW50IHRhZ1wiXG4gICAqICAgfVxuICAgKiBdXG4gICAqL1xuICByZWFkb25seSBub25Db21wbGlhbmNlTWVzc2FnZXM/OiBQb2xpY3lBc3NpZ25tZW50Tm9uQ29tcGxpYW5jZU1lc3NhZ2VbXTtcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlc1xuICAgKiBAZXhhbXBsZSBbXCJtZXRhZGF0YVwiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgaW50ZXJmYWNlIGZvciBBenVyZSBQb2xpY3kgQXNzaWdubWVudFxuICogVGhpcyBpcyByZXF1aXJlZCBmb3IgSlNJSSBjb21wbGlhbmNlIHRvIHN1cHBvcnQgbXVsdGktbGFuZ3VhZ2UgY29kZSBnZW5lcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudFByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIHBvbGljeSBkZWZpbml0aW9uIElEXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lEZWZpbml0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNjb3BlIG9mIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGFzc2lnbm1lbnQgZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW5mb3JjZW1lbnQgbW9kZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5mb3JjZW1lbnRNb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXJzIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBhbnk7XG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5J3MgZXhjbHVkZWQgc2NvcGVzXG4gICAqL1xuICByZWFkb25seSBub3RTY29wZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5vbi1jb21wbGlhbmNlIG1lc3NhZ2VzXG4gICAqL1xuICByZWFkb25seSBub25Db21wbGlhbmNlTWVzc2FnZXM/OiBQb2xpY3lBc3NpZ25tZW50Tm9uQ29tcGxpYW5jZU1lc3NhZ2VbXTtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIFBvbGljeSBBc3NpZ25tZW50IEFQSSBjYWxsc1xuICogVGhpcyBtYXRjaGVzIHRoZSBBenVyZSBSRVNUIEFQSSBzY2hlbWEgZm9yIHBvbGljeSBhc3NpZ25tZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeUFzc2lnbm1lbnRCb2R5IHtcbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllczogUG9saWN5QXNzaWdubWVudFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBtYW5hZ2VkIGlkZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogUG9saWN5QXNzaWdubWVudElkZW50aXR5O1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgUG9saWN5IEFzc2lnbm1lbnQgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc2luZ2xlLCB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBtYW5hZ2luZyBBenVyZVxuICogUG9saWN5IEFzc2lnbm1lbnRzLiBJdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbixcbiAqIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbi5cbiAqXG4gKiBOb3RlOiBQb2xpY3kgYXNzaWdubWVudHMgY2FuIGJlIGRlcGxveWVkIGF0IG1hbmFnZW1lbnQgZ3JvdXAsIHN1YnNjcmlwdGlvbiwgcmVzb3VyY2UgZ3JvdXAsXG4gKiBvciByZXNvdXJjZSBzY29wZS4gTGlrZSBwb2xpY3kgZGVmaW5pdGlvbnMsIHRoZXkgZG8gbm90IGhhdmUgYSBsb2NhdGlvbiBwcm9wZXJ0eSBhcyB0aGV5XG4gKiBhcmUgbm90IHJlZ2lvbi1zcGVjaWZpYy5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgcG9saWN5IGFzc2lnbm1lbnQ6XG4gKiBjb25zdCBhc3NpZ25tZW50ID0gbmV3IFBvbGljeUFzc2lnbm1lbnQodGhpcywgXCJhc3NpZ25tZW50XCIsIHtcbiAqICAgbmFtZTogXCJyZXF1aXJlLXRhZy1hc3NpZ25tZW50XCIsXG4gKiAgIHBvbGljeURlZmluaXRpb25JZDogcG9saWN5RGVmaW5pdGlvbi5pZCxcbiAqICAgc2NvcGU6IFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL3JnLW5hbWVcIixcbiAqICAgZGlzcGxheU5hbWU6IFwiUmVxdWlyZSB0YWcgb24gcmVzb3VyY2VzXCIsXG4gKiAgIGRlc2NyaXB0aW9uOiBcIkVuZm9yY2VzIHJlcXVpcmVkIHRhZ3Mgb24gcmVzb3VyY2VzXCJcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQb2xpY3kgYXNzaWdubWVudCB3aXRoIHBhcmFtZXRlcnM6XG4gKiBjb25zdCBhc3NpZ25tZW50ID0gbmV3IFBvbGljeUFzc2lnbm1lbnQodGhpcywgXCJhc3NpZ25tZW50XCIsIHtcbiAqICAgbmFtZTogXCJyZXF1aXJlLXRhZy1hc3NpZ25tZW50XCIsXG4gKiAgIHBvbGljeURlZmluaXRpb25JZDogcG9saWN5RGVmaW5pdGlvbi5pZCxcbiAqICAgc2NvcGU6IFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gKiAgIHBhcmFtZXRlcnM6IHtcbiAqICAgICB0YWdOYW1lOiB7XG4gKiAgICAgICB2YWx1ZTogXCJFbnZpcm9ubWVudFwiXG4gKiAgICAgfSxcbiAqICAgICB0YWdWYWx1ZToge1xuICogICAgICAgdmFsdWU6IFwiUHJvZHVjdGlvblwiXG4gKiAgICAgfVxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gUG9saWN5IGFzc2lnbm1lbnQgd2l0aCBtYW5hZ2VkIGlkZW50aXR5OlxuICogY29uc3QgYXNzaWdubWVudCA9IG5ldyBQb2xpY3lBc3NpZ25tZW50KHRoaXMsIFwiYXNzaWdubWVudFwiLCB7XG4gKiAgIG5hbWU6IFwiZGVwbG95LW1vbml0b3JpbmctYXNzaWdubWVudFwiLFxuICogICBwb2xpY3lEZWZpbml0aW9uSWQ6IFwiL3Byb3ZpZGVycy9NaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9wb2xpY3lEZWZpbml0aW9ucy9wb2xpY3ktaWRcIixcbiAqICAgc2NvcGU6IFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwXCIsXG4gKiAgIGlkZW50aXR5OiB7XG4gKiAgICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiXG4gKiAgIH1cbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQb2xpY3kgYXNzaWdubWVudCBhdCBtYW5hZ2VtZW50IGdyb3VwIHNjb3BlOlxuICogY29uc3QgbWdBc3NpZ25tZW50ID0gbmV3IFBvbGljeUFzc2lnbm1lbnQodGhpcywgXCJtZ0Fzc2lnbm1lbnRcIiwge1xuICogICBuYW1lOiBcIm1nLXBvbGljeS1hc3NpZ25tZW50XCIsXG4gKiAgIHBvbGljeURlZmluaXRpb25JZDogXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zL3BvbGljeS1pZFwiLFxuICogICBzY29wZTogXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VtZW50L21hbmFnZW1lbnRHcm91cHMvbXktbWdcIixcbiAqICAgZGlzcGxheU5hbWU6IFwiTWFuYWdlbWVudCBHcm91cCBQb2xpY3lcIixcbiAqICAgZGVzY3JpcHRpb246IFwiQXBwbGllcyBwb2xpY3kgYWNyb3NzIHRoZSBlbnRpcmUgbWFuYWdlbWVudCBncm91cCBoaWVyYXJjaHlcIlxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFBvbGljeUFzc2lnbm1lbnQgZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIFBPTElDWV9BU1NJR05NRU5UX1RZUEUsXG4gICAgICBBTExfUE9MSUNZX0FTU0lHTk1FTlRfVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBQb2xpY3kgQXNzaWdubWVudCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBQb2xpY3lBc3NpZ25tZW50UHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcblxuICAvLyBQdWJsaWMgcHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIFBvbGljeSBBc3NpZ25tZW50IHVzaW5nIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBUaGUgY29uc3RydWN0b3IgYXV0b21hdGljYWxseSBoYW5kbGVzIHZlcnNpb24gcmVzb2x1dGlvbiwgc2NoZW1hIHJlZ2lzdHJhdGlvbixcbiAgICogdmFsaWRhdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBQb2xpY3kgQXNzaWdubWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBvbGljeUFzc2lnbm1lbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gdGhlIEFaQVBJIHJlc291cmNlIG91dHB1dHMgdXNpbmcgVGVycmFmb3JtIGludGVycG9sYXRpb25cblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgUG9saWN5IEFzc2lnbm1lbnRcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBQb2xpY3kgQXNzaWdubWVudFwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHMgdG8gbWF0Y2ggb3JpZ2luYWwgbmFtaW5nIGNvbnZlbnRpb25cbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBtb3N0IHJlY2VudCBzdGFibGUgdmVyc2lvbiBhcyB0aGUgZGVmYXVsdFxuICAgKi9cbiAgcHJvdGVjdGVkIGRlZmF1bHRWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiMjAyMi0wNi0wMVwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEF6dXJlIHJlc291cmNlIHR5cGUgZm9yIFBvbGljeSBBc3NpZ25tZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBQT0xJQ1lfQVNTSUdOTUVOVF9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBvbGljeSBBc3NpZ25tZW50cyBkbyBub3Qgc3VwcG9ydCB0YWdzIGF0IHRoZSByZXNvdXJjZSBsZXZlbFxuICAgKiBUYWdzIGFyZSBub3QgYSB2YWxpZCBwcm9wZXJ0eSBmb3IgTWljcm9zb2Z0LkF1dGhvcml6YXRpb24vcG9saWN5QXNzaWdubWVudHNcbiAgICogQHJldHVybnMgZmFsc2UgLSBQb2xpY3kgQXNzaWdubWVudHMgY2Fubm90IGhhdmUgdGFnc1xuICAgKiBAb3ZlcnJpZGVcbiAgICovXG4gIHByb3RlY3RlZCBzdXBwb3J0c1RhZ3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHJlc291cmNlIGJvZHkgZm9yIHRoZSBBenVyZSBBUEkgY2FsbFxuICAgKiBUcmFuc2Zvcm1zIHRoZSBpbnB1dCBwcm9wZXJ0aWVzIGludG8gdGhlIEpTT04gZm9ybWF0IGV4cGVjdGVkIGJ5IEF6dXJlIFJFU1QgQVBJXG4gICAqXG4gICAqIE5vdGU6IFBvbGljeSBhc3NpZ25tZW50cyBkbyBub3QgaGF2ZSBhIGxvY2F0aW9uIHByb3BlcnR5IGFzIHRoZXkgYXJlXG4gICAqIHNjb3BlZCByZXNvdXJjZXMgKHN1YnNjcmlwdGlvbiwgcmVzb3VyY2UgZ3JvdXAsIG9yIHJlc291cmNlIGxldmVsKS5cbiAgICogVGhlIHNjb3BlIHByb3BlcnR5IGlzIE5PVCBpbmNsdWRlZCBpbiB0aGUgYm9keSBhcyBpdCdzIHJlYWQtb25seSBhbmRcbiAgICogYXV0b21hdGljYWxseSBkZXJpdmVkIGZyb20gdGhlIHBhcmVudElkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgUG9saWN5QXNzaWdubWVudFByb3BzO1xuXG4gICAgY29uc3QgYm9keTogYW55ID0ge1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwb2xpY3lEZWZpbml0aW9uSWQ6IHR5cGVkUHJvcHMucG9saWN5RGVmaW5pdGlvbklkLFxuICAgICAgICAvLyBOb3RlOiBzY29wZSBpcyBOT1QgaW5jbHVkZWQgaGVyZSAtIGl0J3MgcmVhZC1vbmx5IGFuZCBkZXJpdmVkIGZyb20gcGFyZW50SWRcbiAgICAgICAgZGlzcGxheU5hbWU6IHR5cGVkUHJvcHMuZGlzcGxheU5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0eXBlZFByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICBlbmZvcmNlbWVudE1vZGU6IHR5cGVkUHJvcHMuZW5mb3JjZW1lbnRNb2RlIHx8IFwiRGVmYXVsdFwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB0eXBlZFByb3BzLnBhcmFtZXRlcnMsXG4gICAgICAgIG1ldGFkYXRhOiB0eXBlZFByb3BzLm1ldGFkYXRhLFxuICAgICAgICBub3RTY29wZXM6IHR5cGVkUHJvcHMubm90U2NvcGVzLFxuICAgICAgICBub25Db21wbGlhbmNlTWVzc2FnZXM6IHR5cGVkUHJvcHMubm9uQ29tcGxpYW5jZU1lc3NhZ2VzLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gQWRkIGlkZW50aXR5IGlmIHByb3ZpZGVkXG4gICAgaWYgKHR5cGVkUHJvcHMuaWRlbnRpdHkpIHtcbiAgICAgIGJvZHkuaWRlbnRpdHkgPSB0eXBlZFByb3BzLmlkZW50aXR5O1xuICAgICAgLy8gTm90ZTogbG9jYXRpb24gaXMgTk9UIGFkZGVkIHRvIHRoZSBib2R5IGZvciBwb2xpY3kgYXNzaWdubWVudHNcbiAgICAgIC8vIEl0J3MgaGFuZGxlZCBieSB0aGUgQVpBUEkgcHJvdmlkZXIgY29uZmlnIGZvciBpZGVudGl0eSBwcm92aXNpb25pbmdcbiAgICB9XG5cbiAgICByZXR1cm4gYm9keTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgcGFyZW50IElEIHJlc29sdXRpb24gdG8gdXNlIHRoZSBzY29wZSBmcm9tIHByb3BzXG4gICAqIFBvbGljeSBhc3NpZ25tZW50cyBhcmUgc2NvcGVkIHJlc291cmNlcyB3aGVyZSB0aGUgc2NvcGUgSVMgdGhlIHBhcmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVQYXJlbnRJZChwcm9wczogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgUG9saWN5QXNzaWdubWVudFByb3BzO1xuICAgIHJldHVybiB0eXBlZFByb3BzLnNjb3BlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFVCTElDIE1FVEhPRFMgRk9SIFBPTElDWSBBU1NJR05NRU5UIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIHJlc291cmNlIGlkZW50aWZpZXIgZm9yIHVzZSBpbiBvdGhlciBBenVyZSByZXNvdXJjZXNcbiAgICogQWxpYXMgZm9yIHRoZSBpZCBwcm9wZXJ0eVxuICAgKi9cbiAgcHVibGljIGdldCByZXNvdXJjZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwb2xpY3kgZGVmaW5pdGlvbiBJRCB0aGlzIGFzc2lnbm1lbnQgcmVmZXJlbmNlc1xuICAgKi9cbiAgcHVibGljIGdldCBwb2xpY3lEZWZpbml0aW9uSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5wb2xpY3lEZWZpbml0aW9uSWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBzY29wZSBvZiB0aGlzIHBvbGljeSBhc3NpZ25tZW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IGFzc2lnbm1lbnRTY29wZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnNjb3BlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZW5mb3JjZW1lbnQgbW9kZVxuICAgKi9cbiAgcHVibGljIGdldCBlbmZvcmNlbWVudE1vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5lbmZvcmNlbWVudE1vZGUgfHwgXCJEZWZhdWx0XCI7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzIGlmIHNwZWNpZmllZCBpbiBwcm9wc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlJZ25vcmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMgJiYgdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwgW1xuICAgICAgICB7XG4gICAgICAgICAgaWdub3JlX2NoYW5nZXM6IHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgIH1cbiAgfVxufVxuIl19