@colijnit/transaction 12.1.6 → 12.1.7

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 (117) hide show
  1. package/app/app.component.scss +39 -0
  2. package/app/component/checkout/checkout/checkout.component.d.ts +2 -0
  3. package/app/component/checkout/checkout/checkout.component.scss +137 -0
  4. package/app/component/checkout/checkout-login/checkout-login.component.scss +35 -0
  5. package/app/component/checkout/checkout-overview/checkout-overview.component.scss +0 -0
  6. package/app/component/checkout/checkout-overview-block/checkout-overview-block.component.scss +0 -0
  7. package/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
  8. package/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.scss +3 -0
  9. package/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.d.ts +1 -0
  10. package/app/component/checkout/checkout-overview-relation-address/style/_layout.scss +19 -0
  11. package/app/component/checkout/checkout-overview-relation-address/style/_material-definition.scss +0 -0
  12. package/app/component/checkout/checkout-overview-relation-address/style/_theme.scss +7 -0
  13. package/app/component/checkout/checkout-overview-relation-address/style/material.scss +4 -0
  14. package/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +1 -2
  15. package/app/component/checkout/checkout-overview-relation-edit/style/_layout.scss +92 -0
  16. package/app/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +15 -0
  17. package/app/component/checkout/checkout-overview-relation-edit/style/_theme.scss +9 -0
  18. package/app/component/checkout/checkout-overview-relation-edit/style/material.scss +5 -0
  19. package/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.d.ts +2 -3
  20. package/app/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +7 -0
  21. package/app/component/checkout/checkout-relation-suggestions-list/style/_material-definition.scss +0 -0
  22. package/app/component/checkout/checkout-relation-suggestions-list/style/_theme.scss +6 -0
  23. package/app/component/checkout/checkout-relation-suggestions-list/style/material.scss +5 -0
  24. package/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +5 -9
  25. package/app/component/checkout/checkout-relation-suggestions-list-item/style/_layout.scss +34 -0
  26. package/app/component/checkout/checkout-relation-suggestions-list-item/style/_material-definition.scss +8 -0
  27. package/app/component/checkout/checkout-relation-suggestions-list-item/style/_theme.scss +6 -0
  28. package/app/component/checkout/checkout-relation-suggestions-list-item/style/material.scss +4 -0
  29. package/app/component/checkout/checkout-transaction/checkout-transaction.component.d.ts +3 -0
  30. package/app/component/checkout/checkout-transaction/checkout-transaction.component.scss +11 -0
  31. package/app/component/checkout/ione-checkout.component.d.ts +3 -1
  32. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +2 -2
  33. package/app/component/core/base/style/_layout.scss +7 -0
  34. package/app/component/core/base/style/_material-definition.scss +0 -0
  35. package/app/component/core/base/style/_theme.scss +6 -0
  36. package/app/component/core/base/style/material.scss +4 -0
  37. package/app/component/core/characteristic-answer/characteristic-answer.component.scss +18 -0
  38. package/app/component/core/icon/icon.component.scss +85 -0
  39. package/app/component/core/image-display/image-display.component.d.ts +1 -0
  40. package/app/component/core/image-display/style/_layout.scss +39 -0
  41. package/app/component/core/image-display/style/_material-definition.scss +0 -0
  42. package/app/component/core/image-display/style/_theme.scss +6 -0
  43. package/app/component/core/image-display/style/material.scss +4 -0
  44. package/app/component/core/no-image-display/no-image-display.component.scss +0 -0
  45. package/app/component/core/relation/customer-groups.component.d.ts +13 -0
  46. package/app/component/core/stock-status-indicator/stock-status-indicator.component.scss +45 -0
  47. package/app/component/service-order/service-order.component.scss +152 -0
  48. package/app/component/service-order/summary/transaction-delivery-summary.component.scss +20 -0
  49. package/app/component/service-order/summary/transaction-summary-block.component.scss +107 -0
  50. package/app/component/service-order/transaction-article-text/transaction-article-text.component.scss +6 -0
  51. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.scss +0 -0
  52. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.scss +0 -0
  53. package/app/component/service-order/transaction-header-block/transaction-header-block.component.scss +65 -0
  54. package/app/component/service-order/transaction-manager/transaction-manager.component.scss +52 -0
  55. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.scss +88 -0
  56. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.scss +83 -0
  57. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.scss +24 -0
  58. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.scss +24 -0
  59. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.scss +0 -0
  60. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.scss +17 -0
  61. package/app/component/service-order/warehouse/warehouse.component.scss +52 -0
  62. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.scss +79 -0
  63. package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.scss +107 -0
  64. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.scss +52 -0
  65. package/app/service/ione-connector-adapter.service.d.ts +5 -2
  66. package/app/service/options.service.d.ts +2 -3
  67. package/app/service/transaction.service.d.ts +3 -1
  68. package/bundles/colijnit-transaction.umd.js +282 -187
  69. package/bundles/colijnit-transaction.umd.js.map +1 -1
  70. package/colijnit-transaction.d.ts +42 -41
  71. package/colijnit-transaction.metadata.json +1 -1
  72. package/esm2015/app/component/checkout/checkout/checkout.component.js +13 -5
  73. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +4 -4
  74. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +1 -1
  75. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +1 -1
  76. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +4 -4
  77. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +37 -49
  78. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +140 -159
  79. package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +16 -19
  80. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +17 -39
  81. package/esm2015/app/component/checkout/checkout-transaction/checkout-transaction.component.js +7 -5
  82. package/esm2015/app/component/checkout/ione-checkout.component.js +6 -4
  83. package/esm2015/app/component/checkout/ione-checkout.module.js +7 -7
  84. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +13 -11
  85. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +1 -1
  86. package/esm2015/app/component/core/core.module.js +9 -4
  87. package/esm2015/app/component/core/icon/icon.component.js +1 -1
  88. package/esm2015/app/component/core/image-display/image-display.component.js +9 -5
  89. package/esm2015/app/component/core/relation/customer-groups.component.js +40 -0
  90. package/esm2015/app/component/core/stock-status-indicator/stock-status-indicator.component.js +1 -1
  91. package/esm2015/app/component/service-order/service-order.component.js +1 -1
  92. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +1 -1
  93. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +3 -3
  94. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +1 -1
  95. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +1 -1
  96. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +3 -3
  97. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +1 -1
  98. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +1 -1
  99. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +3 -3
  100. package/esm2015/app/component/service-order/warehouse/warehouse.component.js +1 -1
  101. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +1 -1
  102. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +3 -3
  103. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +1 -1
  104. package/esm2015/app/service/ione-connector-adapter.service.js +16 -2
  105. package/esm2015/app/service/options.service.js +2 -3
  106. package/esm2015/app/service/transaction.service.js +25 -13
  107. package/esm2015/colijnit-transaction.js +43 -42
  108. package/fesm2015/colijnit-transaction.js +358 -338
  109. package/fesm2015/colijnit-transaction.js.map +1 -1
  110. package/package.json +3 -4
  111. package/style/_mixin.scss +9 -0
  112. package/style/_variables.scss +75 -0
  113. package/style/styles.scss +367 -0
  114. package/styles.scss +11 -0
  115. package/app/enum/direction.enum.d.ts +0 -6
  116. package/css/styles.css +0 -38
  117. package/esm2015/app/enum/direction.enum.js +0 -9
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { Component, ViewChild } from "@angular/core";
2
+ import { Component, EventEmitter, Output, ViewChild } from "@angular/core";
3
3
  import { CheckoutSteps } from "../../../enum/checkout-steps.enum";
4
4
  import { CheckoutOverviewComponent } from "../checkout-overview/checkout-overview.component";
5
5
  import { isNill } from "@colijnit/transactionapi/build/utils/function/is-nill.function";
@@ -10,6 +10,7 @@ export class CheckoutComponent {
10
10
  constructor(service, promptService) {
11
11
  this.service = service;
12
12
  this.promptService = promptService;
13
+ this.transactionFinished = new EventEmitter();
13
14
  this.completedRelation = false;
14
15
  this.completedDelivery = false;
15
16
  this._relation = NULL_RELATION_OBJECT;
@@ -76,7 +77,13 @@ export class CheckoutComponent {
76
77
  return new Promise((resolve, reject) => {
77
78
  this.service.setTransactionDeliveryOptions().then((response) => __awaiter(this, void 0, void 0, function* () {
78
79
  if (response) {
79
- yield this.service.saveTransaction().then();
80
+ const response = yield this.service.saveTransaction();
81
+ if (response && response.isSuccess) {
82
+ const commitResponse = yield this.service.commit();
83
+ if (commitResponse && commitResponse.validationResult && commitResponse.validationResult.success) {
84
+ this.transactionFinished.next(this.service.currentTransaction);
85
+ }
86
+ }
80
87
  }
81
88
  else {
82
89
  yield this.promptService.showError("Opslag bezorging mislukt", " ");
@@ -135,7 +142,7 @@ CheckoutComponent.decorators = [
135
142
  <div class="step-content-customer"></div>
136
143
  </div>
137
144
  `,
138
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.overview-header .overview-step-nr{border-radius:50%}.flex-center,.step-content-delivery,.step-content-customer{display:flex}.flex-center,.step-content-delivery{flex-direction:row}.step-content-customer{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.step-content-customer,.step-content-delivery{padding-bottom:20px}.step-content-customer,.step-content-delivery{padding-top:20px}.step-content-customer,.step-content-delivery{padding-left:20px}.step-content-customer,.step-content-delivery{padding-right:20px}.overview-body{padding-left:30px}.overview-body{padding-right:30px}.overview-body{padding-top:30px}.overview-body{padding-bottom:30px}ul.cart-buttons>li{padding-left:11px}ul.cart-buttons>li{padding-right:11px}ul.cart-buttons{margin-top:20px}ul.cart-buttons{margin-bottom:20px}.overview-header .overview-step-nr{color:#f7fafa}.overview-header .overview-step-nr{background-color:#2b60a7}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}.checkout-viewport{max-width:60%;margin-left:20%}.mat-label{font-family:Montserrat,Arial,Helvetica,sans-serif}.default-flex-row{flex-direction:row;box-sizing:border-box;grid-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:flex}.default-flex-column{display:flex;flex-direction:column;width:200px}.privacy-row{display:flex;flex-direction:row;margin-bottom:20px}.privacy-column-left{display:flex;flex-direction:column;min-width:150px;max-width:150px;overflow-wrap:break-word}.privacy-column-right{display:flex;flex-direction:row;margin-left:50px}.checkout-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.checkout-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}co-input-radio-button{margin-left:16px}.checkout-overview h2{font-size:18px;font-weight:bold}.checkout-overview h3{font-size:15px}mat-horizontal-stepper{position:sticky;top:0;z-index:30}::ng-deep .mat-horizontal-content-container{display:none}.step-content-customer{background-color:#fff}.step-content-delivery{background-color:#fff}::ng-deep .step-wrapper{width:auto;background:rgba(255,255,255,.25)}::ng-deep .step-wrapper button-colijn{margin-top:20px}::ng-deep .step-wrapper.payment{align-items:center!important;justify-content:left!important}.overview-header{background:rgba(255,255,255,.25);border-top-left-radius:5px;border-top-right-radius:5px}.overview-header .overview-step-nr{width:20px;height:20px;text-align:center;font-weight:bold}.overview-body{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.overview-body .contact-option-value{align-self:center}.overview-header-label{font-weight:bold}.overview-label{font-weight:bold}ul.cart-buttons{display:flex;justify-content:space-between;flex-wrap:nowrap;list-style-type:none}ul.cart-buttons>li{display:flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:40px;background-color:#f7fafa;cursor:pointer;font-size:15px;color:#2b60a7;border:1px solid #DCE4EA;border-radius:5px;opacity:1}ul.cart-buttons>li a{white-space:nowrap}\n"]
145
+ styles: [""]
139
146
  },] }
140
147
  ];
141
148
  CheckoutComponent.ctorParameters = () => [
@@ -144,6 +151,7 @@ CheckoutComponent.ctorParameters = () => [
144
151
  ];
145
152
  CheckoutComponent.propDecorators = {
146
153
  overview: [{ type: ViewChild, args: [CheckoutOverviewComponent,] }],
147
- stepper: [{ type: ViewChild, args: ["stepper",] }]
154
+ stepper: [{ type: ViewChild, args: ["stepper",] }],
155
+ transactionFinished: [{ type: Output }]
148
156
  };
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFLaEUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ3RGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXhFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQThCM0QsTUFBTSxPQUFPLGlCQUFpQjtJQWlDNUIsWUFDUyxPQUEyQixFQUMzQixhQUE0QjtRQUQ1QixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVA5QixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBRWxDLGNBQVMsR0FBb0Isb0JBQW9CLENBQUM7SUFLdkQsQ0FBQztJQTdCSixJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFRCxJQUFXLHFCQUFxQjtRQUM5QixtREFBbUQ7UUFDbkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBWU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQWE7UUFDOUMsUUFBUSxLQUFLLEVBQUU7WUFDYixLQUFLLENBQUM7Z0JBQ0osT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDO1lBQ2hDLEtBQUssQ0FBQztnQkFDSixPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7WUFDaEMsS0FBSyxDQUFDO2dCQUNKLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUMvQjtnQkFDRSxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksVUFBVSxHQUFZLEtBQUssQ0FBQztRQUNoQyxJQUFJLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFFLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUNqRyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztZQUNwQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBRSxLQUFLLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDakcsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7U0FDckM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksVUFBVSxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFHTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVZLGtCQUFrQjs7WUFDN0IsT0FBTyxJQUFJLE9BQU8sQ0FBVSxDQUFDLE9BQWlCLEVBQUUsTUFBZ0IsRUFBRSxFQUFFO2dCQUNsRSxJQUFJLENBQUMsT0FBTyxDQUFDLDZCQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDLENBQU8sUUFBUSxFQUFFLEVBQUU7b0JBQ25FLElBQUksUUFBUSxFQUFFO3dCQUNaLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztxQkFDN0M7eUJBQU07d0JBQ0wsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQywwQkFBMEIsRUFBRSxHQUFHLENBQUMsQ0FBQztxQkFDckU7b0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoQixDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xFLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFWSxlQUFlOztZQUMxQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDbkQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3RDO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQzthQUNuQztRQUNILENBQUM7S0FBQTtJQUVNLFdBQVcsQ0FBQyxLQUE0QjtRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVZLFVBQVU7O1lBQ3JCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELENBQUM7S0FBQTtJQUVZLFVBQVU7O1lBQ3JCLE1BQU0sUUFBUSxHQUFvQixJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsQ0FBQztLQUFBOzs7WUFsSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2dCQUN4QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDs7YUFJRjs7O1lBL0JPLGtCQUFrQjtZQUVsQixhQUFhOzs7dUJBK0JsQixTQUFTLFNBQUMseUJBQXlCO3NCQUduQyxTQUFTLFNBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q2hlY2tvdXRTdGVwc30gZnJvbSBcIi4uLy4uLy4uL2VudW0vY2hlY2tvdXQtc3RlcHMuZW51bVwiO1xuaW1wb3J0IHtTdGVwcGVyU2VsZWN0aW9uRXZlbnR9IGZyb20gXCJAYW5ndWxhci9jZGsvc3RlcHBlclwiO1xuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGVcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8uYm9cIjtcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvXCI7XG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdDb21wb25lbnR9IGZyb20gXCIuLi9jaGVja291dC1vdmVydmlldy9jaGVja291dC1vdmVydmlldy5jb21wb25lbnRcIjtcbmltcG9ydCB7aXNOaWxsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcbmltcG9ydCB7TlVMTF9SRUxBVElPTl9PQkpFQ1R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbnVsLXJlbGF0aW9uLW9iamVjdFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcbmltcG9ydCB7TWF0U3RlcHBlcn0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3N0ZXBwZXJcIjtcbmltcG9ydCB7UHJvbXB0U2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLWNoZWNrb3V0XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC12aWV3cG9ydFwiPlxuICAgICAgICAgICAgPG1hdC1ob3Jpem9udGFsLXN0ZXBwZXIgI3N0ZXBwZXJcbiAgICAgICAgICAgICAgICBbbGluZWFyXT1cInRydWVcIiBsYWJlbFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInN0ZXBDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zdGVwIFtsYWJlbF09XCInWU9VUl9EQVRBJyB8IGxvY2FsaXplXCIgW2NvbXBsZXRlZF09XCJjb21wbGV0ZWRSZWxhdGlvblwiPjwvbWF0LXN0ZXA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3RlcCBbbGFiZWxdPVwiJ0RFTElWRVJZJyAgfCBsb2NhbGl6ZVwiIFtjb21wbGV0ZWRdPVwiY29tcGxldGVkRGVsaXZlcnlcIj48L21hdC1zdGVwPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXN0ZXAgW2xhYmVsXT1cIidQQVlNRU5UJyB8IGxvY2FsaXplXCI+PC9tYXQtc3RlcD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zdGVwIFtsYWJlbF09XCInT1ZFUlZJRVcnIHwgbG9jYWxpemVcIj48L21hdC1zdGVwPlxuICAgICAgICAgICAgPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3IFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXG4gICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxuICAgICAgICAgICAgICAgW3VzZXJJc0FwcGxpY2F0aW9uVXNlcl09XCJ1c2VySXNBcHBsaWNhdGlvblVzZXJcIlxuICAgICAgICAgICAgICAgKHNhdmVSZWxhdGlvbik9XCJoYW5kbGVTYXZlUmVsYXRpb24oKVwiXG4gICAgICAgICAgICAgICAoc2F2ZURlbGl2ZXJ5KT1cImhhbmRsZVNhdmVEZWxpdmVyeSgpXCJcbiAgICAgICAgICAgICAgIChzdGVwRmluaXNoZWQpPVwic3RlcEZpbmlzaGVkKClcIj48L2NoZWNrb3V0LW92ZXJ2aWV3PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtY29udGVudC1jdXN0b21lclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuL2NoZWNrb3V0LmNvbXBvbmVudC5zY3NzXCJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQ2hlY2tvdXRPdmVydmlld0NvbXBvbmVudClcbiAgcHVibGljIG92ZXJ2aWV3OiBDaGVja291dE92ZXJ2aWV3Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJzdGVwcGVyXCIpXG4gIHB1YmxpYyBzdGVwcGVyOiBNYXRTdGVwcGVyO1xuXG4gIHB1YmxpYyBnZXQgcmVsYXRpb24oKTogQ3VzdG9tZXJGdWxsT2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmN1cnJlbnRSZWxhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FuQ29udGludWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcHBlciAmJiAodGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXggIT09IDAgfHwgIWlzTmlsbCh0aGlzLnJlbGF0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbmlzaGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBwZXIgJiYgdGhpcy5zdGVwcGVyLnN0ZXBzICYmIHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ID09PSB0aGlzLnN0ZXBwZXIuc3RlcHMubGVuZ3RoIC0gMTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdXNlcklzQXBwbGljYXRpb25Vc2VyKCk6IGJvb2xlYW4ge1xuICAgIC8vIFRPRE86IHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmlzQXBwbGljYXRpb25Vc2VyO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGNvbXBsZXRlZFJlbGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjb21wbGV0ZWREZWxpdmVyeTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3JlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBOVUxMX1JFTEFUSU9OX09CSkVDVDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlXG4gICkge31cblxuICBwcml2YXRlIHN0YXRpYyBfY3VycmVudFN0ZXBCeUluZGV4KGluZGV4OiBudW1iZXIpOiBDaGVja291dFN0ZXBzIHtcbiAgICBzd2l0Y2ggKGluZGV4KSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHJldHVybiBDaGVja291dFN0ZXBzLlJlbGF0aW9uO1xuICAgICAgY2FzZSAxOlxuICAgICAgICByZXR1cm4gQ2hlY2tvdXRTdGVwcy5EZWxpdmVyeTtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIENoZWNrb3V0U3RlcHMuUGF5bWVudDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDaGVja291dFN0ZXBzLk92ZXJ2aWV3O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjb250aW51ZSgpOiB2b2lkIHtcbiAgICBsZXQgdG9OZXh0U3RlcDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlmIChDaGVja291dENvbXBvbmVudC5fY3VycmVudFN0ZXBCeUluZGV4KHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ICkgPT09IENoZWNrb3V0U3RlcHMuUmVsYXRpb24pIHtcbiAgICAgIHRvTmV4dFN0ZXAgPSB0aGlzLm92ZXJ2aWV3LnJlbGF0aW9uRm9ybS5zdWJtaXQoKTtcbiAgICAgIHRoaXMuY29tcGxldGVkUmVsYXRpb24gPSB0b05leHRTdGVwO1xuICAgICAgdGhpcy5jb21wbGV0ZWREZWxpdmVyeSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmIChDaGVja291dENvbXBvbmVudC5fY3VycmVudFN0ZXBCeUluZGV4KHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ICkgPT09IENoZWNrb3V0U3RlcHMuRGVsaXZlcnkpIHtcbiAgICAgIHRvTmV4dFN0ZXAgPSB0aGlzLm92ZXJ2aWV3LmRlbGl2ZXJ5Rm9ybS5zdWJtaXQoKTtcbiAgICAgIHRoaXMuY29tcGxldGVkRGVsaXZlcnkgPSB0b05leHRTdGVwO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0ZXBwZXIgJiYgdG9OZXh0U3RlcCkge1xuICAgICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkLmNvbXBsZXRlZCA9IHRydWU7XG4gICAgICB0aGlzLnN0ZXBwZXIubmV4dCgpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIHByZXZpb3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0ZXBwZXIpIHtcbiAgICAgIHRoaXMuc3RlcHBlci5wcmV2aW91cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGVwRmluaXNoZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250aW51ZSgpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZVNhdmVSZWxhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVOZXdSZWxhdGlvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5zZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGhhbmRsZVNhdmVEZWxpdmVyeSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnMoKS50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCkudGhlbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoXCJPcHNsYWcgYmV6b3JnaW5nIG1pc2x1a3RcIiwgXCIgXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICB9KS5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICB0aGlzLnByb21wdFNlcnZpY2Uuc2hvd0Vycm9yKFwiT3BzbGFnIHRyYW5zYWN0aWUgbWlzbHVrdFwiLCBcIiBcIik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlTmV3UmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGlzTmlsbCh0aGlzLnNlcnZpY2UuY3VycmVudFJlbGF0aW9uLnJlbGF0aW9uSWQpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZU5ld1JlbGF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5zYXZlUmVsYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RlcENoYW5nZWQoZXZlbnQ6IFN0ZXBwZXJTZWxlY3Rpb25FdmVudCk6IHZvaWQge1xuICAgIHRoaXMub3ZlcnZpZXcubW92ZVRvU3RlcChDaGVja291dENvbXBvbmVudC5fY3VycmVudFN0ZXBCeUluZGV4KGV2ZW50LnNlbGVjdGVkSW5kZXgpLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbnNlcnREYXRhKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS5pbnNlcnRDdXN0b21lcih0aGlzLnJlbGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVEYXRhKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSB0aGlzLnJlbGF0aW9uO1xuICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVDdXN0b21lcihyZWxhdGlvbik7XG4gIH1cbn1cbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUtoRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMzRixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDdEYsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDOUYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBOEIzRCxNQUFNLE9BQU8saUJBQWlCO0lBb0M1QixZQUNTLE9BQTJCLEVBQzNCLGFBQTRCO1FBRDVCLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBOUI5Qix3QkFBbUIsR0FBa0MsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUF1QnpGLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbEMsY0FBUyxHQUFvQixvQkFBb0IsQ0FBQztJQUt2RCxDQUFDO0lBN0JKLElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFX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QUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsQ0FBQztLQUFBO0lBRVksVUFBVTs7WUFDckIsTUFBTSxRQUFRLEdBQW9CLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDaEQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QyxDQUFDO0tBQUE7OztZQTNKRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUOzthQUlGOzs7WUEvQk8sa0JBQWtCO1lBRWxCLGFBQWE7Ozt1QkErQmxCLFNBQVMsU0FBQyx5QkFBeUI7c0JBR25DLFNBQVMsU0FBQyxTQUFTO2tDQUduQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0NoZWNrb3V0U3RlcHN9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2NoZWNrb3V0LXN0ZXBzLmVudW1cIjtcbmltcG9ydCB7U3RlcHBlclNlbGVjdGlvbkV2ZW50fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3N0ZXBwZXJcIjtcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvXCI7XG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xuaW1wb3J0IHtDaGVja291dE92ZXJ2aWV3Q29tcG9uZW50fSBmcm9tIFwiLi4vY2hlY2tvdXQtb3ZlcnZpZXcvY2hlY2tvdXQtb3ZlcnZpZXcuY29tcG9uZW50XCI7XG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uXCI7XG5pbXBvcnQge05VTExfUkVMQVRJT05fT0JKRUNUfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL251bC1yZWxhdGlvbi1vYmplY3RcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge01hdFN0ZXBwZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyXCI7XG5pbXBvcnQge1Byb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25SZXNwb25zZUJhc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVzcG9uc2UtYmFzZS5ib1wiO1xuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXBwLWNoZWNrb3V0XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC12aWV3cG9ydFwiPlxuICAgICAgICAgICAgPG1hdC1ob3Jpem9udGFsLXN0ZXBwZXIgI3N0ZXBwZXJcbiAgICAgICAgICAgICAgICBbbGluZWFyXT1cInRydWVcIiBsYWJlbFBvc2l0aW9uPVwiYm90dG9tXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInN0ZXBDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zdGVwIFtsYWJlbF09XCInWU9VUl9EQVRBJyB8IGxvY2FsaXplXCIgW2NvbXBsZXRlZF09XCJjb21wbGV0ZWRSZWxhdGlvblwiPjwvbWF0LXN0ZXA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3RlcCBbbGFiZWxdPVwiJ0RFTElWRVJZJyAgfCBsb2NhbGl6ZVwiIFtjb21wbGV0ZWRdPVwiY29tcGxldGVkRGVsaXZlcnlcIj48L21hdC1zdGVwPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXN0ZXAgW2xhYmVsXT1cIidQQVlNRU5UJyB8IGxvY2FsaXplXCI+PC9tYXQtc3RlcD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zdGVwIFtsYWJlbF09XCInT1ZFUlZJRVcnIHwgbG9jYWxpemVcIj48L21hdC1zdGVwPlxuICAgICAgICAgICAgPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3IFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXG4gICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxuICAgICAgICAgICAgICAgW3VzZXJJc0FwcGxpY2F0aW9uVXNlcl09XCJ1c2VySXNBcHBsaWNhdGlvblVzZXJcIlxuICAgICAgICAgICAgICAgKHNhdmVSZWxhdGlvbik9XCJoYW5kbGVTYXZlUmVsYXRpb24oKVwiXG4gICAgICAgICAgICAgICAoc2F2ZURlbGl2ZXJ5KT1cImhhbmRsZVNhdmVEZWxpdmVyeSgpXCJcbiAgICAgICAgICAgICAgIChzdGVwRmluaXNoZWQpPVwic3RlcEZpbmlzaGVkKClcIj48L2NoZWNrb3V0LW92ZXJ2aWV3PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtY29udGVudC1jdXN0b21lclwiPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuL2NoZWNrb3V0LmNvbXBvbmVudC5zY3NzXCJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQ2hlY2tvdXRPdmVydmlld0NvbXBvbmVudClcbiAgcHVibGljIG92ZXJ2aWV3OiBDaGVja291dE92ZXJ2aWV3Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJzdGVwcGVyXCIpXG4gIHB1YmxpYyBzdGVwcGVyOiBNYXRTdGVwcGVyO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdHJhbnNhY3Rpb25GaW5pc2hlZDogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uSW5mbz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uSW5mbz4oKTtcblxuICBwdWJsaWMgZ2V0IHJlbGF0aW9uKCk6IEN1c3RvbWVyRnVsbE9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5jdXJyZW50UmVsYXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mbyB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNhbkNvbnRpbnVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBwZXIgJiYgKHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ICE9PSAwIHx8ICFpc05pbGwodGhpcy5yZWxhdGlvbikpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaW5pc2hlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcGVyICYmIHRoaXMuc3RlcHBlci5zdGVwcyAmJiB0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRJbmRleCA9PT0gdGhpcy5zdGVwcGVyLnN0ZXBzLmxlbmd0aCAtIDE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVzZXJJc0FwcGxpY2F0aW9uVXNlcigpOiBib29sZWFuIHtcbiAgICAvLyBUT0RPOiByZXR1cm4gdGhpcy51c2VyU2VydmljZS5pc0FwcGxpY2F0aW9uVXNlcjtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZWRSZWxhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY29tcGxldGVkRGVsaXZlcnk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9yZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gTlVMTF9SRUxBVElPTl9PQkpFQ1Q7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgcHJvbXB0U2VydmljZTogUHJvbXB0U2VydmljZVxuICApIHt9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX2N1cnJlbnRTdGVwQnlJbmRleChpbmRleDogbnVtYmVyKTogQ2hlY2tvdXRTdGVwcyB7XG4gICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICByZXR1cm4gQ2hlY2tvdXRTdGVwcy5SZWxhdGlvbjtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgcmV0dXJuIENoZWNrb3V0U3RlcHMuRGVsaXZlcnk7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHJldHVybiBDaGVja291dFN0ZXBzLlBheW1lbnQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gQ2hlY2tvdXRTdGVwcy5PdmVydmlldztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY29udGludWUoKTogdm9pZCB7XG4gICAgbGV0IHRvTmV4dFN0ZXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpZiAoQ2hlY2tvdXRDb21wb25lbnQuX2N1cnJlbnRTdGVwQnlJbmRleCh0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRJbmRleCApID09PSBDaGVja291dFN0ZXBzLlJlbGF0aW9uKSB7XG4gICAgICB0b05leHRTdGVwID0gdGhpcy5vdmVydmlldy5yZWxhdGlvbkZvcm0uc3VibWl0KCk7XG4gICAgICB0aGlzLmNvbXBsZXRlZFJlbGF0aW9uID0gdG9OZXh0U3RlcDtcbiAgICAgIHRoaXMuY29tcGxldGVkRGVsaXZlcnkgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoQ2hlY2tvdXRDb21wb25lbnQuX2N1cnJlbnRTdGVwQnlJbmRleCh0aGlzLnN0ZXBwZXIuc2VsZWN0ZWRJbmRleCApID09PSBDaGVja291dFN0ZXBzLkRlbGl2ZXJ5KSB7XG4gICAgICB0b05leHRTdGVwID0gdGhpcy5vdmVydmlldy5kZWxpdmVyeUZvcm0uc3VibWl0KCk7XG4gICAgICB0aGlzLmNvbXBsZXRlZERlbGl2ZXJ5ID0gdG9OZXh0U3RlcDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGVwcGVyICYmIHRvTmV4dFN0ZXApIHtcbiAgICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZC5jb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICB9XG4gIH1cblxuXG4gIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGVwcGVyKSB7XG4gICAgICB0aGlzLnN0ZXBwZXIucHJldmlvdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RlcEZpbmlzaGVkKCk6IHZvaWQge1xuICAgIHRoaXMuY29udGludWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTYXZlUmVsYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zYXZlTmV3UmVsYXRpb24oKS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuc2VydmljZS5zYXZlVHJhbnNhY3Rpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTYXZlRGVsaXZlcnkoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5zZXJ2aWNlLnNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCkudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XG4gICAgICAgICAgY29uc3QgcmVzcG9uc2U6IFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbigpO1xuICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1pdFJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuc2VydmljZS5jb21taXQoKTtcbiAgICAgICAgICAgIGlmIChjb21taXRSZXNwb25zZSAmJiBjb21taXRSZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIGNvbW1pdFJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQubmV4dCh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcihcIk9wc2xhZyBiZXpvcmdpbmcgbWlzbHVrdFwiLCBcIiBcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0pLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgIHRoaXMucHJvbXB0U2VydmljZS5zaG93RXJyb3IoXCJPcHNsYWcgdHJhbnNhY3RpZSBtaXNsdWt0XCIsIFwiIFwiKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVOZXdSZWxhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoaXNOaWxsKHRoaXMuc2VydmljZS5jdXJyZW50UmVsYXRpb24ucmVsYXRpb25JZCkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5zYXZlTmV3UmVsYXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGVwQ2hhbmdlZChldmVudDogU3RlcHBlclNlbGVjdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vdmVydmlldy5tb3ZlVG9TdGVwKENoZWNrb3V0Q29tcG9uZW50Ll9jdXJyZW50U3RlcEJ5SW5kZXgoZXZlbnQuc2VsZWN0ZWRJbmRleCksIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluc2VydERhdGEoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmluc2VydEN1c3RvbWVyKHRoaXMucmVsYXRpb24pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZURhdGEoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IHRoaXMucmVsYXRpb247XG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKTtcbiAgfVxufVxuIl19
@@ -142,13 +142,13 @@ CheckoutOverviewComponent.decorators = [
142
142
  *ngIf="currentStep === steps.Relation"
143
143
  (editModeChange)="handleEditChangeRelation($event)">
144
144
  <ng-container edit-mode-content>
145
- <checkout-overview-relation-edit #relationForm
145
+ <co-checkout-overview-relation-edit #relationForm
146
146
  *ngIf="currentStep === steps.Relation && editMode"
147
147
  [relation]="relation"
148
148
  [transaction]="transaction"
149
149
  (validSubmit)="onRelationValid()"
150
150
  (invalidSubmit)="onRelationInvalid()"
151
- ></checkout-overview-relation-edit>
151
+ ></co-checkout-overview-relation-edit>
152
152
  </ng-container>
153
153
  </checkout-overview-block>
154
154
 
@@ -165,7 +165,7 @@ CheckoutOverviewComponent.decorators = [
165
165
  </ng-container>
166
166
  </checkout-overview-block>
167
167
  `,
168
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.overview-header .overview-step-nr{border-radius:50%}.flex-center,.step-content-delivery,.step-content-customer{display:flex}.flex-center,.step-content-delivery{flex-direction:row}.step-content-customer{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.step-content-customer,.step-content-delivery{padding-bottom:20px}.step-content-customer,.step-content-delivery{padding-top:20px}.step-content-customer,.step-content-delivery{padding-left:20px}.step-content-customer,.step-content-delivery{padding-right:20px}.overview-body{padding-left:30px}.overview-body{padding-right:30px}.overview-body{padding-top:30px}.overview-body{padding-bottom:30px}ul.cart-buttons>li{padding-left:11px}ul.cart-buttons>li{padding-right:11px}ul.cart-buttons{margin-top:20px}ul.cart-buttons{margin-bottom:20px}.overview-header .overview-step-nr{color:#f7fafa}.overview-header .overview-step-nr{background-color:#2b60a7}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}.checkout-viewport{max-width:60%;margin-left:20%}.mat-label{font-family:Montserrat,Arial,Helvetica,sans-serif}.default-flex-row{flex-direction:row;box-sizing:border-box;grid-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:flex}.default-flex-column{display:flex;flex-direction:column;width:200px}.privacy-row{display:flex;flex-direction:row;margin-bottom:20px}.privacy-column-left{display:flex;flex-direction:column;min-width:150px;max-width:150px;overflow-wrap:break-word}.privacy-column-right{display:flex;flex-direction:row;margin-left:50px}.checkout-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.checkout-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}co-input-radio-button{margin-left:16px}.checkout-overview h2{font-size:18px;font-weight:bold}.checkout-overview h3{font-size:15px}mat-horizontal-stepper{position:sticky;top:0;z-index:30}::ng-deep .mat-horizontal-content-container{display:none}.step-content-customer{background-color:#fff}.step-content-delivery{background-color:#fff}::ng-deep .step-wrapper{width:auto;background:rgba(255,255,255,.25)}::ng-deep .step-wrapper button-colijn{margin-top:20px}::ng-deep .step-wrapper.payment{align-items:center!important;justify-content:left!important}.overview-header{background:rgba(255,255,255,.25);border-top-left-radius:5px;border-top-right-radius:5px}.overview-header .overview-step-nr{width:20px;height:20px;text-align:center;font-weight:bold}.overview-body{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.overview-body .contact-option-value{align-self:center}.overview-header-label{font-weight:bold}.overview-label{font-weight:bold}ul.cart-buttons{display:flex;justify-content:space-between;flex-wrap:nowrap;list-style-type:none}ul.cart-buttons>li{display:flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:40px;background-color:#f7fafa;cursor:pointer;font-size:15px;color:#2b60a7;border:1px solid #DCE4EA;border-radius:5px;opacity:1}ul.cart-buttons>li a{white-space:nowrap}\n"]
168
+ styles: [""]
169
169
  },] }
170
170
  ];
171
171
  CheckoutOverviewComponent.ctorParameters = () => [];
@@ -182,4 +182,4 @@ CheckoutOverviewComponent.propDecorators = {
182
182
  savePayment: [{ type: Output }],
183
183
  stepFinished: [{ type: Output }]
184
184
  };
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQtb3ZlcnZpZXcvY2hlY2tvdXQtb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHaEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDOUYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDNUcsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDbkksT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFvQ25JLE1BQU0sT0FBTyx5QkFBeUI7SUE0Q3BDO1FBM0NnQixVQUFLLEdBQXlCLGFBQWEsQ0FBQztRQWE1RCxFQUFFO1FBQ0YscUVBQXFFO1FBQ3JFLHVEQUF1RDtRQUdoRCxhQUFRLEdBQW9CLG9CQUFvQixDQUFDO1FBTWpELDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUd2QyxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFNUQsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzRCxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLGdCQUFXLEdBQWtCLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDcEQsYUFBUSxHQUFZLElBQUksQ0FBQztR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QUVOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0NoZWNrb3V0U3RlcHN9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2NoZWNrb3V0LXN0ZXBzLmVudW1cIjtcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvXCI7XG5pbXBvcnQge05VTExfUkVMQVRJT05fT0JKRUNUfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL251bC1yZWxhdGlvbi1vYmplY3RcIjtcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld0Jsb2NrQ29tcG9uZW50fSBmcm9tIFwiLi4vY2hlY2tvdXQtb3ZlcnZpZXctYmxvY2svY2hlY2tvdXQtb3ZlcnZpZXctYmxvY2suY29tcG9uZW50XCI7XG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnR9IGZyb20gXCIuLi9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnR9IGZyb20gXCIuLi9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjaGVja291dC1vdmVydmlld1wiLFxuICB0ZW1wbGF0ZTogYFxuICAgICAgICA8Y2hlY2tvdXQtb3ZlcnZpZXctYmxvY2sgICNyZWxhdGlvbkJsb2NrIHNlcXVlbmNlTnI9XCIyXCIgbGFiZWw9XCJZT1VSX0RBVEFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gc3RlcHMuUmVsYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRNb2RlQ2hhbmdlKT1cImhhbmRsZUVkaXRDaGFuZ2VSZWxhdGlvbigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGVkaXQtbW9kZS1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxjaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0ICNyZWxhdGlvbkZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBzdGVwcy5SZWxhdGlvbiAmJiBlZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWxpZFN1Ym1pdCk9XCJvblJlbGF0aW9uVmFsaWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludmFsaWRTdWJtaXQpPVwib25SZWxhdGlvbkludmFsaWQoKVwiXG4gICAgICAgICAgICAgICAgPjwvY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2NoZWNrb3V0LW92ZXJ2aWV3LWJsb2NrPlxuXG4gICAgICAgIDxjaGVja291dC1vdmVydmlldy1ibG9jayAjZGVsaXZlcnlCbG9jayBzZXF1ZW5jZU5yPVwiM1wiIGxhYmVsPVwiREVMSVZFUllcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJjdXJyZW50U3RlcCAhPT0gc3RlcHMuRGVsaXZlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRNb2RlQ2hhbmdlKT1cImhhbmRsZUVkaXRDaGFuZ2VEZWxpdmVyeSgkZXZlbnQpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBlZGl0LW1vZGUtY29udGVudD5cbiAgICAgICAgICAgIDxjaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0ICNkZWxpdmVyeUZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiY3VycmVudFN0ZXAgIT09IHN0ZXBzLkRlbGl2ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbGlkU3VibWl0KT1cIm9uRGVsaXZlcnlWYWxpZCgpXCJcbiAgICAgICAgICAgID48L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvY2hlY2tvdXQtb3ZlcnZpZXctYmxvY2s+XG4gICBgLFxuICBzdHlsZVVybHM6IFtcbiAgICBcIi4vLi4vY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnNjc3NcIlxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0T3ZlcnZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBzdGVwczogdHlwZW9mIENoZWNrb3V0U3RlcHMgPSBDaGVja291dFN0ZXBzO1xuXG4gIEBWaWV3Q2hpbGQoXCJyZWxhdGlvbkJsb2NrXCIsIHtyZWFkOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnR9KVxuICBwdWJsaWMgcmVsYXRpb25CbG9jazogQ2hlY2tvdXRPdmVydmlld0Jsb2NrQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJyZWxhdGlvbkZvcm1cIiwge3JlYWQ6IENoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnR9KVxuICBwdWJsaWMgcmVsYXRpb25Gb3JtOiBDaGVja291dE92ZXJ2aWV3UmVsYXRpb25FZGl0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJkZWxpdmVyeUJsb2NrXCIsIHtyZWFkOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnR9KVxuICBwdWJsaWMgZGVsaXZlcnlCbG9jazogQ2hlY2tvdXRPdmVydmlld0Jsb2NrQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJkZWxpdmVyeUZvcm1cIiwge3JlYWQ6IENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnR9KVxuICBwdWJsaWMgZGVsaXZlcnlGb3JtOiBDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50O1xuICAvL1xuICAvLyBAVmlld0NoaWxkKFwicGF5bWVudEJsb2NrXCIsIHtyZWFkOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnR9KVxuICAvLyBwdWJsaWMgcGF5bWVudEJsb2NrOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBOVUxMX1JFTEFUSU9OX09CSkVDVDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mbztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdXNlcklzQXBwbGljYXRpb25Vc2VyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlUmVsYXRpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlRGVsaXZlcnk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlUGF5bWVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KClcbiAgcHVibGljIHN0ZXBGaW5pc2hlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBsb2dpblJlcXVlc3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjdXJyZW50U3RlcDogQ2hlY2tvdXRTdGVwcyA9IENoZWNrb3V0U3RlcHMuUmVsYXRpb247XG4gIHB1YmxpYyBlZGl0TW9kZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiwgbm8tdW5kZXJzY29yZS1kYW5nbGUsIGlkLWJsYWNrbGlzdCwgaWQtbWF0Y2hcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgLy8gIHB1YmxpYyBzZXJ2aWNlOiBSZXRhaWxUcmFuc2FjdGlvbk1vZHVsZVNlcnZpY2VcbiAgKSB7XG4gICAgLy8gVE9ETzogc3Vic2NyaWJlIHRvIHJlbGF0aW9uIGFuZCB0cmFuc2FjdGlvbiBzZXJ2aWNlXG4gICAgLy8gdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHNlcnZpY2UucmVsYXRpb25VcGRhdGVkRXZlbnRFbWl0dGVyLnN1YnNjcmliZSgodXBkYXRlZDogYm9vbGVhbikgPT4ge1xuICAgIC8vICAgaWYgKHVwZGF0ZWQgJiYgdGhpcy5jdXJyZW50U3RlcCA9PT0gQ2hlY2tvdXRTdGVwcy5SZWxhdGlvbikge1xuICAgIC8vICAgICB0aGlzLnN0ZXBGaW5pc2hlZC5lbWl0KCk7XG4gICAgLy8gICB9XG4gICAgLy8gfSkpO1xuICAgIC8vIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChzZXJ2aWNlLnRyYW5zYWN0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgIC8vICAgaWYgKHRoaXMubG9naW5SZXF1ZXN0ZWQpIHtcbiAgICAvLyAgICAgdGhpcy5sb2dpblJlcXVlc3RlZCA9IGZhbHNlO1xuICAgIC8vICAgICB0aGlzLnN0ZXBGaW5pc2hlZC5lbWl0KCk7XG4gICAgLy8gICB9XG4gICAgLy8gfSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24gJiYgdGhpcy50cmFuc2FjdGlvbi5yZWxhdGlvbikge1xuICAgICAgdGhpcy5tb3ZlVG9TdGVwKENoZWNrb3V0U3RlcHMuUmVsYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRWRpdENoYW5nZVJlbGF0aW9uKGVkaXRNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xuICAgIGlmICghZWRpdE1vZGUpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwICE9PSBDaGVja291dFN0ZXBzLlJlbGF0aW9uKSB7XG4gICAgICAgIHRoaXMuc2F2ZVJlbGF0aW9uLmVtaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgdGhpcy5yZWxhdGlvbkZvcm0uc3VibWl0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUmVsYXRpb25WYWxpZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVSZWxhdGlvbi5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25SZWxhdGlvbkludmFsaWQoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZSA9IHRydWU7XG4gICAgdGhpcy5yZWxhdGlvbkJsb2NrLnN0YXJ0RWRpdCgpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsaXZlcnlWYWxpZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVEZWxpdmVyeS5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRWRpdENoYW5nZURlbGl2ZXJ5KGVkaXRNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xuXG4gICAgaWYgKCFlZGl0TW9kZSkge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFN0ZXAgIT09IENoZWNrb3V0U3RlcHMuRGVsaXZlcnkpIHtcbi8vICAgICAgICB0aGlzLmRlbGl2ZXJ5Rm9ybS5zdWJtaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2F2ZURlbGl2ZXJ5LmVtaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRWRpdENoYW5nZVBheW1lbnQoZWRpdE1vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVQYXltZW50LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVG9TdGVwKHN0ZXA6IENoZWNrb3V0U3RlcHMsIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwO1xuXG4gICAgaWYgKGVkaXQgJiYgdGhpcy5pc1JlbGF0aW9uKCkpIHtcbiAgICAgIHN3aXRjaCAoc3RlcCkge1xuICAgICAgICBjYXNlIENoZWNrb3V0U3RlcHMuUmVsYXRpb246XG4gICAgICAgICAgLy8gdGhpcy5zdG9wRWRpdExvZ2luQmxvY2soKTtcbiAgICAgICAgICB0aGlzLnN0YXJ0RWRpdFJlbGF0aW9uQmxvY2soKTtcbiAgICAgICAgICB0aGlzLnN0b3BFZGl0RGVsaXZlcnlCbG9jaygpO1xuICAgICAgICAgIHRoaXMuc3RvcEVkaXRQYXltZW50QmxvY2soKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgQ2hlY2tvdXRTdGVwcy5EZWxpdmVyeTpcbiAgICAgICAgICB0aGlzLnN0b3BFZGl0UmVsYXRpb25CbG9jaygpO1xuICAgICAgICAgIHRoaXMuc3RhcnRFZGl0RGVsaXZlcnlCbG9jaygpO1xuICAgICAgICAgIHRoaXMuc3RvcEVkaXRQYXltZW50QmxvY2soKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgQ2hlY2tvdXRTdGVwcy5QYXltZW50OlxuICAgICAgICAgIHRoaXMuc3RvcEVkaXRSZWxhdGlvbkJsb2NrKCk7XG4gICAgICAgICAgdGhpcy5zdG9wRWRpdERlbGl2ZXJ5QmxvY2soKTtcbiAgICAgICAgICB0aGlzLnN0YXJ0RWRpdFBheW1lbnRCbG9jaygpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0RWRpdFJlbGF0aW9uQmxvY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVsYXRpb25CbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlbGF0aW9uQmxvY2suc3RhcnRFZGl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydEVkaXREZWxpdmVyeUJsb2NrKCk6IHZvaWQge1xuICAgIC8vIGlmICh0aGlzLmRlbGl2ZXJ5QmxvY2sgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vICAgdGhpcy5kZWxpdmVyeUJsb2NrLnN0YXJ0RWRpdCgpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRFZGl0UGF5bWVudEJsb2NrKCk6IHZvaWQge1xuICAgIC8vIGlmICh0aGlzLnBheW1lbnRCbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gICB0aGlzLnBheW1lbnRCbG9jay5zdGFydEVkaXQoKTtcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BFZGl0UmVsYXRpb25CbG9jaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWxhdGlvbkJsb2NrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVsYXRpb25CbG9jay5zdG9wRWRpdChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRWRpdERlbGl2ZXJ5QmxvY2soKTogdm9pZCB7XG4gICAgLy8gaWYgKHRoaXMuZGVsaXZlcnlCbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gICB0aGlzLmRlbGl2ZXJ5QmxvY2suc3RvcEVkaXQoZmFsc2UpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RvcEVkaXRQYXltZW50QmxvY2soKTogdm9pZCB7XG4gICAgLy8gaWYgKHRoaXMucGF5bWVudEJsb2NrICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyAgIHRoaXMucGF5bWVudEJsb2NrLnN0b3BFZGl0KGZhbHNlKTtcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIGlzUmVsYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnJlbGF0aW9uICE9PSBOVUxMX1JFTEFUSU9OX09CSkVDVCk7XG4gIH1cbn1cbiJdfQ==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQtb3ZlcnZpZXcvY2hlY2tvdXQtb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHaEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDOUYsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDNUcsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFDbkksT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sOEVBQThFLENBQUM7QUFvQ25JLE1BQU0sT0FBTyx5QkFBeUI7SUE0Q3BDO1FBM0NnQixVQUFLLEdBQXlCLGFBQWEsQ0FBQztRQWE1RCxFQUFFO1FBQ0YscUVBQXFFO1FBQ3JFLHVEQUF1RDtRQUdoRCxhQUFRLEdBQW9CLG9CQUFvQixDQUFDO1FBTWpELDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUd2QyxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVELGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFNUQsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUzRCxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLGdCQUFXLEdBQWtCLGFBQWEsQ0FBQyxRQUFRLENBQUM7UUFDcEQsYUFBUSxHQUFZLElBQUksQ0FBQztR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QUVOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0NoZWNrb3V0U3RlcHN9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2NoZWNrb3V0LXN0ZXBzLmVudW1cIjtcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvXCI7XG5pbXBvcnQge05VTExfUkVMQVRJT05fT0JKRUNUfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL251bC1yZWxhdGlvbi1vYmplY3RcIjtcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld0Jsb2NrQ29tcG9uZW50fSBmcm9tIFwiLi4vY2hlY2tvdXQtb3ZlcnZpZXctYmxvY2svY2hlY2tvdXQtb3ZlcnZpZXctYmxvY2suY29tcG9uZW50XCI7XG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnR9IGZyb20gXCIuLi9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQuY29tcG9uZW50XCI7XG5pbXBvcnQge0NoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnR9IGZyb20gXCIuLi9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjaGVja291dC1vdmVydmlld1wiLFxuICB0ZW1wbGF0ZTogYFxuICAgICAgICA8Y2hlY2tvdXQtb3ZlcnZpZXctYmxvY2sgICNyZWxhdGlvbkJsb2NrIHNlcXVlbmNlTnI9XCIyXCIgbGFiZWw9XCJZT1VSX0RBVEFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjdXJyZW50U3RlcCA9PT0gc3RlcHMuUmVsYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRNb2RlQ2hhbmdlKT1cImhhbmRsZUVkaXRDaGFuZ2VSZWxhdGlvbigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGVkaXQtbW9kZS1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxjby1jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0ICNyZWxhdGlvbkZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRTdGVwID09PSBzdGVwcy5SZWxhdGlvbiAmJiBlZGl0TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWxpZFN1Ym1pdCk9XCJvblJlbGF0aW9uVmFsaWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludmFsaWRTdWJtaXQpPVwib25SZWxhdGlvbkludmFsaWQoKVwiXG4gICAgICAgICAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2NoZWNrb3V0LW92ZXJ2aWV3LWJsb2NrPlxuXG4gICAgICAgIDxjaGVja291dC1vdmVydmlldy1ibG9jayAjZGVsaXZlcnlCbG9jayBzZXF1ZW5jZU5yPVwiM1wiIGxhYmVsPVwiREVMSVZFUllcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJjdXJyZW50U3RlcCAhPT0gc3RlcHMuRGVsaXZlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRNb2RlQ2hhbmdlKT1cImhhbmRsZUVkaXRDaGFuZ2VEZWxpdmVyeSgkZXZlbnQpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBlZGl0LW1vZGUtY29udGVudD5cbiAgICAgICAgICAgIDxjaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0ICNkZWxpdmVyeUZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiY3VycmVudFN0ZXAgIT09IHN0ZXBzLkRlbGl2ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbGlkU3VibWl0KT1cIm9uRGVsaXZlcnlWYWxpZCgpXCJcbiAgICAgICAgICAgID48L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvY2hlY2tvdXQtb3ZlcnZpZXctYmxvY2s+XG4gICBgLFxuICBzdHlsZVVybHM6IFtcbiAgICBcIi4vLi4vY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnNjc3NcIlxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0T3ZlcnZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBzdGVwczogdHlwZW9mIENoZWNrb3V0U3RlcHMgPSBDaGVja291dFN0ZXBzO1xuXG4gIEBWaWV3Q2hpbGQoXCJyZWxhdGlvbkJsb2NrXCIsIHtyZWFkOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnR9KVxuICBwdWJsaWMgcmVsYXRpb25CbG9jazogQ2hlY2tvdXRPdmVydmlld0Jsb2NrQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJyZWxhdGlvbkZvcm1cIiwge3JlYWQ6IENoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnR9KVxuICBwdWJsaWMgcmVsYXRpb25Gb3JtOiBDaGVja291dE92ZXJ2aWV3UmVsYXRpb25FZGl0Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJkZWxpdmVyeUJsb2NrXCIsIHtyZWFkOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnR9KVxuICBwdWJsaWMgZGVsaXZlcnlCbG9jazogQ2hlY2tvdXRPdmVydmlld0Jsb2NrQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoXCJkZWxpdmVyeUZvcm1cIiwge3JlYWQ6IENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnR9KVxuICBwdWJsaWMgZGVsaXZlcnlGb3JtOiBDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50O1xuICAvL1xuICAvLyBAVmlld0NoaWxkKFwicGF5bWVudEJsb2NrXCIsIHtyZWFkOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnR9KVxuICAvLyBwdWJsaWMgcGF5bWVudEJsb2NrOiBDaGVja291dE92ZXJ2aWV3QmxvY2tDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBOVUxMX1JFTEFUSU9OX09CSkVDVDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mbztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdXNlcklzQXBwbGljYXRpb25Vc2VyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlUmVsYXRpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlRGVsaXZlcnk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzYXZlUGF5bWVudDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KClcbiAgcHVibGljIHN0ZXBGaW5pc2hlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHB1YmxpYyBsb2dpblJlcXVlc3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjdXJyZW50U3RlcDogQ2hlY2tvdXRTdGVwcyA9IENoZWNrb3V0U3RlcHMuUmVsYXRpb247XG4gIHB1YmxpYyBlZGl0TW9kZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiwgbm8tdW5kZXJzY29yZS1kYW5nbGUsIGlkLWJsYWNrbGlzdCwgaWQtbWF0Y2hcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgLy8gIHB1YmxpYyBzZXJ2aWNlOiBSZXRhaWxUcmFuc2FjdGlvbk1vZHVsZVNlcnZpY2VcbiAgKSB7XG4gICAgLy8gVE9ETzogc3Vic2NyaWJlIHRvIHJlbGF0aW9uIGFuZCB0cmFuc2FjdGlvbiBzZXJ2aWNlXG4gICAgLy8gdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHNlcnZpY2UucmVsYXRpb25VcGRhdGVkRXZlbnRFbWl0dGVyLnN1YnNjcmliZSgodXBkYXRlZDogYm9vbGVhbikgPT4ge1xuICAgIC8vICAgaWYgKHVwZGF0ZWQgJiYgdGhpcy5jdXJyZW50U3RlcCA9PT0gQ2hlY2tvdXRTdGVwcy5SZWxhdGlvbikge1xuICAgIC8vICAgICB0aGlzLnN0ZXBGaW5pc2hlZC5lbWl0KCk7XG4gICAgLy8gICB9XG4gICAgLy8gfSkpO1xuICAgIC8vIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChzZXJ2aWNlLnRyYW5zYWN0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgIC8vICAgaWYgKHRoaXMubG9naW5SZXF1ZXN0ZWQpIHtcbiAgICAvLyAgICAgdGhpcy5sb2dpblJlcXVlc3RlZCA9IGZhbHNlO1xuICAgIC8vICAgICB0aGlzLnN0ZXBGaW5pc2hlZC5lbWl0KCk7XG4gICAgLy8gICB9XG4gICAgLy8gfSkpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24gJiYgdGhpcy50cmFuc2FjdGlvbi5yZWxhdGlvbikge1xuICAgICAgdGhpcy5tb3ZlVG9TdGVwKENoZWNrb3V0U3RlcHMuUmVsYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRWRpdENoYW5nZVJlbGF0aW9uKGVkaXRNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xuICAgIGlmICghZWRpdE1vZGUpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRTdGVwICE9PSBDaGVja291dFN0ZXBzLlJlbGF0aW9uKSB7XG4gICAgICAgIHRoaXMuc2F2ZVJlbGF0aW9uLmVtaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4vLyAgICAgICAgdGhpcy5yZWxhdGlvbkZvcm0uc3VibWl0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUmVsYXRpb25WYWxpZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVSZWxhdGlvbi5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25SZWxhdGlvbkludmFsaWQoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZSA9IHRydWU7XG4gICAgdGhpcy5yZWxhdGlvbkJsb2NrLnN0YXJ0RWRpdCgpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsaXZlcnlWYWxpZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVEZWxpdmVyeS5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRWRpdENoYW5nZURlbGl2ZXJ5KGVkaXRNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZSA9IGVkaXRNb2RlO1xuXG4gICAgaWYgKCFlZGl0TW9kZSkge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFN0ZXAgIT09IENoZWNrb3V0U3RlcHMuRGVsaXZlcnkpIHtcbi8vICAgICAgICB0aGlzLmRlbGl2ZXJ5Rm9ybS5zdWJtaXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2F2ZURlbGl2ZXJ5LmVtaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRWRpdENoYW5nZVBheW1lbnQoZWRpdE1vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVQYXltZW50LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlVG9TdGVwKHN0ZXA6IENoZWNrb3V0U3RlcHMsIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSBzdGVwO1xuXG4gICAgaWYgKGVkaXQgJiYgdGhpcy5pc1JlbGF0aW9uKCkpIHtcbiAgICAgIHN3aXRjaCAoc3RlcCkge1xuICAgICAgICBjYXNlIENoZWNrb3V0U3RlcHMuUmVsYXRpb246XG4gICAgICAgICAgLy8gdGhpcy5zdG9wRWRpdExvZ2luQmxvY2soKTtcbiAgICAgICAgICB0aGlzLnN0YXJ0RWRpdFJlbGF0aW9uQmxvY2soKTtcbiAgICAgICAgICB0aGlzLnN0b3BFZGl0RGVsaXZlcnlCbG9jaygpO1xuICAgICAgICAgIHRoaXMuc3RvcEVkaXRQYXltZW50QmxvY2soKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgQ2hlY2tvdXRTdGVwcy5EZWxpdmVyeTpcbiAgICAgICAgICB0aGlzLnN0b3BFZGl0UmVsYXRpb25CbG9jaygpO1xuICAgICAgICAgIHRoaXMuc3RhcnRFZGl0RGVsaXZlcnlCbG9jaygpO1xuICAgICAgICAgIHRoaXMuc3RvcEVkaXRQYXltZW50QmxvY2soKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgQ2hlY2tvdXRTdGVwcy5QYXltZW50OlxuICAgICAgICAgIHRoaXMuc3RvcEVkaXRSZWxhdGlvbkJsb2NrKCk7XG4gICAgICAgICAgdGhpcy5zdG9wRWRpdERlbGl2ZXJ5QmxvY2soKTtcbiAgICAgICAgICB0aGlzLnN0YXJ0RWRpdFBheW1lbnRCbG9jaygpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0RWRpdFJlbGF0aW9uQmxvY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVsYXRpb25CbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnJlbGF0aW9uQmxvY2suc3RhcnRFZGl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydEVkaXREZWxpdmVyeUJsb2NrKCk6IHZvaWQge1xuICAgIC8vIGlmICh0aGlzLmRlbGl2ZXJ5QmxvY2sgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vICAgdGhpcy5kZWxpdmVyeUJsb2NrLnN0YXJ0RWRpdCgpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRFZGl0UGF5bWVudEJsb2NrKCk6IHZvaWQge1xuICAgIC8vIGlmICh0aGlzLnBheW1lbnRCbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gICB0aGlzLnBheW1lbnRCbG9jay5zdGFydEVkaXQoKTtcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BFZGl0UmVsYXRpb25CbG9jaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWxhdGlvbkJsb2NrICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVsYXRpb25CbG9jay5zdG9wRWRpdChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdG9wRWRpdERlbGl2ZXJ5QmxvY2soKTogdm9pZCB7XG4gICAgLy8gaWYgKHRoaXMuZGVsaXZlcnlCbG9jayAhPT0gdW5kZWZpbmVkKSB7XG4gICAgLy8gICB0aGlzLmRlbGl2ZXJ5QmxvY2suc3RvcEVkaXQoZmFsc2UpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RvcEVkaXRQYXltZW50QmxvY2soKTogdm9pZCB7XG4gICAgLy8gaWYgKHRoaXMucGF5bWVudEJsb2NrICE9PSB1bmRlZmluZWQpIHtcbiAgICAvLyAgIHRoaXMucGF5bWVudEJsb2NrLnN0b3BFZGl0KGZhbHNlKTtcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIGlzUmVsYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnJlbGF0aW9uICE9PSBOVUxMX1JFTEFUSU9OX09CSkVDVCk7XG4gIH1cbn1cbiJdfQ==
@@ -34,7 +34,7 @@ CheckoutOverviewBlockComponent.decorators = [
34
34
  </div>
35
35
  </div>
36
36
  `,
37
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.overview-header .overview-step-nr{border-radius:50%}.flex-center,.step-content-delivery,.step-content-customer{display:flex}.flex-center,.step-content-delivery{flex-direction:row}.step-content-customer{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.step-content-customer,.step-content-delivery{padding-bottom:20px}.step-content-customer,.step-content-delivery{padding-top:20px}.step-content-customer,.step-content-delivery{padding-left:20px}.step-content-customer,.step-content-delivery{padding-right:20px}.overview-body{padding-left:30px}.overview-body{padding-right:30px}.overview-body{padding-top:30px}.overview-body{padding-bottom:30px}ul.cart-buttons>li{padding-left:11px}ul.cart-buttons>li{padding-right:11px}ul.cart-buttons{margin-top:20px}ul.cart-buttons{margin-bottom:20px}.overview-header .overview-step-nr{color:#f7fafa}.overview-header .overview-step-nr{background-color:#2b60a7}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}.checkout-viewport{max-width:60%;margin-left:20%}.mat-label{font-family:Montserrat,Arial,Helvetica,sans-serif}.default-flex-row{flex-direction:row;box-sizing:border-box;grid-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:flex}.default-flex-column{display:flex;flex-direction:column;width:200px}.privacy-row{display:flex;flex-direction:row;margin-bottom:20px}.privacy-column-left{display:flex;flex-direction:column;min-width:150px;max-width:150px;overflow-wrap:break-word}.privacy-column-right{display:flex;flex-direction:row;margin-left:50px}.checkout-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.checkout-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}co-input-radio-button{margin-left:16px}.checkout-overview h2{font-size:18px;font-weight:bold}.checkout-overview h3{font-size:15px}mat-horizontal-stepper{position:sticky;top:0;z-index:30}::ng-deep .mat-horizontal-content-container{display:none}.step-content-customer{background-color:#fff}.step-content-delivery{background-color:#fff}::ng-deep .step-wrapper{width:auto;background:rgba(255,255,255,.25)}::ng-deep .step-wrapper button-colijn{margin-top:20px}::ng-deep .step-wrapper.payment{align-items:center!important;justify-content:left!important}.overview-header{background:rgba(255,255,255,.25);border-top-left-radius:5px;border-top-right-radius:5px}.overview-header .overview-step-nr{width:20px;height:20px;text-align:center;font-weight:bold}.overview-body{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.overview-body .contact-option-value{align-self:center}.overview-header-label{font-weight:bold}.overview-label{font-weight:bold}ul.cart-buttons{display:flex;justify-content:space-between;flex-wrap:nowrap;list-style-type:none}ul.cart-buttons>li{display:flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:40px;background-color:#f7fafa;cursor:pointer;font-size:15px;color:#2b60a7;border:1px solid #DCE4EA;border-radius:5px;opacity:1}ul.cart-buttons>li a{white-space:nowrap}\n"]
37
+ styles: [""]
38
38
  },] }
39
39
  ];
40
40
  CheckoutOverviewBlockComponent.ctorParameters = () => [];
@@ -33,7 +33,7 @@ CheckoutOverviewDeliveryAddressComponent.decorators = [
33
33
  </div>
34
34
  </div>
35
35
  `,
36
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.overview-header .overview-step-nr{border-radius:50%}.flex-center,.step-content-delivery,.step-content-customer{display:flex}.flex-center,.step-content-delivery{flex-direction:row}.step-content-customer{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.step-content-customer,.step-content-delivery{padding-bottom:20px}.step-content-customer,.step-content-delivery{padding-top:20px}.step-content-customer,.step-content-delivery{padding-left:20px}.step-content-customer,.step-content-delivery{padding-right:20px}.overview-body{padding-left:30px}.overview-body{padding-right:30px}.overview-body{padding-top:30px}.overview-body{padding-bottom:30px}ul.cart-buttons>li{padding-left:11px}ul.cart-buttons>li{padding-right:11px}ul.cart-buttons{margin-top:20px}ul.cart-buttons{margin-bottom:20px}.overview-header .overview-step-nr{color:#f7fafa}.overview-header .overview-step-nr{background-color:#2b60a7}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}.checkout-viewport{max-width:60%;margin-left:20%}.mat-label{font-family:Montserrat,Arial,Helvetica,sans-serif}.default-flex-row{flex-direction:row;box-sizing:border-box;grid-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:flex}.default-flex-column{display:flex;flex-direction:column;width:200px}.privacy-row{display:flex;flex-direction:row;margin-bottom:20px}.privacy-column-left{display:flex;flex-direction:column;min-width:150px;max-width:150px;overflow-wrap:break-word}.privacy-column-right{display:flex;flex-direction:row;margin-left:50px}.checkout-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.checkout-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}co-input-radio-button{margin-left:16px}.checkout-overview h2{font-size:18px;font-weight:bold}.checkout-overview h3{font-size:15px}mat-horizontal-stepper{position:sticky;top:0;z-index:30}::ng-deep .mat-horizontal-content-container{display:none}.step-content-customer{background-color:#fff}.step-content-delivery{background-color:#fff}::ng-deep .step-wrapper{width:auto;background:rgba(255,255,255,.25)}::ng-deep .step-wrapper button-colijn{margin-top:20px}::ng-deep .step-wrapper.payment{align-items:center!important;justify-content:left!important}.overview-header{background:rgba(255,255,255,.25);border-top-left-radius:5px;border-top-right-radius:5px}.overview-header .overview-step-nr{width:20px;height:20px;text-align:center;font-weight:bold}.overview-body{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.overview-body .contact-option-value{align-self:center}.overview-header-label{font-weight:bold}.overview-label{font-weight:bold}ul.cart-buttons{display:flex;justify-content:space-between;flex-wrap:nowrap;list-style-type:none}ul.cart-buttons>li{display:flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:40px;background-color:#f7fafa;cursor:pointer;font-size:15px;color:#2b60a7;border:1px solid #DCE4EA;border-radius:5px;opacity:1}ul.cart-buttons>li a{white-space:nowrap}\n", ""]
36
+ styles: ["", ""]
37
37
  },] }
38
38
  ];
39
39
  CheckoutOverviewDeliveryAddressComponent.ctorParameters = () => [
@@ -364,9 +364,9 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
364
364
  <co-dialog [visible]="addLocationPopup">
365
365
  <ng-container header>{{ 'NEW_LOCATION' | localize }}</ng-container>
366
366
  <co-form #locationForm (validSubmit)="saveLocation()">
367
- <checkout-overview-relation-address
367
+ <co-checkout-overview-relation-address
368
368
  label="ADDRESS" [address]="newAddress"
369
- ></checkout-overview-relation-address>
369
+ ></co-checkout-overview-relation-address>
370
370
  <div fxLayout="row" fxLayoutGap="10px" fxLayoutAlign="end">
371
371
  <co-button [label]="'CANCEL' | localize" (click)="addLocationPopup = false;"></co-button>
372
372
  <co-button [label]="'SAVE' | localize" (click)="saveNewLocation()"></co-button>
@@ -399,7 +399,7 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
399
399
  </co-form>
400
400
  </co-dialog>
401
401
  `,
402
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.overview-header .overview-step-nr{border-radius:50%}.flex-center,.step-content-delivery,.step-content-customer{display:flex}.flex-center,.step-content-delivery{flex-direction:row}.step-content-customer{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.step-content-customer,.step-content-delivery{padding-bottom:20px}.step-content-customer,.step-content-delivery{padding-top:20px}.step-content-customer,.step-content-delivery{padding-left:20px}.step-content-customer,.step-content-delivery{padding-right:20px}.overview-body{padding-left:30px}.overview-body{padding-right:30px}.overview-body{padding-top:30px}.overview-body{padding-bottom:30px}ul.cart-buttons>li{padding-left:11px}ul.cart-buttons>li{padding-right:11px}ul.cart-buttons{margin-top:20px}ul.cart-buttons{margin-bottom:20px}.overview-header .overview-step-nr{color:#f7fafa}.overview-header .overview-step-nr{background-color:#2b60a7}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}.checkout-viewport{max-width:60%;margin-left:20%}.mat-label{font-family:Montserrat,Arial,Helvetica,sans-serif}.default-flex-row{flex-direction:row;box-sizing:border-box;grid-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:flex}.default-flex-column{display:flex;flex-direction:column;width:200px}.privacy-row{display:flex;flex-direction:row;margin-bottom:20px}.privacy-column-left{display:flex;flex-direction:column;min-width:150px;max-width:150px;overflow-wrap:break-word}.privacy-column-right{display:flex;flex-direction:row;margin-left:50px}.checkout-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.checkout-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}co-input-radio-button{margin-left:16px}.checkout-overview h2{font-size:18px;font-weight:bold}.checkout-overview h3{font-size:15px}mat-horizontal-stepper{position:sticky;top:0;z-index:30}::ng-deep .mat-horizontal-content-container{display:none}.step-content-customer{background-color:#fff}.step-content-delivery{background-color:#fff}::ng-deep .step-wrapper{width:auto;background:rgba(255,255,255,.25)}::ng-deep .step-wrapper button-colijn{margin-top:20px}::ng-deep .step-wrapper.payment{align-items:center!important;justify-content:left!important}.overview-header{background:rgba(255,255,255,.25);border-top-left-radius:5px;border-top-right-radius:5px}.overview-header .overview-step-nr{width:20px;height:20px;text-align:center;font-weight:bold}.overview-body{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.overview-body .contact-option-value{align-self:center}.overview-header-label{font-weight:bold}.overview-label{font-weight:bold}ul.cart-buttons{display:flex;justify-content:space-between;flex-wrap:nowrap;list-style-type:none}ul.cart-buttons>li{display:flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:40px;background-color:#f7fafa;cursor:pointer;font-size:15px;color:#2b60a7;border:1px solid #DCE4EA;border-radius:5px;opacity:1}ul.cart-buttons>li a{white-space:nowrap}\n", ".container-button-change-address{margin-top:5px}\n"]
402
+ styles: ["", ".container-button-change-address{margin-top:5px}\n"]
403
403
  },] }
404
404
  ];
405
405
  CheckoutOverviewDeliveryEditComponent.ctorParameters = () => [
@@ -417,4 +417,4 @@ CheckoutOverviewDeliveryEditComponent.propDecorators = {
417
417
  validSubmit: [{ type: Output }],
418
418
  invalidSubmit: [{ type: Output }]
419
419
  };
420
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFxQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFHeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBR2xGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBR3hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBNE10RSxNQUFNLE9BQU8scUNBQXFDO0lBNEloRCxZQUNZLEdBQXNCLEVBQ3RCLGtCQUFxQyxFQUN0QyxPQUEyQjtRQUYxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBOUl0Qix3QkFBbUIsR0FBZ0IsV0FBVyxDQUFDLGVBQWUsQ0FBQztRQUMvRCx1QkFBa0IsR0FBZ0IsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQXFCdEUsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUczRCxrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTdELHVCQUFrQixHQUFxQixFQUFFLENBQUM7UUFDMUMs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LEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVhLHdCQUF3QixDQUFDLE9BQWdCOztZQUNyRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUM3QyxNQUFNLE9BQU8sR0FBWSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDMUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQzNDO1FBQ0gsQ0FBQztLQUFBOzs7WUF6Y0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlNVDs7YUFLRjs7O1lBdk5zQixpQkFBaUI7WUFZaEMsaUJBQWlCO1lBSGpCLGtCQUFrQjs7OzJCQW1OdkIsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUM7MkJBRy9DLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFDO21DQUcvQyxTQUFTLFNBQUMsc0JBQXNCOzBCQUdoQyxTQUFTLFNBQUMsYUFBYTt1QkFHdkIsS0FBSzswQkFHTCxLQUFLOzBCQUdMLE1BQU07NEJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtDb0RpYWxvZ0NvbXBvbmVudCwgQ29HcmlkQ29tcG9uZW50LCBGb3JtQ29tcG9uZW50fSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGVcIjtcbmltcG9ydCB7QWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvXCI7XG5pbXBvcnQge0dlbmRlclR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9nZW5kZXItdHlwZS5lbnVtXCI7XG5pbXBvcnQge01hcmtldGluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9tYXJrZXRpbmcuYm9cIjtcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9hZGRyZXNzLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1tZXRob2QuYm9cIjtcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktb3B0aW9uLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtUZXh0VmFsdWVDb250YWluZXJ9IGZyb20gXCIuLi8uLi8uLi9tb2RlbC90ZXh0LXZhbHVlLWNvbnRhaW5lclwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ib1wiO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdFwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxjby1mb3JtICNkZWxpdmVyeUZvcm0gKHZhbGlkU3VibWl0KT1cInZhbGlkU3VibWl0LmVtaXQoKVwiIChpbnZhbGlkU3VibWl0KT1cImludmFsaWRTdWJtaXQuZW1pdCgpXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ0RFTElWRVJZJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oMlwiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9BRERSRVNTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWgzXCJcbiAgICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3MgW2FkZHJlc3NdPVwiZGVsaXZlcnlBZGRyZXNzXCI+PC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1hZGRyZXNzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b24tY2hhbmdlLWFkZHJlc3NcIj5cbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0RFTElWRVJZX0FERFJFU1NfQ0hBTkdFJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImNoYW5nZUFkZHJlc3MoZGVsaXZlcnlBZGRyZXNzVHlwZSlcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCInSU5WT0lDRV9BRERSRVNTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWgzXCJcbiAgICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3MgW2FkZHJlc3NdPVwiYmlsbGluZ0FkZHJlc3NcIj48L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3M+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJ1dHRvbi1jaGFuZ2UtYWRkcmVzc1wiPlxuICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInSU5WT0lDRV9BRERSRVNTX0NIQU5HRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJjaGFuZ2VBZGRyZXNzKGJpbGxpbmdBZGRyZXNzVHlwZSlcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9NT01FTlQnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgPGNvLWlucHV0LWRhdGUgW3BsYWNlaG9sZGVyXT1cIidERUxJVkVSWV9EQVRFJyB8IGxvY2FsaXplIFwiIFsobW9kZWwpXT1cImRlbGl2ZXJ5RGF0ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW2xhYmVsXT1cIidQQVJUX0RFTElWRVJJRVMnIHwgbG9jYWxpemVcIiBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5hbGxvd1BhcnRpYWxEZWxpdmVyeVwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgIDxjby1pbnB1dC1kYXRlIFtwbGFjZWhvbGRlcl09XCInUFJFRkVSUkVEX0RBVEUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwicHJlZmVycmVkRGF0ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcmVmZXJyZWREYXRlT3B0aW9uIG9mIHByZWZlcnJlZERhdGVPcHRpb25zXCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uIFtuYW1lXT1cIidwcmVmZXJlZERlbGl2ZXJ5RGF0ZTInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInByZWZlcnJlZERhdGVPcHRpb24udGV4dCB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByZWZlcnJlZERhdGVPcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ0cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSBwcmVmZXJyZWREYXRlT3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZVByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIocHJlZmVycmVkRGF0ZU9wdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgPjwvY28taW5wdXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgIDxjby1pbnB1dC1jb21iby1ib3ggWyhtb2RlbCldPVwidHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwiZGVsaXZlcnlNZXRob2RzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImRlbGl2ZXJ5TWV0aG9kRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX01FVEhPRDInIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwib25EZWxpdmVyeU1ldGhvZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvLWlucHV0LWNvbWJvLWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9PUFRJT05TJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICA8Y28tbXVsdGktc2VsZWN0LWxpc3RcbiAgICAgICAgICAgIFtwbGFjZUhvbGRlcl09XCInREVMSVZFUllfT1BUSU9OUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICBbY29sbGVjdGlvbl09XCJkZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgW2ZpZWxkc109XCJkZWxpdmVyeU9wdGlvbkZpZWxkc1wiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICA+PC9jby1tdWx0aS1zZWxlY3QtbGlzdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ1JFTUFSS1MnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInRyYW5zYWN0aW9uLnJlbWFya1wiIFtwbGFjZWhvbGRlcl09XCInUkVNQVJLUycgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW2xhYmVsXT1cIidERUxJVkVSWV9EQVRFX0ZJTkFMJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwiZGVsaXZlcnlEYXRlRmluYWxcIj48L2NvLWlucHV0LWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtZGF0ZSBbcGxhY2Vob2xkZXJdPVwiJ0FTU0VNQkxZX0RBVEUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwiYXNzZW1ibHlEYXRlXCI+PC9jby1pbnB1dC1kYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ1RPVEFMX0FTU0VNQkxZX1RJTUUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwidG90YWxBc3NlbWJseVRpbWVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbbGFiZWxdPVwiJ0RST1BTSElQTUVOVCcgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cImRyb3BzaGlwbWVudFwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9DT1NUUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtaDNcIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgIDxkaXY+e3sgZGVsaXZlcnlDb3N0cyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidBU1NFTUJMWV9DT1NUUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtaDNcIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgIDxkaXY+e3sgYXNzZW1ibHlDb3N0cyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidNQVJLRVRJTkcnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgPGNvLWlucHV0LWNvbWJvLWJveCBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5tYXJrZXRpbmdDb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwibWFya2V0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwibWFya2V0aW5nRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInTUFSS0VUSU5HJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvbk1hcmtldGluZ0NvZGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvY28taW5wdXQtY29tYm8tYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwidHJhbnNhY3Rpb24ucmVsYXRpb25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ1JFRkVSRU5DRV9SRUxBVElPTicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5vd25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ09XTl9SRUZFUkVOQ0UnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2NvLWZvcm0+XG5cbiAgICA8Y28tZGlhbG9nIFt2aXNpYmxlXT1cImFkZExvY2F0aW9uUG9wdXBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPnt7ICdORVdfTE9DQVRJT04nIHwgbG9jYWxpemUgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGNvLWZvcm0gI2xvY2F0aW9uRm9ybSAodmFsaWRTdWJtaXQpPVwic2F2ZUxvY2F0aW9uKClcIj5cbiAgICAgICAgICA8Y2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tYWRkcmVzc1xuICAgICAgICAgICAgbGFiZWw9XCJBRERSRVNTXCIgW2FkZHJlc3NdPVwibmV3QWRkcmVzc1wiXG4gICAgICAgICAgPjwvY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tYWRkcmVzcz5cbiAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJhZGRMb2NhdGlvblBvcHVwID0gZmFsc2U7XCI+PC9jby1idXR0b24+XG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInU0FWRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJzYXZlTmV3TG9jYXRpb24oKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2NvLWZvcm0+XG4gICAgPC9jby1kaWFsb2c+XG5cbiAgICA8Y28tZGlhbG9nICNjaGFuZ2VMb2NhdGlvbkRpYWxvZ1xuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwiY2hhbmdlTG9jYXRpb25Qb3B1cFwiXG4gICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJvbkNoYW5nZUxvY2F0aW9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAob3ZlcmxheUNsaWNrKT1cIm9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyAnQUREUkVTUycgfCBsb2NhbGl6ZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPGNvLWZvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGNvLWdyaWQgI2FkZHJlc3NHcmlkXG4gICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJhZGRyZXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICBbcGFnaW5nRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFttYXhOdW1iZXJPZlJvd3NdPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgKHJvd3NTZWxlY3RlZCk9XCJoYW5kbGVBZGRyZXNzU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jby1ncmlkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XG4gICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0FERFJFU1NfQUREJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uQWRkTG9jYXRpb25Pa0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpXCI+PC9jby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jby1mb3JtPlxuICAgIDwvY28tZGlhbG9nPlxuICBgLFxuICBzdHlsZVVybHM6IFtcbiAgICBcIi4vLi4vY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnNjc3NcIixcbiAgICBcIi4vY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuc2Nzc1wiXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyeUFkZHJlc3NUeXBlOiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcztcbiAgcHVibGljIHJlYWRvbmx5IGJpbGxpbmdBZGRyZXNzVHlwZTogQWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzcztcblxuICBAVmlld0NoaWxkKFwiZGVsaXZlcnlGb3JtXCIsIHtyZWFkOiBGb3JtQ29tcG9uZW50fSlcbiAgcHVibGljIGRlbGl2ZXJ5Rm9ybTogRm9ybUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwibG9jYXRpb25Gb3JtXCIsIHtyZWFkOiBGb3JtQ29tcG9uZW50fSlcbiAgcHVibGljIGxvY2F0aW9uRm9ybTogRm9ybUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiY2hhbmdlTG9jYXRpb25EaWFsb2dcIilcbiAgcHVibGljIGNoYW5nZUxvY2F0aW9uRGlhbG9nOiBDb0RpYWxvZ0NvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiYWRkcmVzc0dyaWRcIilcbiAgcHVibGljIGFkZHJlc3NHcmlkOiBDb0dyaWRDb21wb25lbnQ8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mbztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpbnZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIGRlbGl2ZXJ5T3B0aW9uTGlzdDogRGVsaXZlcnlPcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25zOiBEZWxpdmVyeU9wdGlvbltdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbkZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RzOiBEZWxpdmVyeU1ldGhvZFtdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU1ldGhvZEZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgYWRkTG9jYXRpb25Qb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY2hhbmdlTG9jYXRpb25Qb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbmV3QWRkcmVzczogQWRkcmVzcztcbiAgcHVibGljIHByZWZlcnJlZERhdGVPcHRpb25zOiBUZXh0VmFsdWVDb250YWluZXJbXSA9IFtcbiAgICAgIHt0ZXh0OiBcIk5PVF9BRlRFUlwiLCB2YWx1ZTogXCI+XCIgfSxcbiAgICAgIHt0ZXh0OiBcIk5PVF9CRUZPUkVcIiwgdmFsdWU6IFwiPFwiIH0sXG4gICAgICB7dGV4dDogXCJPTl9EQVRFXCIsIHZhbHVlOiBcIj1cIiB9LFxuICAgIF07XG4gIHB1YmxpYyBwcmVmZXJyZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIGdlbmRlcjogR2VuZGVyVHlwZTtcbiAgcHVibGljIG1hcmtldGluZzogTWFya2V0aW5nW10gPSBbXTtcbiAgcHVibGljIG1hcmtldGluZ0ZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgbWFya2V0aW5nQ29kZTogc3RyaW5nO1xuICBwdWJsaWMgYXNzZW1ibHlDb3N0czogbnVtYmVyO1xuICBwdWJsaWMgZGVsaXZlcnlDb3N0czogbnVtYmVyO1xuXG4gIHB1YmxpYyBhZGRyZXNzZXM6IEFkZHJlc3NbXSA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRBZGRyZXNzOiBBZGRyZXNzO1xuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcblxuICAvLyBUT0RPOiBEZXplIHZlbGRlbiBub2cgb3BuZW1lbiBpbiBUcmFuc2FjdGlvbiEhXG4gIHB1YmxpYyBkZWxpdmVyeURhdGVGaW5hbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXNzZW1ibHlEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIHRvdGFsQXNzZW1ibHlUaW1lOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgZHJvcHNoaXBtZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYWRkcmVzc1R5cGU6IEFkZHJlc3NUeXBlO1xuXG4gIHB1YmxpYyBnZXQgYmlsbGluZ0FkZHJlc3MoKTogQWRkcmVzcyB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpb24gJiZcbiAgICAgICAgdGhpcy5yZWxhdGlvbi5maXJzdEJpbGxpbmdBZGRyZXNzICYmXG4gICAgICAgIHRoaXMucmVsYXRpb24uZmlyc3RCaWxsaW5nQWRkcmVzcy5pc05vdEVtcHR5QWRkcmVzcygpKSB7XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPSB0aGlzLnJlbGF0aW9uLmZpcnN0QmlsbGluZ0FkZHJlc3M7XG4gICAgICAgIHRoaXMuX3NldENvdW50cnlOYW1lVG9BZGRyZXNzKHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MpLnRoZW4oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlbGl2ZXJ5QWRkcmVzcygpOiBBZGRyZXNzIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpb24gJiZcbiAgICAgICAgdGhpcy5yZWxhdGlvbi5maXJzdERlbGl2ZXJ5QWRkcmVzcyAmJlxuICAgICAgICB0aGlzLnJlbGF0aW9uLmZpcnN0RGVsaXZlcnlBZGRyZXNzLmlzTm90RW1wdHlBZGRyZXNzKCkpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPSB0aGlzLnJlbGF0aW9uLmZpcnN0RGVsaXZlcnlBZGRyZXNzO1xuICAgICAgICB0aGlzLl9zZXRDb3VudHJ5TmFtZVRvQWRkcmVzcyh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uQWRkcmVzcykudGhlbigpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlbGl2ZXJ5RGF0ZSgpOiBEYXRlIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRlbGl2ZXJ5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uZGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByZWZlcnJlZERlbGl2ZXJ5RGF0ZSgpOiBEYXRlIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHByZWZlcnJlZERlbGl2ZXJ5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmV3UmVsYXRpb25BZGRyZXNzKCk6IEFkZHJlc3Mge1xuICAgIGlmICh0aGlzLnJlbGF0aW9uKSB7XG4gICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcbiAgICAgIGFkZHJlc3MuYWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3M7XG4gICAgICBhZGRyZXNzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBhZGRyZXNzLnNlcXVlbmNlID0gdGhpcy5yZWxhdGlvbi5nZXROZXh0QWRkcmVzc1NlcXVlbmNlKCk7XG4gICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIGFkZHJlc3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPT09IHVuZGVmaW5lZCAmJiAhdGhpcy5kZWxpdmVyeUFkZHJlc3MpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPSB0aGlzLmRlbGl2ZXJ5QWRkcmVzcztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID09PSB1bmRlZmluZWQgJiYgIXRoaXMuYmlsbGluZ0FkZHJlc3MpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID0gdGhpcy5iaWxsaW5nQWRkcmVzcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZGVsaXZlcnlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlRGVsaXZlcnlDb3N0cygpO1xuICAgIHRoaXMuYXNzZW1ibHlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlQXNzZW1ibHlDb3N0cygpO1xuICAgIHRoaXMuZGVsaXZlcnlNZXRob2RzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5TWV0aG9kcygpO1xuICAgIHRoaXMuZGVsaXZlcnlPcHRpb25MaXN0ID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5T3B0aW9ucygpO1xuICAgIHRoaXMubWFya2V0aW5nID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldE1hcmtldGluZ0NvZGVzKCk7XG4gICAgYXdhaXQgdGhpcy5vbkRlbGl2ZXJ5TWV0aG9kQ2hhbmdlKHRoaXMudHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2QpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxuICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5jb2x1bW5zLnB1c2goXG4gICAgICB7ZmllbGQ6IFwic3RyZWV0TmFtZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJTVFJFRVRcIil9LFxuICAgICAge2ZpZWxkOiBcImhvdXNlTm9cIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiSE9VU0VfTk9cIil9LFxuICAgICAge2ZpZWxkOiBcImhvdXNlTm9BZGRpdGlvblwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJIT1VTRV9OT19BRERJVElPTlwiKX0sXG4gICAgICB7ZmllbGQ6IFwicG9zdGFsQ29kZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJQT1NUQUxfQ09ERVwiKSwgYWxsb3dGaWx0ZXJpbmc6IGZhbHNlfSxcbiAgICAgIHtmaWVsZDogXCJjaXR5XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkNJVFlcIil9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5Rm9ybS5zdWJtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvbkRlbGl2ZXJ5TWV0aG9kQ2hhbmdlKGRlbGl2ZXJ5TWV0aG9kSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRlbGl2ZXJ5TWV0aG9kOiBEZWxpdmVyeU1ldGhvZFtdID0gdGhpcy5zZWxlY3REZWxpdmVyeU1ldGhvZEJ5SWQoZGVsaXZlcnlNZXRob2RJZCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU1ldGhvZCA9IGRlbGl2ZXJ5TWV0aG9kSWQ7XG4gICAgaWYgKGRlbGl2ZXJ5TWV0aG9kLmxlbmd0aCkge1xuICAgICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMgPSB0aGlzLnNlbGVjdERlbGl2ZXJ5T3B0aW9uc0J5RGVsaXZlcnlNZXRob2QoZGVsaXZlcnlNZXRob2RbMF0pO1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnMgPSBbXTtcbiAgICAgIGlmICh0aGlzLmRlbGl2ZXJ5T3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnMucHVzaCh0aGlzLmRlbGl2ZXJ5T3B0aW9uc1swXS5jb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlPcHRpb25zQnlEZWxpdmVyeU1ldGhvZChkZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2QpOiBEZWxpdmVyeU9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5kZWxpdmVyeU9wdGlvbkxpc3QuZmlsdGVyKGRlbGl2ZXJ5T3B0aW9uID0+IGRlbGl2ZXJ5TWV0aG9kLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uLmNvZGUpICE9PSAtMSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlNZXRob2RCeUlkKGRlbGl2ZXJ5TWV0aG9kSWQ6IHN0cmluZyk6IERlbGl2ZXJ5TWV0aG9kW10ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5TWV0aG9kcy5maWx0ZXIoZGVsaXZlcnkgPT4gZGVsaXZlcnkuY29kZSA9PT0gZGVsaXZlcnlNZXRob2RJZCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlQWRkcmVzcyhhZGRyZXNzVHlwZTogQWRkcmVzc1R5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl9hZGRyZXNzVHlwZSA9IGFkZHJlc3NUeXBlO1xuICAgIHRoaXMuYWRkcmVzc2VzID0gdGhpcy5yZWxhdGlvbi5hZGRyZXNzZXM7XG4gICAgdGhpcy5jaGFuZ2VMb2NhdGlvblBvcHVwID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlTmV3TG9jYXRpb24oKTogdm9pZCB7XG4gICAgIHRoaXMubG9jYXRpb25Gb3JtLnN1Ym1pdCgpO1xuICB9XG5cbiAgcHVibGljIHNhdmVMb2NhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmFkZExvY2F0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2VMb2NhdGlvblBvcHVwID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgYWRkTG9jYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBZGRyZXNzKHRoaXMubmV3QWRkcmVzcykudGhlbigpO1xuICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLnB1c2godGhpcy5uZXdBZGRyZXNzKTtcbiAgICB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKCkudGhlbigpO1xuICAgIHRoaXMuYWRkTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9hZGRyZXNzVHlwZSA9PT0gQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLl9zZXRDb3VudHJ5TmFtZVRvQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0RlbGl2ZXJ5T3B0aW9uQ2hlY2tlZChkZWxpdmVyeU9wdGlvbkl0ZW06IERlbGl2ZXJ5T3B0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnRyYW5zYWN0aW9uLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uSXRlbS5jb2RlLCAwKSA9PT0gMCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlUHJlZmVycmVkRGVsaXZlcnlEYXRlMihwcmVmZXJyZWREYXRlT3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSBwcmVmZXJyZWREYXRlT3B0aW9uO1xuICB9XG5cbiAgcHVibGljIG9uTWFya2V0aW5nQ29kZUNoYW5nZShtYXJrZXRpbmdDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLm1hcmtldGluZ0NvZGUgPSBtYXJrZXRpbmdDb2RlO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUxvY2F0aW9uUG9wdXAgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZExvY2F0aW9uT2tDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLl9hZGRBZGRyZXNzKHRoaXMuX2FkZHJlc3NUeXBlKTtcbiAgICB0aGlzLmFkZExvY2F0aW9uUG9wdXAgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUFkZHJlc3NTZWxlY3RlZChyb3dzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9IChyb3dzLmZpbmQoeCA9PiB4ICE9PSB1bmRlZmluZWQpKTtcbiAgICB0aGlzLnVwZGF0ZUFkZHJlc3ModGhpcy5zZWxlY3RlZEFkZHJlc3MpO1xuICAgIHRoaXMuY2hhbmdlTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVEZWxpdmVyeUNvc3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUFzc2VtYmx5Q29zdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEFkZHJlc3MoYWRkcmVzc1R5cGU6IEFkZHJlc3NUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5uZXdBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcbiAgICB0aGlzLm5ld0FkZHJlc3MuYWRkcmVzc1R5cGUgPSBhZGRyZXNzVHlwZTtcbiAgICB0aGlzLm5ld0FkZHJlc3Muc3RhcnREYXRlID0gbmV3IERhdGUoKTtcbiAgICB0aGlzLm5ld0FkZHJlc3Muc2VxdWVuY2UgPSB0aGlzLnJlbGF0aW9uLmdldE5leHRBZGRyZXNzU2VxdWVuY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NldENvdW50cnlOYW1lVG9BZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYWRkcmVzcy5jb3VudHJ5SWQgJiYgIWFkZHJlc3MuY291bnRyeU5hbWUpIHtcbiAgICAgIGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Q291bnRyeShhZGRyZXNzLmNvdW50cnlJZCk7XG4gICAgICBhZGRyZXNzLmNvdW50cnlOYW1lID0gY291bnRyeS5kZXNjcmlwdGlvbjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFxQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFHeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBR2xGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBR3hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBNE10RSxNQUFNLE9BQU8scUNBQXFDO0lBNEloRCxZQUNZLEdBQXNCLEVBQ3RCLGtCQUFxQyxFQUN0QyxPQUEyQjtRQUYxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBOUl0Qix3QkFBbUIsR0FBZ0IsV0FBVyxDQUFDLGVBQWUsQ0FBQztRQUMvRCx1QkFBa0IsR0FBZ0IsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQXFCdEUsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUczRCxrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTdELHVCQUFrQixHQUFxQixFQUFFLENBQUM7UUFDMUMs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LEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVhLHdCQUF3QixDQUFDLE9BQWdCOztZQUNyRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUM3QyxNQUFNLE9BQU8sR0FBWSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDMUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQzNDO1FBQ0gsQ0FBQztLQUFBOzs7WUF6Y0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlNVDs7YUFLRjs7O1lBdk5zQixpQkFBaUI7WUFZaEMsaUJBQWlCO1lBSGpCLGtCQUFrQjs7OzJCQW1OdkIsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUM7MkJBRy9DLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFDO21DQUcvQyxTQUFTLFNBQUMsc0JBQXNCOzBCQUdoQyxTQUFTLFNBQUMsYUFBYTt1QkFHdkIsS0FBSzswQkFHTCxLQUFLOzBCQUdMLE1BQU07NEJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtDb0RpYWxvZ0NvbXBvbmVudCwgQ29HcmlkQ29tcG9uZW50LCBGb3JtQ29tcG9uZW50fSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGVcIjtcbmltcG9ydCB7QWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvXCI7XG5pbXBvcnQge0dlbmRlclR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9nZW5kZXItdHlwZS5lbnVtXCI7XG5pbXBvcnQge01hcmtldGluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9tYXJrZXRpbmcuYm9cIjtcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9hZGRyZXNzLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1tZXRob2QuYm9cIjtcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktb3B0aW9uLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtUZXh0VmFsdWVDb250YWluZXJ9IGZyb20gXCIuLi8uLi8uLi9tb2RlbC90ZXh0LXZhbHVlLWNvbnRhaW5lclwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ib1wiO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdFwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxjby1mb3JtICNkZWxpdmVyeUZvcm0gKHZhbGlkU3VibWl0KT1cInZhbGlkU3VibWl0LmVtaXQoKVwiIChpbnZhbGlkU3VibWl0KT1cImludmFsaWRTdWJtaXQuZW1pdCgpXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ0RFTElWRVJZJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oMlwiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9BRERSRVNTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWgzXCJcbiAgICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3MgW2FkZHJlc3NdPVwiZGVsaXZlcnlBZGRyZXNzXCI+PC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1hZGRyZXNzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b24tY2hhbmdlLWFkZHJlc3NcIj5cbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0RFTElWRVJZX0FERFJFU1NfQ0hBTkdFJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImNoYW5nZUFkZHJlc3MoZGVsaXZlcnlBZGRyZXNzVHlwZSlcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCInSU5WT0lDRV9BRERSRVNTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWgzXCJcbiAgICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3MgW2FkZHJlc3NdPVwiYmlsbGluZ0FkZHJlc3NcIj48L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3M+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJ1dHRvbi1jaGFuZ2UtYWRkcmVzc1wiPlxuICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInSU5WT0lDRV9BRERSRVNTX0NIQU5HRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJjaGFuZ2VBZGRyZXNzKGJpbGxpbmdBZGRyZXNzVHlwZSlcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9NT01FTlQnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgPGNvLWlucHV0LWRhdGUgW3BsYWNlaG9sZGVyXT1cIidERUxJVkVSWV9EQVRFJyB8IGxvY2FsaXplIFwiIFsobW9kZWwpXT1cImRlbGl2ZXJ5RGF0ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW2xhYmVsXT1cIidQQVJUX0RFTElWRVJJRVMnIHwgbG9jYWxpemVcIiBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5hbGxvd1BhcnRpYWxEZWxpdmVyeVwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgIDxjby1pbnB1dC1kYXRlIFtwbGFjZWhvbGRlcl09XCInUFJFRkVSUkVEX0RBVEUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwicHJlZmVycmVkRGF0ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcmVmZXJyZWREYXRlT3B0aW9uIG9mIHByZWZlcnJlZERhdGVPcHRpb25zXCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uIFtuYW1lXT1cIidwcmVmZXJlZERlbGl2ZXJ5RGF0ZTInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInByZWZlcnJlZERhdGVPcHRpb24udGV4dCB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByZWZlcnJlZERhdGVPcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ0cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSBwcmVmZXJyZWREYXRlT3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZVByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIocHJlZmVycmVkRGF0ZU9wdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgPjwvY28taW5wdXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgIDxjby1pbnB1dC1jb21iby1ib3ggWyhtb2RlbCldPVwidHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwiZGVsaXZlcnlNZXRob2RzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImRlbGl2ZXJ5TWV0aG9kRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX01FVEhPRDInIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwib25EZWxpdmVyeU1ldGhvZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvLWlucHV0LWNvbWJvLWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9PUFRJT05TJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICA8Y28tbXVsdGktc2VsZWN0LWxpc3RcbiAgICAgICAgICAgIFtwbGFjZUhvbGRlcl09XCInREVMSVZFUllfT1BUSU9OUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICBbY29sbGVjdGlvbl09XCJkZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgW2ZpZWxkc109XCJkZWxpdmVyeU9wdGlvbkZpZWxkc1wiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICA+PC9jby1tdWx0aS1zZWxlY3QtbGlzdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ1JFTUFSS1MnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInRyYW5zYWN0aW9uLnJlbWFya1wiIFtwbGFjZWhvbGRlcl09XCInUkVNQVJLUycgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW2xhYmVsXT1cIidERUxJVkVSWV9EQVRFX0ZJTkFMJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwiZGVsaXZlcnlEYXRlRmluYWxcIj48L2NvLWlucHV0LWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtZGF0ZSBbcGxhY2Vob2xkZXJdPVwiJ0FTU0VNQkxZX0RBVEUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwiYXNzZW1ibHlEYXRlXCI+PC9jby1pbnB1dC1kYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ1RPVEFMX0FTU0VNQkxZX1RJTUUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwidG90YWxBc3NlbWJseVRpbWVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbbGFiZWxdPVwiJ0RST1BTSElQTUVOVCcgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cImRyb3BzaGlwbWVudFwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9DT1NUUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtaDNcIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgIDxkaXY+e3sgZGVsaXZlcnlDb3N0cyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidBU1NFTUJMWV9DT1NUUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtaDNcIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgIDxkaXY+e3sgYXNzZW1ibHlDb3N0cyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidNQVJLRVRJTkcnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgPGNvLWlucHV0LWNvbWJvLWJveCBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5tYXJrZXRpbmdDb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwibWFya2V0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwibWFya2V0aW5nRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInTUFSS0VUSU5HJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvbk1hcmtldGluZ0NvZGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvY28taW5wdXQtY29tYm8tYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwidHJhbnNhY3Rpb24ucmVsYXRpb25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ1JFRkVSRU5DRV9SRUxBVElPTicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5vd25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ09XTl9SRUZFUkVOQ0UnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2NvLWZvcm0+XG5cbiAgICA8Y28tZGlhbG9nIFt2aXNpYmxlXT1cImFkZExvY2F0aW9uUG9wdXBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPnt7ICdORVdfTE9DQVRJT04nIHwgbG9jYWxpemUgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGNvLWZvcm0gI2xvY2F0aW9uRm9ybSAodmFsaWRTdWJtaXQpPVwic2F2ZUxvY2F0aW9uKClcIj5cbiAgICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tYWRkcmVzc1xuICAgICAgICAgICAgbGFiZWw9XCJBRERSRVNTXCIgW2FkZHJlc3NdPVwibmV3QWRkcmVzc1wiXG4gICAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tYWRkcmVzcz5cbiAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJhZGRMb2NhdGlvblBvcHVwID0gZmFsc2U7XCI+PC9jby1idXR0b24+XG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInU0FWRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJzYXZlTmV3TG9jYXRpb24oKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2NvLWZvcm0+XG4gICAgPC9jby1kaWFsb2c+XG5cbiAgICA8Y28tZGlhbG9nICNjaGFuZ2VMb2NhdGlvbkRpYWxvZ1xuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwiY2hhbmdlTG9jYXRpb25Qb3B1cFwiXG4gICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJvbkNoYW5nZUxvY2F0aW9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAob3ZlcmxheUNsaWNrKT1cIm9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyAnQUREUkVTUycgfCBsb2NhbGl6ZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPGNvLWZvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGNvLWdyaWQgI2FkZHJlc3NHcmlkXG4gICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJhZGRyZXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICBbcGFnaW5nRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFttYXhOdW1iZXJPZlJvd3NdPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgKHJvd3NTZWxlY3RlZCk9XCJoYW5kbGVBZGRyZXNzU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jby1ncmlkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XG4gICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0FERFJFU1NfQUREJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uQWRkTG9jYXRpb25Pa0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpXCI+PC9jby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jby1mb3JtPlxuICAgIDwvY28tZGlhbG9nPlxuICBgLFxuICBzdHlsZVVybHM6IFtcbiAgICBcIi4vLi4vY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnNjc3NcIixcbiAgICBcIi4vY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuc2Nzc1wiXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyeUFkZHJlc3NUeXBlOiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcztcbiAgcHVibGljIHJlYWRvbmx5IGJpbGxpbmdBZGRyZXNzVHlwZTogQWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzcztcblxuICBAVmlld0NoaWxkKFwiZGVsaXZlcnlGb3JtXCIsIHtyZWFkOiBGb3JtQ29tcG9uZW50fSlcbiAgcHVibGljIGRlbGl2ZXJ5Rm9ybTogRm9ybUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwibG9jYXRpb25Gb3JtXCIsIHtyZWFkOiBGb3JtQ29tcG9uZW50fSlcbiAgcHVibGljIGxvY2F0aW9uRm9ybTogRm9ybUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiY2hhbmdlTG9jYXRpb25EaWFsb2dcIilcbiAgcHVibGljIGNoYW5nZUxvY2F0aW9uRGlhbG9nOiBDb0RpYWxvZ0NvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiYWRkcmVzc0dyaWRcIilcbiAgcHVibGljIGFkZHJlc3NHcmlkOiBDb0dyaWRDb21wb25lbnQ8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mbztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpbnZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIGRlbGl2ZXJ5T3B0aW9uTGlzdDogRGVsaXZlcnlPcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25zOiBEZWxpdmVyeU9wdGlvbltdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbkZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RzOiBEZWxpdmVyeU1ldGhvZFtdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU1ldGhvZEZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgYWRkTG9jYXRpb25Qb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY2hhbmdlTG9jYXRpb25Qb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbmV3QWRkcmVzczogQWRkcmVzcztcbiAgcHVibGljIHByZWZlcnJlZERhdGVPcHRpb25zOiBUZXh0VmFsdWVDb250YWluZXJbXSA9IFtcbiAgICAgIHt0ZXh0OiBcIk5PVF9BRlRFUlwiLCB2YWx1ZTogXCI+XCIgfSxcbiAgICAgIHt0ZXh0OiBcIk5PVF9CRUZPUkVcIiwgdmFsdWU6IFwiPFwiIH0sXG4gICAgICB7dGV4dDogXCJPTl9EQVRFXCIsIHZhbHVlOiBcIj1cIiB9LFxuICAgIF07XG4gIHB1YmxpYyBwcmVmZXJyZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIGdlbmRlcjogR2VuZGVyVHlwZTtcbiAgcHVibGljIG1hcmtldGluZzogTWFya2V0aW5nW10gPSBbXTtcbiAgcHVibGljIG1hcmtldGluZ0ZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgbWFya2V0aW5nQ29kZTogc3RyaW5nO1xuICBwdWJsaWMgYXNzZW1ibHlDb3N0czogbnVtYmVyO1xuICBwdWJsaWMgZGVsaXZlcnlDb3N0czogbnVtYmVyO1xuXG4gIHB1YmxpYyBhZGRyZXNzZXM6IEFkZHJlc3NbXSA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRBZGRyZXNzOiBBZGRyZXNzO1xuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcblxuICAvLyBUT0RPOiBEZXplIHZlbGRlbiBub2cgb3BuZW1lbiBpbiBUcmFuc2FjdGlvbiEhXG4gIHB1YmxpYyBkZWxpdmVyeURhdGVGaW5hbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXNzZW1ibHlEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIHRvdGFsQXNzZW1ibHlUaW1lOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgZHJvcHNoaXBtZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYWRkcmVzc1R5cGU6IEFkZHJlc3NUeXBlO1xuXG4gIHB1YmxpYyBnZXQgYmlsbGluZ0FkZHJlc3MoKTogQWRkcmVzcyB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpb24gJiZcbiAgICAgICAgdGhpcy5yZWxhdGlvbi5maXJzdEJpbGxpbmdBZGRyZXNzICYmXG4gICAgICAgIHRoaXMucmVsYXRpb24uZmlyc3RCaWxsaW5nQWRkcmVzcy5pc05vdEVtcHR5QWRkcmVzcygpKSB7XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPSB0aGlzLnJlbGF0aW9uLmZpcnN0QmlsbGluZ0FkZHJlc3M7XG4gICAgICAgIHRoaXMuX3NldENvdW50cnlOYW1lVG9BZGRyZXNzKHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MpLnRoZW4oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlbGl2ZXJ5QWRkcmVzcygpOiBBZGRyZXNzIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpb24gJiZcbiAgICAgICAgdGhpcy5yZWxhdGlvbi5maXJzdERlbGl2ZXJ5QWRkcmVzcyAmJlxuICAgICAgICB0aGlzLnJlbGF0aW9uLmZpcnN0RGVsaXZlcnlBZGRyZXNzLmlzTm90RW1wdHlBZGRyZXNzKCkpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPSB0aGlzLnJlbGF0aW9uLmZpcnN0RGVsaXZlcnlBZGRyZXNzO1xuICAgICAgICB0aGlzLl9zZXRDb3VudHJ5TmFtZVRvQWRkcmVzcyh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uQWRkcmVzcykudGhlbigpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlbGl2ZXJ5RGF0ZSgpOiBEYXRlIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRlbGl2ZXJ5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uZGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByZWZlcnJlZERlbGl2ZXJ5RGF0ZSgpOiBEYXRlIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHByZWZlcnJlZERlbGl2ZXJ5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmV3UmVsYXRpb25BZGRyZXNzKCk6IEFkZHJlc3Mge1xuICAgIGlmICh0aGlzLnJlbGF0aW9uKSB7XG4gICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcbiAgICAgIGFkZHJlc3MuYWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3M7XG4gICAgICBhZGRyZXNzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBhZGRyZXNzLnNlcXVlbmNlID0gdGhpcy5yZWxhdGlvbi5nZXROZXh0QWRkcmVzc1NlcXVlbmNlKCk7XG4gICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIGFkZHJlc3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPT09IHVuZGVmaW5lZCAmJiAhdGhpcy5kZWxpdmVyeUFkZHJlc3MpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPSB0aGlzLmRlbGl2ZXJ5QWRkcmVzcztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID09PSB1bmRlZmluZWQgJiYgIXRoaXMuYmlsbGluZ0FkZHJlc3MpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID0gdGhpcy5iaWxsaW5nQWRkcmVzcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZGVsaXZlcnlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlRGVsaXZlcnlDb3N0cygpO1xuICAgIHRoaXMuYXNzZW1ibHlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlQXNzZW1ibHlDb3N0cygpO1xuICAgIHRoaXMuZGVsaXZlcnlNZXRob2RzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5TWV0aG9kcygpO1xuICAgIHRoaXMuZGVsaXZlcnlPcHRpb25MaXN0ID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5T3B0aW9ucygpO1xuICAgIHRoaXMubWFya2V0aW5nID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldE1hcmtldGluZ0NvZGVzKCk7XG4gICAgYXdhaXQgdGhpcy5vbkRlbGl2ZXJ5TWV0aG9kQ2hhbmdlKHRoaXMudHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2QpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxuICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5jb2x1bW5zLnB1c2goXG4gICAgICB7ZmllbGQ6IFwic3RyZWV0TmFtZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJTVFJFRVRcIil9LFxuICAgICAge2ZpZWxkOiBcImhvdXNlTm9cIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiSE9VU0VfTk9cIil9LFxuICAgICAge2ZpZWxkOiBcImhvdXNlTm9BZGRpdGlvblwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJIT1VTRV9OT19BRERJVElPTlwiKX0sXG4gICAgICB7ZmllbGQ6IFwicG9zdGFsQ29kZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJQT1NUQUxfQ09ERVwiKSwgYWxsb3dGaWx0ZXJpbmc6IGZhbHNlfSxcbiAgICAgIHtmaWVsZDogXCJjaXR5XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkNJVFlcIil9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5Rm9ybS5zdWJtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvbkRlbGl2ZXJ5TWV0aG9kQ2hhbmdlKGRlbGl2ZXJ5TWV0aG9kSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRlbGl2ZXJ5TWV0aG9kOiBEZWxpdmVyeU1ldGhvZFtdID0gdGhpcy5zZWxlY3REZWxpdmVyeU1ldGhvZEJ5SWQoZGVsaXZlcnlNZXRob2RJZCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU1ldGhvZCA9IGRlbGl2ZXJ5TWV0aG9kSWQ7XG4gICAgaWYgKGRlbGl2ZXJ5TWV0aG9kLmxlbmd0aCkge1xuICAgICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMgPSB0aGlzLnNlbGVjdERlbGl2ZXJ5T3B0aW9uc0J5RGVsaXZlcnlNZXRob2QoZGVsaXZlcnlNZXRob2RbMF0pO1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnMgPSBbXTtcbiAgICAgIGlmICh0aGlzLmRlbGl2ZXJ5T3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnMucHVzaCh0aGlzLmRlbGl2ZXJ5T3B0aW9uc1swXS5jb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlPcHRpb25zQnlEZWxpdmVyeU1ldGhvZChkZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2QpOiBEZWxpdmVyeU9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5kZWxpdmVyeU9wdGlvbkxpc3QuZmlsdGVyKGRlbGl2ZXJ5T3B0aW9uID0+IGRlbGl2ZXJ5TWV0aG9kLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uLmNvZGUpICE9PSAtMSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlNZXRob2RCeUlkKGRlbGl2ZXJ5TWV0aG9kSWQ6IHN0cmluZyk6IERlbGl2ZXJ5TWV0aG9kW10ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5TWV0aG9kcy5maWx0ZXIoZGVsaXZlcnkgPT4gZGVsaXZlcnkuY29kZSA9PT0gZGVsaXZlcnlNZXRob2RJZCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlQWRkcmVzcyhhZGRyZXNzVHlwZTogQWRkcmVzc1R5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl9hZGRyZXNzVHlwZSA9IGFkZHJlc3NUeXBlO1xuICAgIHRoaXMuYWRkcmVzc2VzID0gdGhpcy5yZWxhdGlvbi5hZGRyZXNzZXM7XG4gICAgdGhpcy5jaGFuZ2VMb2NhdGlvblBvcHVwID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlTmV3TG9jYXRpb24oKTogdm9pZCB7XG4gICAgIHRoaXMubG9jYXRpb25Gb3JtLnN1Ym1pdCgpO1xuICB9XG5cbiAgcHVibGljIHNhdmVMb2NhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmFkZExvY2F0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2VMb2NhdGlvblBvcHVwID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgYWRkTG9jYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBZGRyZXNzKHRoaXMubmV3QWRkcmVzcykudGhlbigpO1xuICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLnB1c2godGhpcy5uZXdBZGRyZXNzKTtcbiAgICB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKCkudGhlbigpO1xuICAgIHRoaXMuYWRkTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9hZGRyZXNzVHlwZSA9PT0gQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLl9zZXRDb3VudHJ5TmFtZVRvQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0RlbGl2ZXJ5T3B0aW9uQ2hlY2tlZChkZWxpdmVyeU9wdGlvbkl0ZW06IERlbGl2ZXJ5T3B0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnRyYW5zYWN0aW9uLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uSXRlbS5jb2RlLCAwKSA9PT0gMCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlUHJlZmVycmVkRGVsaXZlcnlEYXRlMihwcmVmZXJyZWREYXRlT3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSBwcmVmZXJyZWREYXRlT3B0aW9uO1xuICB9XG5cbiAgcHVibGljIG9uTWFya2V0aW5nQ29kZUNoYW5nZShtYXJrZXRpbmdDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLm1hcmtldGluZ0NvZGUgPSBtYXJrZXRpbmdDb2RlO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUxvY2F0aW9uUG9wdXAgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZExvY2F0aW9uT2tDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLl9hZGRBZGRyZXNzKHRoaXMuX2FkZHJlc3NUeXBlKTtcbiAgICB0aGlzLmFkZExvY2F0aW9uUG9wdXAgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUFkZHJlc3NTZWxlY3RlZChyb3dzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9IChyb3dzLmZpbmQoeCA9PiB4ICE9PSB1bmRlZmluZWQpKTtcbiAgICB0aGlzLnVwZGF0ZUFkZHJlc3ModGhpcy5zZWxlY3RlZEFkZHJlc3MpO1xuICAgIHRoaXMuY2hhbmdlTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVEZWxpdmVyeUNvc3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUFzc2VtYmx5Q29zdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEFkZHJlc3MoYWRkcmVzc1R5cGU6IEFkZHJlc3NUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5uZXdBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcbiAgICB0aGlzLm5ld0FkZHJlc3MuYWRkcmVzc1R5cGUgPSBhZGRyZXNzVHlwZTtcbiAgICB0aGlzLm5ld0FkZHJlc3Muc3RhcnREYXRlID0gbmV3IERhdGUoKTtcbiAgICB0aGlzLm5ld0FkZHJlc3Muc2VxdWVuY2UgPSB0aGlzLnJlbGF0aW9uLmdldE5leHRBZGRyZXNzU2VxdWVuY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NldENvdW50cnlOYW1lVG9BZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYWRkcmVzcy5jb3VudHJ5SWQgJiYgIWFkZHJlc3MuY291bnRyeU5hbWUpIHtcbiAgICAgIGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Q291bnRyeShhZGRyZXNzLmNvdW50cnlJZCk7XG4gICAgICBhZGRyZXNzLmNvdW50cnlOYW1lID0gY291bnRyeS5kZXNjcmlwdGlvbjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==