@colijnit/transaction 12.1.33 → 12.1.34

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 (169) hide show
  1. package/bundles/colijnit-transaction.umd.js +1511 -1128
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +234 -223
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +235 -224
  6. package/esm2015/lib/assets/dictionary/text.properties.js +9 -3
  7. package/esm2015/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.js +13 -3
  8. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +3 -3
  9. package/esm2015/lib/component/checkout/checkout.component.js +14 -8
  10. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +14 -3
  11. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.module.js +4 -3
  12. package/esm2015/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.js +2 -2
  13. package/esm2015/lib/component/core/base/components/warehouse/warehouse.component.js +2 -2
  14. package/esm2015/lib/component/core/base/dialog-transaction-header-base.component.js +25 -0
  15. package/esm2015/lib/component/core/base/dialog-transaction-line-base.component.js +1 -1
  16. package/esm2015/lib/component/core/base/transaction-line-base.component.js +43 -9
  17. package/esm2015/lib/component/core/core.module.js +9 -3
  18. package/esm2015/lib/component/core/directive/lazy-render-master.directive.js +43 -0
  19. package/esm2015/lib/component/core/directive/lazy-render.directive.js +30 -0
  20. package/esm2015/lib/component/core/relation/customer-groups.component.js +4 -2
  21. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.js +35 -0
  22. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.js +28 -0
  23. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.js +90 -0
  24. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.js +34 -0
  25. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.js +34 -0
  26. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.js +28 -0
  27. package/esm2015/lib/component/transaction/transaction.component.js +18 -1
  28. package/esm2015/lib/component/transaction/transaction.module.js +6 -3
  29. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.js +34 -23
  30. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.js +3 -2
  31. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +23 -11
  32. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.js +6 -2
  33. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +10 -5
  34. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.module.js +4 -2
  35. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +12 -11
  36. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.js +4 -2
  37. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +5 -3
  38. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +4 -4
  39. package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +6 -4
  40. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.component.js +55 -15
  41. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.module.js +4 -3
  42. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.js +12 -12
  43. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.js +11 -11
  44. package/esm2015/lib/component/transaction-header-fields/transaction-header-marketing.component.js +2 -2
  45. package/esm2015/lib/component/transaction-line/transaction-line.component.js +23 -25
  46. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.js +42 -0
  47. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.js +25 -0
  48. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +10 -35
  49. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.module.js +4 -2
  50. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +3 -3
  51. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +10 -46
  52. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.module.js +4 -2
  53. package/esm2015/lib/component/transaction-line-fields/transaction-line-description.component.js +21 -14
  54. package/esm2015/lib/component/transaction-line-fields/transaction-line-description.module.js +4 -3
  55. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.component.js +3 -3
  56. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.component.js +3 -3
  57. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +14 -13
  58. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.module.js +6 -3
  59. package/esm2015/lib/component/transaction-line-fields/transaction-line-price.component.js +3 -3
  60. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.component.js +2 -2
  61. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.js +3 -3
  62. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.component.js +3 -3
  63. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.component.js +3 -3
  64. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.component.js +5 -6
  65. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +9 -34
  66. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.module.js +6 -2
  67. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +9 -34
  68. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.module.js +4 -2
  69. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +1 -34
  70. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.js +3 -3
  71. package/esm2015/lib/component/transaction-search/transaction-search.component.js +1 -10
  72. package/esm2015/lib/service/dialog.service.js +26 -11
  73. package/esm2015/lib/service/error.service.js +31 -12
  74. package/esm2015/lib/service/pending-reason.service.js +6 -2
  75. package/esm2015/lib/service/transaction-connector-adapter.service.js +106 -89
  76. package/esm2015/lib/service/transaction-connector.service.js +21 -1
  77. package/esm2015/lib/service/transaction-mapping.service.js +1 -1
  78. package/esm2015/lib/service/transaction.service.js +50 -191
  79. package/fesm2015/colijnit-transaction.js +1321 -1001
  80. package/fesm2015/colijnit-transaction.js.map +1 -1
  81. package/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.d.ts +5 -1
  82. package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +6 -0
  83. package/lib/component/confirmation-dialog/style/_layout.scss +9 -0
  84. package/lib/component/core/base/components/characteristic-answer/style/_layout.scss +0 -4
  85. package/lib/component/core/base/components/characteristic-answer/style/_theme.scss +0 -3
  86. package/lib/component/core/base/components/transaction-header-block/style/_material-definition.scss +1 -1
  87. package/lib/component/core/base/components/warehouse/style/_layout.scss +0 -4
  88. package/lib/component/core/base/components/warehouse/style/_theme.scss +0 -3
  89. package/lib/component/core/base/dialog-transaction-header-base.component.d.ts +10 -0
  90. package/lib/component/core/base/dialog-transaction-line-base.component.d.ts +1 -1
  91. package/lib/component/core/base/transaction-line-base.component.d.ts +18 -7
  92. package/lib/component/core/directive/lazy-render-master.directive.d.ts +10 -0
  93. package/lib/component/core/directive/lazy-render.directive.d.ts +10 -0
  94. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.d.ts +4 -0
  95. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.d.ts +2 -0
  96. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_layout.scss +14 -0
  97. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_material-definition.scss +0 -0
  98. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_theme.scss +4 -0
  99. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/material.scss +4 -0
  100. package/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_layout.scss +0 -5
  101. package/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_layout.scss +0 -5
  102. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.d.ts +12 -0
  103. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.d.ts +2 -0
  104. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/style/_layout.scss +43 -0
  105. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/style/_material-definition.scss +9 -0
  106. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/style/_theme.scss +14 -0
  107. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/style/material.scss +4 -0
  108. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.d.ts +4 -0
  109. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.d.ts +2 -0
  110. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_layout.scss +14 -0
  111. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_material-definition.scss +0 -0
  112. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_theme.scss +4 -0
  113. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/style/material.scss +4 -0
  114. package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/style/_layout.scss +0 -5
  115. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_layout.scss +0 -5
  116. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_layout.scss +0 -5
  117. package/lib/component/transaction/style/_layout.scss +23 -0
  118. package/lib/component/transaction/style/_material-definition.scss +5 -0
  119. package/lib/component/transaction/style/material.scss +2 -0
  120. package/lib/component/transaction/transaction.component.d.ts +2 -0
  121. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.d.ts +4 -4
  122. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.d.ts +4 -1
  123. package/lib/component/transaction-header/transaction-header/style/_layout.scss +15 -7
  124. package/lib/component/transaction-header/transaction-header/style/_theme.scss +3 -0
  125. package/lib/component/transaction-header/transaction-header/style/material.scss +1 -0
  126. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.d.ts +4 -2
  127. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +2 -0
  128. package/lib/component/transaction-header-fields/transaction-header-branch.component.d.ts +2 -1
  129. package/lib/component/transaction-header-fields/transaction-header-delivery-method.component.d.ts +7 -1
  130. package/lib/component/transaction-line/style/_layout.scss +3 -19
  131. package/lib/component/transaction-line/style/_material-definition.scss +3 -10
  132. package/lib/component/transaction-line/style/_theme.scss +5 -5
  133. package/lib/component/transaction-line/style/material.scss +2 -0
  134. package/lib/component/transaction-line/transaction-line.component.d.ts +1 -0
  135. package/lib/component/transaction-line-checkbox-list/style/_layout.scss +33 -0
  136. package/lib/component/transaction-line-checkbox-list/style/_material-definition.scss +0 -0
  137. package/lib/component/transaction-line-checkbox-list/style/_theme.scss +4 -0
  138. package/lib/component/transaction-line-checkbox-list/style/material.scss +4 -0
  139. package/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.d.ts +14 -0
  140. package/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.d.ts +2 -0
  141. package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +5 -8
  142. package/lib/component/transaction-line-fields/transaction-line-delivery-date.component.d.ts +2 -2
  143. package/lib/component/transaction-line-fields/transaction-line-delivery-method.component.d.ts +5 -8
  144. package/lib/component/transaction-line-fields/transaction-line-description.component.d.ts +7 -3
  145. package/lib/component/transaction-line-fields/transaction-line-discount-amount.component.d.ts +2 -2
  146. package/lib/component/transaction-line-fields/transaction-line-line-discount.component.d.ts +2 -2
  147. package/lib/component/transaction-line-fields/transaction-line-price-list.component.d.ts +6 -4
  148. package/lib/component/transaction-line-fields/transaction-line-price.component.d.ts +2 -2
  149. package/lib/component/transaction-line-fields/transaction-line-quantity.component.d.ts +2 -2
  150. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.d.ts +2 -2
  151. package/lib/component/transaction-line-fields/transaction-line-reference.component.d.ts +2 -2
  152. package/lib/component/transaction-line-fields/transaction-line-special-discount.component.d.ts +2 -2
  153. package/lib/component/transaction-line-fields/transaction-line-supplier.component.d.ts +2 -3
  154. package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +5 -8
  155. package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +5 -8
  156. package/lib/component/transaction-search/style/_layout.scss +4 -1
  157. package/lib/component/transaction-search/style/_material-definition.scss +11 -5
  158. package/lib/component/transaction-search/style/_theme.scss +1 -2
  159. package/lib/component/transaction-search/transaction-search-header/style/_layout.scss +24 -1
  160. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_layout.scss +1 -1
  161. package/lib/service/dialog.service.d.ts +4 -2
  162. package/lib/service/error.service.d.ts +8 -4
  163. package/lib/service/pending-reason.service.d.ts +4 -0
  164. package/lib/service/transaction-connector-adapter.service.d.ts +3 -2
  165. package/lib/service/transaction-connector.service.d.ts +3 -1
  166. package/lib/service/transaction.service.d.ts +3 -5
  167. package/lib/style/_variables.scss +20 -0
  168. package/lib/style/transaction-globals.scss +47 -1
  169. package/package.json +1 -1
@@ -127,15 +127,6 @@ TransactionSearchComponent.decorators = [
127
127
  <div class="transaction-search-content-wrapper" [ngClass]="calculateClasses()">
128
128
  <ng-content></ng-content>
129
129
  </div>
130
-
131
- <co-icon-collapse-handle
132
- class="for-sidebar"
133
- [ngClass]="calculateClasses()"
134
- [orientation]="orientations.Vertical"
135
- [arrowDirection]="directionRight"
136
- [twoArrows]="true"
137
- (click)="onSideCollapseHandleClick()">
138
- </co-icon-collapse-handle>
139
130
  `,
140
131
  animations: [
141
132
  trigger("showHideFilterSidebar", [
@@ -156,4 +147,4 @@ TransactionSearchComponent.propDecorators = {
156
147
  searchViewModeChange: [{ type: Output }],
157
148
  showClass: [{ type: HostBinding, args: ["class.co-transaction-search",] }]
158
149
  };
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUcxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFaEYsTUFBTSxDQUFOLElBQVksaUJBR1g7QUFIRCxXQUFZLGlCQUFpQjtJQUMzQixpRUFBUSxDQUFBO0lBQ1IsbUVBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBa0RELE1BQU0sT0FBTywwQkFBMEI7SUFpQ3JDLFlBQW9CLHlCQUFtRDtRQUFuRCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBL0J2RCxvQkFBZSxHQUEwQixjQUFjLENBQUM7UUFDeEQsaUJBQVksR0FBeUIsYUFBYSxDQUFDO1FBQ25ELG1CQUFjLEdBQWdCLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFFekQseUJBQW9CLEdBQW1CLGNBQWMsQ0FBQyxVQUFVLENBQUM7UUFDakUsNEJBQXVCLEdBQXNCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztR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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb0RpcmVjdGlvbiwgQ29PcmllbnRhdGlvbiB9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uS2luZCB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHsgVHJhbnNhY3Rpb25TZWFyY2hWaWV3IH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy5ib1wiO1xyXG5pbXBvcnQgeyBTZWFyY2hWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9lbnVtL3NlYXJjaC12aWV3LW1vZGUuZW51bVwiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQgZW51bSBTZWFyY2hCYXJWaWV3TW9kZSB7XHJcbiAgRXhwYW5kZWQsXHJcbiAgQ29sbGFwc2VkXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24tc2VhcmNoJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXNlYXJjaC13cmFwcGVyXCJcclxuICAgICAgICAgW25nQ2xhc3NdPVwiY2FsY3VsYXRlQ2xhc3NlcygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWx0ZXItd3JhcHBlciBuYXJyb3ctc2Nyb2xsYmFyXCJcclxuICAgICAgICAgICBbbmdDbGFzc109XCJjYWxjdWxhdGVDbGFzc2VzKClcIlxyXG4gICAgICAgICAgICpuZ0lmPVwic2hvd0ZpbHRlclNpZGViYXJcIiBAc2hvd0hpZGVGaWx0ZXJTaWRlYmFyPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvblR5cGVdPVwidHJhbnNhY3Rpb25UeXBlXCJcclxuICAgICAgICAgIFthY3RpdmVTZWFyY2hWaWV3TW9kZV09XCJhY3RpdmVTZWFyY2hWaWV3TW9kZVwiXHJcbiAgICAgICAgICAoY2xvc2VCdXR0b25DbGljayk9XCJoYW5kbGVIaWRlRmlsdGVyKClcIlxyXG4gICAgICAgICAgKHJlc2V0RmlsdGVyQ2xpY2spPVwiaGFuZGxlUmVzZXRGaWx0ZXIoKVwiPjwvY28tdHJhbnNhY3Rpb24tZmlsdGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQtd3JhcHBlclwiIFtuZ0NsYXNzXT1cImNhbGN1bGF0ZUNsYXNzZXMoKVwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0XHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25UeXBlXT1cInRyYW5zYWN0aW9uVHlwZVwiXHJcbiAgICAgICAgICBbYWN0aXZlU2VhcmNoVmlld01vZGVdPVwiYWN0aXZlU2VhcmNoVmlld01vZGVcIlxyXG4gICAgICAgICAgKGZpbHRlckNsaWNrKT1cInRvZ2dsZUZpbHRlcigpXCJcclxuICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgIChyZXNpemVDbGljayk9XCJvblNlYXJjaFZpZXdSZXNpemVDbGljaygpXCJcclxuICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNvbGxhcHNlU2VhcmNoQmFyKClcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tc2VhcmNoLWNvbnRlbnQtd3JhcHBlclwiIFtuZ0NsYXNzXT1cImNhbGN1bGF0ZUNsYXNzZXMoKVwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8Y28taWNvbi1jb2xsYXBzZS1oYW5kbGVcclxuICAgICAgY2xhc3M9XCJmb3Itc2lkZWJhclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImNhbGN1bGF0ZUNsYXNzZXMoKVwiXHJcbiAgICAgIFtvcmllbnRhdGlvbl09XCJvcmllbnRhdGlvbnMuVmVydGljYWxcIlxyXG4gICAgICBbYXJyb3dEaXJlY3Rpb25dPVwiZGlyZWN0aW9uUmlnaHRcIlxyXG4gICAgICBbdHdvQXJyb3dzXT1cInRydWVcIlxyXG4gICAgICAoY2xpY2spPVwib25TaWRlQ29sbGFwc2VIYW5kbGVDbGljaygpXCI+XHJcbiAgICA8L2NvLWljb24tY29sbGFwc2UtaGFuZGxlPlxyXG4gIGAsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcihcInNob3dIaWRlRmlsdGVyU2lkZWJhclwiLCBbXHJcbiAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknfSkpLFxyXG4gICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknfSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKFwidm9pZCA8PT4gKlwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIikpXHJcbiAgICBdKVxyXG4gIF0sXHJcblxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VhcmNoQ29tcG9uZW50IHtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaFZpZXdNb2RlczogdHlwZW9mIFNlYXJjaFZpZXdNb2RlID0gU2VhcmNoVmlld01vZGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IG9yaWVudGF0aW9uczogdHlwZW9mIENvT3JpZW50YXRpb24gPSBDb09yaWVudGF0aW9uO1xyXG4gIHB1YmxpYyByZWFkb25seSBkaXJlY3Rpb25SaWdodDogQ29EaXJlY3Rpb24gPSBDb0RpcmVjdGlvbi5SaWdodDtcclxuXHJcbiAgcHVibGljIGFjdGl2ZVNlYXJjaFZpZXdNb2RlOiBTZWFyY2hWaWV3TW9kZSA9IFNlYXJjaFZpZXdNb2RlLkZ1bGxTY3JlZW47XHJcbiAgcHVibGljIGFjdGl2ZVNlYXJjaEJhclZpZXdNb2RlOiBTZWFyY2hCYXJWaWV3TW9kZSA9IFNlYXJjaEJhclZpZXdNb2RlLkV4cGFuZGVkO1xyXG4gIHB1YmxpYyBzaG93RmlsdGVyU2lkZWJhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF90cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uVHlwZSh2YWx1ZTogVHJhbnNhY3Rpb25LaW5kKSB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblR5cGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uU2VhcmNoU2VydmljZS50cmFuc2FjdGlvblR5cGUgPSB0aGlzLl90cmFuc2FjdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvbktpbmQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2VhcmNoVmlld01vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxTZWFyY2hWaWV3TW9kZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaFZpZXdNb2RlPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1zZWFyY2hcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2FjdGlvblNlYXJjaFNlcnZpY2U6IFRyYW5zYWN0aW9uU2VhcmNoU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmdWxsc2NyZWVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlU2VhcmNoVmlld01vZGUgPT09IFNlYXJjaFZpZXdNb2RlLkZ1bGxTY3JlZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVNlYXJjaEJhclZpZXdNb2RlID09PSBTZWFyY2hCYXJWaWV3TW9kZS5Db2xsYXBzZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RmlsdGVyU2lkZWJhciA9ICF0aGlzLnNob3dGaWx0ZXJTaWRlYmFyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUhpZGVGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dGaWx0ZXJTaWRlYmFyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUmVzZXRGaWx0ZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlYXJjaFNlcnZpY2UucmVzZXRGaWx0ZXJzKCk7XHJcbiAgICB0aGlzLnNob3dGaWx0ZXJTaWRlYmFyID0gZmFsc2U7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zaG93RmlsdGVyU2lkZWJhciA9IHRydWVcclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblRyYW5zYWN0aW9uQ2xpY2sodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uU2VhcmNoVmlldyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlU2VhcmNoVmlld01vZGUgPT09IHRoaXMuc2VhcmNoVmlld01vZGVzLkZ1bGxTY3JlZW4pIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZVNlYXJjaEJhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3Njcm9sbFRvVG9wKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uQ2xpY2suZW1pdCh0cmFuc2FjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWFyY2hWaWV3UmVzaXplQ2xpY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSA9PT0gdGhpcy5zZWFyY2hWaWV3TW9kZXMuU2lkZUJhcikge1xyXG4gICAgICB0aGlzLmFjdGl2ZVNlYXJjaFZpZXdNb2RlID0gdGhpcy5zZWFyY2hWaWV3TW9kZXMuRnVsbFNjcmVlbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlU2VhcmNoVmlld01vZGUgPSB0aGlzLnNlYXJjaFZpZXdNb2Rlcy5TaWRlQmFyO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VhcmNoVmlld01vZGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVNlYXJjaFZpZXdNb2RlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNpZGVDb2xsYXBzZUhhbmRsZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2dnbGVTZWFyY2hCYXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTZWFyY2hCYXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb2xsYXBzZWQgfHwgdGhpcy5mdWxsc2NyZWVuKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kU2VhcmNoQmFyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvbGxhcHNlU2VhcmNoQmFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29sbGFwc2VTZWFyY2hCYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZVNlYXJjaFZpZXdNb2RlID0gdGhpcy5zZWFyY2hWaWV3TW9kZXMuU2lkZUJhcjtcclxuICAgIHRoaXMuYWN0aXZlU2VhcmNoQmFyVmlld01vZGUgPSBTZWFyY2hCYXJWaWV3TW9kZS5Db2xsYXBzZWQ7XHJcbiAgICB0aGlzLnNlYXJjaFZpZXdNb2RlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kU2VhcmNoQmFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSA9IHRoaXMuc2VhcmNoVmlld01vZGVzLlNpZGVCYXI7XHJcbiAgICB0aGlzLmFjdGl2ZVNlYXJjaEJhclZpZXdNb2RlID0gU2VhcmNoQmFyVmlld01vZGUuRXhwYW5kZWQ7XHJcbiAgICB0aGlzLnNlYXJjaFZpZXdNb2RlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsY3VsYXRlQ2xhc3NlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ2Z1bGxzY3JlZW4nOiB0aGlzLmZ1bGxzY3JlZW4sXHJcbiAgICAgICdzaWRlYmFyJzogIXRoaXMuZnVsbHNjcmVlbixcclxuICAgICAgJ2NvbGxhcHNlZCc6IHRoaXMuY29sbGFwc2VkLFxyXG4gICAgICAnZXhwYW5kZWQnOiAhdGhpcy5jb2xsYXBzZWQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2Nyb2xsVG9Ub3AoKTogdm9pZCB7XHJcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICB9XHJcbn1cclxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXNlYXJjaC90cmFuc2FjdGlvbi1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUcxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFaEYsTUFBTSxDQUFOLElBQVksaUJBR1g7QUFIRCxXQUFZLGlCQUFpQjtJQUMzQixpRUFBUSxDQUFBO0lBQ1IsbUVBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRzVCO0FBeUNELE1BQU0sT0FBTywwQkFBMEI7SUFpQ3JDLFlBQW9CLHlCQUFtRDtRQUFuRCw4QkFBeUIsR0FBekIseUJBQXlCLENBQTBCO1FBL0J2RCxvQkFBZSxHQUEwQixjQUFjLENBQUM7UUFDeEQsaUJBQVksR0FBeUIsYUFBYSxDQUFDO1FBQ25ELG1CQUFjLEdBQWdCLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFFekQseUJBQW9CLEdBQW1CLGNBQWMsQ0FBQyxVQUFVLENBQUM7UUFDakUsNEJBQXVCLEdBQXNCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztR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ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb0RpcmVjdGlvbiwgQ29PcmllbnRhdGlvbiB9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7IFRyYW5zYWN0aW9uS2luZCB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHsgVHJhbnNhY3Rpb25TZWFyY2hWaWV3IH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy5ib1wiO1xyXG5pbXBvcnQgeyBTZWFyY2hWaWV3TW9kZSB9IGZyb20gXCIuLi8uLi9lbnVtL3NlYXJjaC12aWV3LW1vZGUuZW51bVwiO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlYXJjaC5zZXJ2aWNlXCI7XHJcblxyXG5leHBvcnQgZW51bSBTZWFyY2hCYXJWaWV3TW9kZSB7XHJcbiAgRXhwYW5kZWQsXHJcbiAgQ29sbGFwc2VkXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24tc2VhcmNoJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXNlYXJjaC13cmFwcGVyXCJcclxuICAgICAgICAgW25nQ2xhc3NdPVwiY2FsY3VsYXRlQ2xhc3NlcygpXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWx0ZXItd3JhcHBlciBuYXJyb3ctc2Nyb2xsYmFyXCJcclxuICAgICAgICAgICBbbmdDbGFzc109XCJjYWxjdWxhdGVDbGFzc2VzKClcIlxyXG4gICAgICAgICAgICpuZ0lmPVwic2hvd0ZpbHRlclNpZGViYXJcIiBAc2hvd0hpZGVGaWx0ZXJTaWRlYmFyPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1maWx0ZXJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvblR5cGVdPVwidHJhbnNhY3Rpb25UeXBlXCJcclxuICAgICAgICAgIFthY3RpdmVTZWFyY2hWaWV3TW9kZV09XCJhY3RpdmVTZWFyY2hWaWV3TW9kZVwiXHJcbiAgICAgICAgICAoY2xvc2VCdXR0b25DbGljayk9XCJoYW5kbGVIaWRlRmlsdGVyKClcIlxyXG4gICAgICAgICAgKHJlc2V0RmlsdGVyQ2xpY2spPVwiaGFuZGxlUmVzZXRGaWx0ZXIoKVwiPjwvY28tdHJhbnNhY3Rpb24tZmlsdGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQtd3JhcHBlclwiIFtuZ0NsYXNzXT1cImNhbGN1bGF0ZUNsYXNzZXMoKVwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0XHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25UeXBlXT1cInRyYW5zYWN0aW9uVHlwZVwiXHJcbiAgICAgICAgICBbYWN0aXZlU2VhcmNoVmlld01vZGVdPVwiYWN0aXZlU2VhcmNoVmlld01vZGVcIlxyXG4gICAgICAgICAgKGZpbHRlckNsaWNrKT1cInRvZ2dsZUZpbHRlcigpXCJcclxuICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgIChyZXNpemVDbGljayk9XCJvblNlYXJjaFZpZXdSZXNpemVDbGljaygpXCJcclxuICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNvbGxhcHNlU2VhcmNoQmFyKClcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tc2VhcmNoLWNvbnRlbnQtd3JhcHBlclwiIFtuZ0NsYXNzXT1cImNhbGN1bGF0ZUNsYXNzZXMoKVwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoXCJzaG93SGlkZUZpbHRlclNpZGViYXJcIiwgW1xyXG4gICAgICBzdGF0ZShcInZvaWRcIiwgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEwMCUpJ30pKSxcclxuICAgICAgc3RhdGUoXCIqXCIsIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJ30pKSxcclxuICAgICAgdHJhbnNpdGlvbihcInZvaWQgPD0+ICpcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKVxyXG4gICAgXSlcclxuICBdLFxyXG5cclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlYXJjaENvbXBvbmVudCB7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hWaWV3TW9kZXM6IHR5cGVvZiBTZWFyY2hWaWV3TW9kZSA9IFNlYXJjaFZpZXdNb2RlO1xyXG4gIHB1YmxpYyByZWFkb25seSBvcmllbnRhdGlvbnM6IHR5cGVvZiBDb09yaWVudGF0aW9uID0gQ29PcmllbnRhdGlvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGlyZWN0aW9uUmlnaHQ6IENvRGlyZWN0aW9uID0gQ29EaXJlY3Rpb24uUmlnaHQ7XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVTZWFyY2hWaWV3TW9kZTogU2VhcmNoVmlld01vZGUgPSBTZWFyY2hWaWV3TW9kZS5GdWxsU2NyZWVuO1xyXG4gIHB1YmxpYyBhY3RpdmVTZWFyY2hCYXJWaWV3TW9kZTogU2VhcmNoQmFyVmlld01vZGUgPSBTZWFyY2hCYXJWaWV3TW9kZS5FeHBhbmRlZDtcclxuICBwdWJsaWMgc2hvd0ZpbHRlclNpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0cmFuc2FjdGlvblR5cGUodmFsdWU6IFRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25UeXBlID0gdmFsdWU7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25UeXBlID0gdGhpcy5fdHJhbnNhY3Rpb25UeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25LaW5kIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uU2VhcmNoVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uU2VhcmNoVmlldz4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlYXJjaFZpZXdNb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8U2VhcmNoVmlld01vZGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hWaWV3TW9kZT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tc2VhcmNoXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfdHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlOiBUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZnVsbHNjcmVlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVNlYXJjaFZpZXdNb2RlID09PSBTZWFyY2hWaWV3TW9kZS5GdWxsU2NyZWVuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2xsYXBzZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTZWFyY2hCYXJWaWV3TW9kZSA9PT0gU2VhcmNoQmFyVmlld01vZGUuQ29sbGFwc2VkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZUZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0ZpbHRlclNpZGViYXIgPSAhdGhpcy5zaG93RmlsdGVyU2lkZWJhcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVIaWRlRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RmlsdGVyU2lkZWJhciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVJlc2V0RmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLnJlc2V0RmlsdGVycygpO1xyXG4gICAgdGhpcy5zaG93RmlsdGVyU2lkZWJhciA9IGZhbHNlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd0ZpbHRlclNpZGViYXIgPSB0cnVlXHJcbiAgICB9LCAxMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25UcmFuc2FjdGlvbkNsaWNrKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVNlYXJjaFZpZXdNb2RlID09PSB0aGlzLnNlYXJjaFZpZXdNb2Rlcy5GdWxsU2NyZWVuKSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VTZWFyY2hCYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9zY3JvbGxUb1RvcCgpO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkNsaWNrLmVtaXQodHJhbnNhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VhcmNoVmlld1Jlc2l6ZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlU2VhcmNoVmlld01vZGUgPT09IHRoaXMuc2VhcmNoVmlld01vZGVzLlNpZGVCYXIpIHtcclxuICAgICAgdGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSA9IHRoaXMuc2VhcmNoVmlld01vZGVzLkZ1bGxTY3JlZW47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGl2ZVNlYXJjaFZpZXdNb2RlID0gdGhpcy5zZWFyY2hWaWV3TW9kZXMuU2lkZUJhcjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlYXJjaFZpZXdNb2RlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaWRlQ29sbGFwc2VIYW5kbGVDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMudG9nZ2xlU2VhcmNoQmFyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlU2VhcmNoQmFyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29sbGFwc2VkIHx8IHRoaXMuZnVsbHNjcmVlbikge1xyXG4gICAgICB0aGlzLmV4cGFuZFNlYXJjaEJhcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZVNlYXJjaEJhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbGxhcHNlU2VhcmNoQmFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVTZWFyY2hWaWV3TW9kZSA9IHRoaXMuc2VhcmNoVmlld01vZGVzLlNpZGVCYXI7XHJcbiAgICB0aGlzLmFjdGl2ZVNlYXJjaEJhclZpZXdNb2RlID0gU2VhcmNoQmFyVmlld01vZGUuQ29sbGFwc2VkO1xyXG4gICAgdGhpcy5zZWFyY2hWaWV3TW9kZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlU2VhcmNoVmlld01vZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cGFuZFNlYXJjaEJhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlU2VhcmNoVmlld01vZGUgPSB0aGlzLnNlYXJjaFZpZXdNb2Rlcy5TaWRlQmFyO1xyXG4gICAgdGhpcy5hY3RpdmVTZWFyY2hCYXJWaWV3TW9kZSA9IFNlYXJjaEJhclZpZXdNb2RlLkV4cGFuZGVkO1xyXG4gICAgdGhpcy5zZWFyY2hWaWV3TW9kZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlU2VhcmNoVmlld01vZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGN1bGF0ZUNsYXNzZXMoKTogYW55IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdmdWxsc2NyZWVuJzogdGhpcy5mdWxsc2NyZWVuLFxyXG4gICAgICAnc2lkZWJhcic6ICF0aGlzLmZ1bGxzY3JlZW4sXHJcbiAgICAgICdjb2xsYXBzZWQnOiB0aGlzLmNvbGxhcHNlZCxcclxuICAgICAgJ2V4cGFuZGVkJzogIXRoaXMuY29sbGFwc2VkLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Njcm9sbFRvVG9wKCk6IHZvaWQge1xyXG4gICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -12,6 +12,8 @@ export class DialogService {
12
12
  this._compFactoryResolver = _compFactoryResolver;
13
13
  this.appRef = appRef;
14
14
  this.injector = injector;
15
+ // private _componentRef: any;
16
+ this._componentRefs = [];
15
17
  }
16
18
  showYesNo(title, text) {
17
19
  return __awaiter(this, void 0, void 0, function* () {
@@ -24,12 +26,15 @@ export class DialogService {
24
26
  return response === AppPopupButtonType.Yes;
25
27
  });
26
28
  }
27
- showError(message) {
29
+ showError(message, details) {
28
30
  const data = {
29
31
  title: 'ERROR',
30
32
  text: message,
31
33
  type: AppPopupType.Error
32
34
  };
35
+ if (details) {
36
+ data.details = details;
37
+ }
33
38
  return this._createComponent(ConfirmationDialogComponent, data);
34
39
  }
35
40
  showInformation(message) {
@@ -46,6 +51,12 @@ export class DialogService {
46
51
  };
47
52
  return this._createComponent(comp, data);
48
53
  }
54
+ showTransactionHeaderComponent(comp, transactionInfo) {
55
+ const data = {
56
+ transactionInfo: transactionInfo
57
+ };
58
+ return this._createComponent(comp, data);
59
+ }
49
60
  showCharacteristics(title, choices, value) {
50
61
  const data = {
51
62
  title: title,
@@ -68,24 +79,28 @@ export class DialogService {
68
79
  }
69
80
  _createComponent(componentClass, data) {
70
81
  return new Promise((resolve) => {
71
- this._componentRef = this._compFactoryResolver
82
+ const componentRef = this._compFactoryResolver
72
83
  .resolveComponentFactory(componentClass)
73
84
  .create(this.injector);
85
+ this._componentRefs.push(componentRef);
74
86
  for (let key in data) {
75
87
  if (data.hasOwnProperty(key)) {
76
- this._componentRef.instance[key] = data[key];
88
+ componentRef.instance[key] = data[key];
77
89
  }
78
90
  }
79
- this.appRef.attachView(this._componentRef.hostView);
80
- const domElem = this._componentRef.hostView
91
+ this.appRef.attachView(componentRef.hostView);
92
+ const domElem = componentRef.hostView
81
93
  .rootNodes[0];
82
94
  document.body.appendChild(domElem);
83
- this._componentRef.onDestroy(() => {
84
- this.appRef.detachView(this._componentRef.hostView);
95
+ componentRef.onDestroy(() => {
96
+ this.appRef.detachView(componentRef.hostView);
85
97
  });
86
- this._componentRef.instance.onClose = (button, output) => {
87
- this.appRef.detachView(this._componentRef.hostView);
88
- this._componentRef = undefined;
98
+ // @ts-ignore
99
+ componentRef.instance.onClose = (button, output) => {
100
+ const idx = this._componentRefs.indexOf(componentRef);
101
+ this.appRef.detachView(componentRef.hostView);
102
+ this._componentRefs[idx] = undefined;
103
+ this._componentRefs.splice(idx, 1);
89
104
  resolve(output ? output : button);
90
105
  };
91
106
  });
@@ -102,4 +117,4 @@ DialogService.ctorParameters = () => [
102
117
  { type: ApplicationRef },
103
118
  { type: Injector }
104
119
  ];
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUUsd0JBQXdCLEVBQW1CLFVBQVUsRUFBRSxRQUFRLEVBQU8sTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDckYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDM0csT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBSXhFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHlGQUF5RixDQUFDO0FBQ3RJLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLG9IQUFvSCxDQUFDO0FBQzNLLE9BQU8sRUFBQyw0Q0FBNEMsRUFBQyxNQUFNLGdJQUFnSSxDQUFDOztBQUs1TCxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUNVLG9CQUE4QyxFQUM5QyxNQUFzQixFQUN0QixRQUFrQjtRQUZsQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7SUFFNUIsQ0FBQztJQUVZLFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBWTs7WUFDaEQsTUFBTSxJQUFJLEdBQU87Z0JBQ2YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFLFlBQVksQ0FBQyxZQUFZO2FBQ2hDLENBQUM7WUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRixPQUFPLFFBQVEsS0FBSyxrQkFB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QUFDLE1BQVcsRUFBRSxNQUFZLEVBQUUsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzs7O1lBbkdGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBYnVCLHdCQUF3QjtZQUF4QyxjQUFjO1lBQXlELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVtYmVkZGVkVmlld1JlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFR5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QXBwUG9wdXBCdXR0b25UeXBlfSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvZW51bS9hcHAtcG9wdXAtYnV0dG9uLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QXBwUG9wdXBUeXBlfSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvZW51bS9hcHAtcG9wdXAtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7RGlhbG9nQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC9jb3JlL2Jhc2UvZGlhbG9nLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZS5ib1wiO1xyXG5pbXBvcnQge0NoYXJhY3RlcmlzdGljQW5zd2VyQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2NvcmUvYmFzZS9jb21wb25lbnRzL2NoYXJhY3RlcmlzdGljLWFuc3dlci9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGlhbG9nVHJhbnNhY3Rpb25MaW5lV2FyZWhvdXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2RpYWxvZy90cmFuc2FjdGlvbi1saW5lL2RpYWxvZy10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS9kaWFsb2ctdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGlhbG9nVHJhbnNhY3Rpb25MaW5lQ29tbWlzc2lvbkNvZGVDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvZGlhbG9nL3RyYW5zYWN0aW9uLWxpbmUvZGlhbG9nLXRyYW5zYWN0aW9uLWxpbmUtY29tbWlzc2lvbi1jb2RlL2RpYWxvZy10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tY29kZS5jb21wb25lbnRcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NvbXBGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2hvd1llc05vKHRpdGxlOiBzdHJpbmcsIHRleHQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBkYXRhOiB7fSA9IHtcclxuICAgICAgdGl0bGU6IHRpdGxlLFxyXG4gICAgICB0ZXh0OiB0ZXh0LFxyXG4gICAgICB0eXBlOiBBcHBQb3B1cFR5cGUuQ29uZmlybWF0aW9uXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9jcmVhdGVDb21wb25lbnQoQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCBkYXRhKTtcclxuICAgIHJldHVybiByZXNwb25zZSA9PT0gQXBwUG9wdXBCdXR0b25UeXBlLlllcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RXJyb3IobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGNvbnN0IGRhdGE6IHt9ID0ge1xyXG4gICAgICB0aXRsZTogJ0VSUk9SJyxcclxuICAgICAgdGV4dDogbWVzc2FnZSxcclxuICAgICAgdHlwZTogQXBwUG9wdXBUeXBlLkVycm9yXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUNvbXBvbmVudChDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dJbmZvcm1hdGlvbihtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3QgZGF0YToge30gPSB7XHJcbiAgICAgIHRpdGxlOiAnSU5GT1JNQVRJT04nLFxyXG4gICAgICB0ZXh0OiBtZXNzYWdlLFxyXG4gICAgICB0eXBlOiBBcHBQb3B1cFR5cGUuSW5mb3JtYXRpb25cclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlQ29tcG9uZW50KENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1RyYW5zYWN0aW9uTGluZUNvbXBvbmVudChjb21wOiBUeXBlPERpYWxvZ0Jhc2VDb21wb25lbnQ+LCB0cmFuc0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pIHtcclxuICAgIGNvbnN0IGRhdGE6IHt9ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvbkxpbmU6IHRyYW5zTGluZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUNvbXBvbmVudChjb21wLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93Q2hhcmFjdGVyaXN0aWNzKHRpdGxlOiBzdHJpbmcsIGNob2ljZXM6IFRyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljQ2hvaWNlW10sIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgZGF0YToge30gPSB7XHJcbiAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgY2hvaWNlczogY2hvaWNlcyxcclxuICAgICAgdmFsdWU6IHZhbHVlXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUNvbXBvbmVudChDaGFyYWN0ZXJpc3RpY0Fuc3dlckNvbXBvbmVudCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1dhcmVob3VzZSgpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgZGF0YToge30gPSB7XHJcbiAgICAgIHVzZVRyYW5zYWN0aW9uTGluZTogZmFsc2VcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlQ29tcG9uZW50KERpYWxvZ1RyYW5zYWN0aW9uTGluZVdhcmVob3VzZUNvbXBvbmVudCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0NvbW1pc3Npb25Db2RlKCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBkYXRhOiB7fSA9IHtcclxuICAgICAgdXNlVHJhbnNhY3Rpb25MaW5lOiBmYWxzZVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVDb21wb25lbnQoRGlhbG9nVHJhbnNhY3Rpb25MaW5lQ29tbWlzc2lvbkNvZGVDb21wb25lbnQsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudENsYXNzOiBhbnksIGRhdGE6IGFueSk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX2NvbXBGYWN0b3J5UmVzb2x2ZXJcclxuICAgICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50Q2xhc3MpXHJcbiAgICAgICAgLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgZm9yIChsZXQga2V5IGluIGRhdGEpIHtcclxuICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IGRhdGFba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxyXG4gICAgICAgIC5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcblxyXG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYub25EZXN0cm95KCgpID0+IHtcclxuICAgICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLm9uQ2xvc2UgPSAoYnV0dG9uOiBhbnksIG91dHB1dD86IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgcmVzb2x2ZShvdXRwdXQgPyBvdXRwdXQgOiBidXR0b24pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbn1cclxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUUsd0JBQXdCLEVBQW1CLFVBQVUsRUFBRSxRQUFRLEVBQU8sTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDckYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDM0csT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBSXhFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHlGQUF5RixDQUFDO0FBQ3RJLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLG9IQUFvSCxDQUFDO0FBQzNLLE9BQU8sRUFBQyw0Q0FBNEMsRUFBQyxNQUFNLGdJQUFnSSxDQUFDOztBQU01TCxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUNVLG9CQUE4QyxFQUM5QyxNQUFzQixFQUN0QixRQUFrQjtRQUZsQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFONUIsOEJBQThCO1FBQ3RCLG1CQUFjLEdBQVUsRUFBRSxDQUFDO0lBT25DLENBQUM7SUFFWSxTQUFTLENBQUMsS0FBYSxFQUFFLElBQVk7O1lBQ2hELE1BQU0sSUFBSSxHQUFPO2dCQUNmLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxZQUFZLENBQUMsWUFBWTthQUNoQyxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsMkJBQTJCLEVBQUUs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QVksQ0FBQyxRQUFpQztpQkFDNUQsU0FBUyxDQUFDLENBQUMsQ0FBZ0IsQ0FBQztZQUUvQixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDO1lBRUgsYUFBYTtZQUNiLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsTUFBVyxFQUFFLE1BQVksRUFBRSxFQUFFO2dCQUM1RCxNQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7OztZQWxIRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQWR1Qix3QkFBd0I7WUFBeEMsY0FBYztZQUF5RCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHBsaWNhdGlvblJlZiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBFbWJlZGRlZFZpZXdSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSBcIi4uL2NvbXBvbmVudC9jb3JlL2VudW0vYXBwLXBvcHVwLWJ1dHRvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0FwcFBvcHVwVHlwZX0gZnJvbSBcIi4uL2NvbXBvbmVudC9jb3JlL2VudW0vYXBwLXBvcHVwLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge0RpYWxvZ0Jhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL2RpYWxvZy1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWNDaG9pY2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWNDaG9pY2UuYm9cIjtcclxuaW1wb3J0IHtDaGFyYWN0ZXJpc3RpY0Fuc3dlckNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC9jb3JlL2Jhc2UvY29tcG9uZW50cy9jaGFyYWN0ZXJpc3RpYy1hbnN3ZXIvY2hhcmFjdGVyaXN0aWMtYW5zd2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0RpYWxvZ1RyYW5zYWN0aW9uTGluZVdhcmVob3VzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC9kaWFsb2cvdHJhbnNhY3Rpb24tbGluZS9kaWFsb2ctdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UvZGlhbG9nLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0RpYWxvZ1RyYW5zYWN0aW9uTGluZUNvbW1pc3Npb25Db2RlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L2RpYWxvZy90cmFuc2FjdGlvbi1saW5lL2RpYWxvZy10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tY29kZS9kaWFsb2ctdHJhbnNhY3Rpb24tbGluZS1jb21taXNzaW9uLWNvZGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8uYm9cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nU2VydmljZSB7XHJcblxyXG4gIC8vIHByaXZhdGUgX2NvbXBvbmVudFJlZjogYW55O1xyXG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZnM6IGFueVtdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfY29tcEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzaG93WWVzTm8odGl0bGU6IHN0cmluZywgdGV4dDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGNvbnN0IGRhdGE6IHt9ID0ge1xyXG4gICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgIHRleHQ6IHRleHQsXHJcbiAgICAgIHR5cGU6IEFwcFBvcHVwVHlwZS5Db25maXJtYXRpb25cclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuX2NyZWF0ZUNvbXBvbmVudChDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIGRhdGEpO1xyXG4gICAgcmV0dXJuIHJlc3BvbnNlID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuWWVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGRldGFpbHM/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3QgZGF0YTogYW55ID0ge1xyXG4gICAgICB0aXRsZTogJ0VSUk9SJyxcclxuICAgICAgdGV4dDogbWVzc2FnZSxcclxuICAgICAgdHlwZTogQXBwUG9wdXBUeXBlLkVycm9yXHJcbiAgICB9O1xyXG4gICAgaWYgKGRldGFpbHMpIHtcclxuICAgICAgZGF0YS5kZXRhaWxzID0gZGV0YWlscztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVDb21wb25lbnQoQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93SW5mb3JtYXRpb24obWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGNvbnN0IGRhdGE6IHt9ID0ge1xyXG4gICAgICB0aXRsZTogJ0lORk9STUFUSU9OJyxcclxuICAgICAgdGV4dDogbWVzc2FnZSxcclxuICAgICAgdHlwZTogQXBwUG9wdXBUeXBlLkluZm9ybWF0aW9uXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUNvbXBvbmVudChDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUcmFuc2FjdGlvbkxpbmVDb21wb25lbnQoY29tcDogVHlwZTxEaWFsb2dCYXNlQ29tcG9uZW50PiwgdHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSB7XHJcbiAgICBjb25zdCBkYXRhOiB7fSA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25MaW5lOiB0cmFuc0xpbmVcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVDb21wb25lbnQoY29tcCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1RyYW5zYWN0aW9uSGVhZGVyQ29tcG9uZW50KGNvbXA6IFR5cGU8RGlhbG9nQmFzZUNvbXBvbmVudD4sIHRyYW5zYWN0aW9uSW5mbzogVHJhbnNhY3Rpb25JbmZvKSB7XHJcbiAgICBjb25zdCBkYXRhOiB7fSA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25JbmZvOiB0cmFuc2FjdGlvbkluZm9cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVDb21wb25lbnQoY29tcCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0NoYXJhY3RlcmlzdGljcyh0aXRsZTogc3RyaW5nLCBjaG9pY2VzOiBUcmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZVtdLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGRhdGE6IHt9ID0ge1xyXG4gICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgIGNob2ljZXM6IGNob2ljZXMsXHJcbiAgICAgIHZhbHVlOiB2YWx1ZVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLl9jcmVhdGVDb21wb25lbnQoQ2hhcmFjdGVyaXN0aWNBbnN3ZXJDb21wb25lbnQsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dXYXJlaG91c2UoKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IGRhdGE6IHt9ID0ge1xyXG4gICAgICB1c2VUcmFuc2FjdGlvbkxpbmU6IGZhbHNlXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUNvbXBvbmVudChEaWFsb2dUcmFuc2FjdGlvbkxpbmVXYXJlaG91c2VDb21wb25lbnQsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dDb21taXNzaW9uQ29kZSgpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgZGF0YToge30gPSB7XHJcbiAgICAgIHVzZVRyYW5zYWN0aW9uTGluZTogZmFsc2VcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlQ29tcG9uZW50KERpYWxvZ1RyYW5zYWN0aW9uTGluZUNvbW1pc3Npb25Db2RlQ29tcG9uZW50LCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZUNvbXBvbmVudChjb21wb25lbnRDbGFzczogYW55LCBkYXRhOiBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9jb21wRmFjdG9yeVJlc29sdmVyXHJcbiAgICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKVxyXG4gICAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZnMucHVzaChjb21wb25lbnRSZWYpO1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gZGF0YSkge1xyXG4gICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZVtrZXldID0gZGF0YVtrZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG5cclxuICAgICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pXHJcbiAgICAgICAgLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XHJcbiAgICAgIGNvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vbkNsb3NlID0gKGJ1dHRvbjogYW55LCBvdXRwdXQ/OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBpZHg6IG51bWJlciA9IHRoaXMuX2NvbXBvbmVudFJlZnMuaW5kZXhPZihjb21wb25lbnRSZWYpO1xyXG4gICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgICB0aGlzLl9jb21wb25lbnRSZWZzW2lkeF0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50UmVmcy5zcGxpY2UoaWR4LCAxKTtcclxuICAgICAgICByZXNvbHZlKG91dHB1dCA/IG91dHB1dCA6IGJ1dHRvbik7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,33 +1,52 @@
1
1
  import { Injectable } from "@angular/core";
2
2
  import { DialogService } from "./dialog.service";
3
+ import { DictionaryService } from "./dictionary.service";
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "./dialog.service";
6
+ import * as i2 from "./dictionary.service";
5
7
  export class ErrorService {
6
- constructor(_dialogService) {
8
+ constructor(_dialogService, _dictionaryService) {
7
9
  this._dialogService = _dialogService;
10
+ this._dictionaryService = _dictionaryService;
8
11
  }
9
- showError(message) {
10
- this._dialogService.showError(message);
12
+ showError(message, details) {
13
+ return this._dialogService.showError(message, details);
11
14
  }
12
- showValidationError(validationResult) {
15
+ showValidationError(response) {
13
16
  const messages = [];
14
- if (validationResult && !validationResult.success) {
15
- if (validationResult.messages && validationResult.messages.length > 0) {
16
- validationResult.messages.forEach(m => {
17
- messages.push(`<div class="dialog-validation-error" [textContent]="'${m.message}'"</div>`);
17
+ const messagesDetails = [];
18
+ messages.push('<div class="dialog-error-wrapper">');
19
+ if (response.message) {
20
+ messages.push(this._messageAsValidationError(response.message));
21
+ }
22
+ else if (response.validationResult && !response.validationResult.success) {
23
+ if (response.validationResult.messages && response.validationResult.messages.length > 0) {
24
+ response.validationResult.messages.forEach(m => {
25
+ messages.push(this._messageAsValidationError(m.message));
26
+ if (m.messageCode) {
27
+ messagesDetails.push(this._messageDetails(m.messageCode));
28
+ }
18
29
  });
19
30
  }
20
- this.showError(messages.join());
21
31
  }
32
+ messages.push('</div>');
33
+ return this.showError(messages.join(''), messagesDetails.length > 0 ? messagesDetails.join('') : undefined);
34
+ }
35
+ _messageAsValidationError(message) {
36
+ return `<div class="dialog-validation-error">${message}</div>`;
37
+ }
38
+ _messageDetails(messageCode) {
39
+ return `<div class="dialog-error-code-string">${messageCode.value}: ${messageCode.defaultStr}</div>`;
22
40
  }
23
41
  }
24
- ErrorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ErrorService_Factory() { return new ErrorService(i0.ɵɵinject(i1.DialogService)); }, token: ErrorService, providedIn: "root" });
42
+ ErrorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ErrorService_Factory() { return new ErrorService(i0.ɵɵinject(i1.DialogService), i0.ɵɵinject(i2.DictionaryService)); }, token: ErrorService, providedIn: "root" });
25
43
  ErrorService.decorators = [
26
44
  { type: Injectable, args: [{
27
45
  providedIn: "root"
28
46
  },] }
29
47
  ];
30
48
  ErrorService.ctorParameters = () => [
31
- { type: DialogService }
49
+ { type: DialogService },
50
+ { type: DictionaryService }
32
51
  ];
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9lcnJvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7QUFNL0MsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFBb0IsY0FBNkI7UUFBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7SUFDakQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFlO1FBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxnQkFBa0M7UUFDM0QsTUFBTSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBQzlCLElBQUksZ0JBQWdCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFDakQsSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3JFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3BDLFFBQVEsQ0FBQyxJQUFJLENBQUMsd0RBQXdELENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxDQUFDO2dCQUM3RixDQUFDLENBQUMsQ0FBQTthQUNIO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Ozs7WUF0QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFMTyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFcnJvclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93RXJyb3IobWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1ZhbGlkYXRpb25FcnJvcih2YWxpZGF0aW9uUmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0KTogdm9pZCB7XHJcbiAgICBjb25zdCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0ICYmICF2YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQubWVzc2FnZXMgJiYgdmFsaWRhdGlvblJlc3VsdC5tZXNzYWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdmFsaWRhdGlvblJlc3VsdC5tZXNzYWdlcy5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgbWVzc2FnZXMucHVzaChgPGRpdiBjbGFzcz1cImRpYWxvZy12YWxpZGF0aW9uLWVycm9yXCIgW3RleHRDb250ZW50XT1cIicke20ubWVzc2FnZX0nXCI8L2Rpdj5gKTtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2hvd0Vycm9yKG1lc3NhZ2VzLmpvaW4oKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9lcnJvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7O0FBS3ZELE1BQU0sT0FBTyxZQUFZO0lBRXZCLFlBQ1UsY0FBNkIsRUFDN0Isa0JBQXFDO1FBRHJDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7SUFFL0MsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBZ0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFFBQXVDO1FBQ2hFLE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixNQUFNLGVBQWUsR0FBYSxFQUFFLENBQUM7UUFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3BELElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtTQUNoRTthQUFNLElBQUksUUFBUSxDQUFDLGdCQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtZQUMxRSxJQUFJLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RixRQUFRLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDN0MsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ3pELElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRTt3QkFDakIsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO3FCQUMzRDtnQkFDSCxDQUFDLENBQUMsQ0FBQTthQUNIO1NBQ0Y7UUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBRU8seUJBQXlCLENBQUMsT0FBZTtRQUMvQyxPQUFPLHdDQUF3QyxPQUFPLFFBQVEsQ0FBQztJQUNqRSxDQUFDO0lBRU8sZUFBZSxDQUFDLFdBQWdCO1FBQ3RDLE9BQU8seUNBQXlDLFdBQVcsQ0FBQyxLQUFLLEtBQUssV0FBVyxDQUFDLFVBQVUsUUFBUSxDQUFDO0lBQ3ZHLENBQUM7Ozs7WUF6Q0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFOTyxhQUFhO1lBRWIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGF0YVNlcnZpY2VSZXNwb25zZURhdGF9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGFcIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4vZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEVycm9yU2VydmljZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZVxyXG4gICAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0Vycm9yKG1lc3NhZ2U6IHN0cmluZywgZGV0YWlscz86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlhbG9nU2VydmljZS5zaG93RXJyb3IobWVzc2FnZSwgZGV0YWlscyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1ZhbGlkYXRpb25FcnJvcihyZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgfCBhbnkpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgY29uc3QgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCBtZXNzYWdlc0RldGFpbHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBtZXNzYWdlcy5wdXNoKCc8ZGl2IGNsYXNzPVwiZGlhbG9nLWVycm9yLXdyYXBwZXJcIj4nKTtcclxuICAgIGlmIChyZXNwb25zZS5tZXNzYWdlKSB7XHJcbiAgICAgIG1lc3NhZ2VzLnB1c2godGhpcy5fbWVzc2FnZUFzVmFsaWRhdGlvbkVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpKVxyXG4gICAgfSBlbHNlIGlmIChyZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmICFyZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQubWVzc2FnZXMgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5tZXNzYWdlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5tZXNzYWdlcy5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICAgICAgbWVzc2FnZXMucHVzaCh0aGlzLl9tZXNzYWdlQXNWYWxpZGF0aW9uRXJyb3IobS5tZXNzYWdlKSk7XHJcbiAgICAgICAgICBpZiAobS5tZXNzYWdlQ29kZSkge1xyXG4gICAgICAgICAgICBtZXNzYWdlc0RldGFpbHMucHVzaCh0aGlzLl9tZXNzYWdlRGV0YWlscyhtLm1lc3NhZ2VDb2RlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbWVzc2FnZXMucHVzaCgnPC9kaXY+Jyk7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3IobWVzc2FnZXMuam9pbignJyksIG1lc3NhZ2VzRGV0YWlscy5sZW5ndGggPiAwID8gbWVzc2FnZXNEZXRhaWxzLmpvaW4oJycpIDogdW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21lc3NhZ2VBc1ZhbGlkYXRpb25FcnJvcihtZXNzYWdlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiZGlhbG9nLXZhbGlkYXRpb24tZXJyb3JcIj4ke21lc3NhZ2V9PC9kaXY+YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21lc3NhZ2VEZXRhaWxzKG1lc3NhZ2VDb2RlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiZGlhbG9nLWVycm9yLWNvZGUtc3RyaW5nXCI+JHttZXNzYWdlQ29kZS52YWx1ZX06ICR7bWVzc2FnZUNvZGUuZGVmYXVsdFN0cn08L2Rpdj5gO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -12,6 +12,8 @@ import { DialogService } from "./dialog.service";
12
12
  import { ResolveLinePendingReasonRequest } from "@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo";
13
13
  import { ArticleConnectorService } from "./article-connector.service";
14
14
  import { ResolveHeaderPendingReasonRequest } from "@colijnit/transactionapi/build/model/resolve-header-pending-reason-request.bo";
15
+ import { PurchasePortalLine } from "@colijnit/transactionapi/build/model/purchase-portal-line.bo";
16
+ import { DocDeliveryBatch } from "@colijnit/transactionapi/build/model/doc-delivery-batch.bo";
15
17
  import * as i0 from "@angular/core";
16
18
  import * as i1 from "./dialog.service";
17
19
  import * as i2 from "./options.service";
@@ -29,6 +31,8 @@ export class PendingReasonService {
29
31
  this.invoiceAddressSameAsDelivery = true;
30
32
  this.currentTransaction = new TransactionInfoResponse();
31
33
  this.relation = new CustomerFullObject();
34
+ this.purchasePortalLine = new PurchasePortalLine();
35
+ this.docDeliveryBatch = new DocDeliveryBatch();
32
36
  this.articleAmount = 0;
33
37
  }
34
38
  init(options) {
@@ -211,7 +215,7 @@ export class PendingReasonService {
211
215
  }
212
216
  _showReasonDialog(reason) {
213
217
  return __awaiter(this, void 0, void 0, function* () {
214
- this.dialogService.showInformation(reason);
218
+ return this.dialogService.showInformation(reason);
215
219
  });
216
220
  }
217
221
  _setAmount() {
@@ -240,4 +244,4 @@ PendingReasonService.ctorParameters = () => [
240
244
  { type: TransactionConnectorService },
241
245
  { type: ArticleConnectorService }
242
246
  ];
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1yZWFzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9wZW5kaW5nLXJlYXNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRTFHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRy9GLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNuRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDeEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXBFLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLCtFQUErRSxDQUFDOzs7Ozs7QUFPaEksTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUNZLGFBQTRCLEVBQzVCLE9BQXVCLEVBQ3ZCLFNBQXNDLEVBQ3RDLGdCQUF5QztRQUh6QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2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d0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2lCQUM3QyxJQUFJLENBQUMsQ0FBQyxRQUFpQyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQ0YsQ0FBQztRQUNOLENBQUM7S0FBQTs7OztZQXpNRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVZPLGFBQWE7WUFOYixjQUFjO1lBQ2QsMkJBQTJCO1lBTzNCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7TGluZU9wZXJhdGlvblN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtQZW5kaW5nUmVhc29uVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3BlbmRpbmctcmVhc29uLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdFwiO1xyXG5pbXBvcnQge09wdGlvbnNTZXJ2aWNlfSBmcm9tIFwiLi9vcHRpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1saW5lLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24tc3RhdHVzLmVudW1cIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge1Jlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZUNvbm5lY3RvclNlcnZpY2V9IGZyb20gXCIuL2FydGljbGUtY29ubmVjdG9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtIZWFkZXJPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvaGVhZGVyLW9wZXJhdGlvbi1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1oZWFkZXItcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWMuYm9cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVuZGluZ1JlYXNvblNlcnZpY2Uge1xyXG4gIHB1YmxpYyBsb2dvdXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblVwZGF0ZWQ6IEJlaGF2aW9yU3ViamVjdDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPih1bmRlZmluZWQpO1xyXG5cclxuICBwdWJsaWMgYXBwbGljYXRpb25Vc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBjdXJyZW50VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gbmV3IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKCk7XHJcbiAgcHVibGljIHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlQW1vdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNvbm5lY3RvcjogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGFydGljbGVDb25uZWN0b3I6IEFydGljbGVDb25uZWN0b3JTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaW5pdChvcHRpb25zOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMub3B0aW9ucy5pbml0aWFsaXplKG9wdGlvbnMpO1xyXG4gICAgdGhpcy5jb25uZWN0b3IuY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZDogc3RyaW5nLCByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5jb25uZWN0b3IuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkKVxyXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmIChyZW1lbWJlcikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVIZWFkZXJPcGVyYXRpb25TdGF0dXNlcyhyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICghcmVzcG9uc2UuaGVhZGVyT3BlcmF0aW9uU3RhdHVzZXMgfHwgcmVzcG9uc2UuaGVhZGVyT3BlcmF0aW9uU3RhdHVzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0YXR1czogSGVhZGVyT3BlcmF0aW9uU3RhdHVzID0gcmVzcG9uc2UuaGVhZGVyT3BlcmF0aW9uU3RhdHVzZXNbaV07XHJcbiAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGF3YWl0IHRoaXMuX2hhbmRsZUhlYWRlck9wZXJhdGlvblN0YXR1cyhzdGF0dXMsIHJlc3BvbnNlLnRyYW5zYWN0aW9uSW5mbyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbih2YWx1ZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY3VycmVudFRyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZXRBbW91bnQoKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25VcGRhdGVkLm5leHQodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGluaXRpYWxpemVUcmFuc2FjdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5yZWxhdGlvbikge1xyXG4gICAgICB0aGlzLnJlbGF0aW9uID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnJlbGF0aW9uLnJlbGF0aW9uSWQpIHtcclxuICAgICAgdGhpcy5yZWxhdGlvbi5yZWxhdGlvblN0YXR1cyA9IFJlbGF0aW9uU3RhdHVzLlJlZ3VsYXJDdXN0b21lcjtcclxuICAgICAgdGhpcy5yZWxhdGlvbi5zdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSBcIj1cIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoIXJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcyB8fCByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXMgPSByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXNbaV07XHJcbiAgICAgIGNvbnN0IHRyYW5zTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IHJlc3BvbnNlLnRyYW5zYWN0aW9uTGluZXMuZmluZCh0ID0+IHQubGluZU5yID09PSBzdGF0dXMubGluZU5yKTtcclxuICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgYXdhaXQgdGhpcy5faGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyhzdGF0dXMsIHRyYW5zTGluZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMob3BlcmF0aW9uU3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHN3aXRjaCAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DQU5DRUxMRUQ6XHJcbiAgICAgICAgaWYgKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uID09PSAnVVNFUl9ERUNJU0lPTicpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX2NhbmNlbEFydGljbGUob3BlcmF0aW9uU3RhdHVzLnV1aWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9zaG93UmVhc29uRGlhbG9nKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNPTkZJUk1BVElPTl9ORUVERUQ6XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fY29uZmlybUFjdGlvbih0cmFuc2FjdGlvbkxpbmUudXVpZCwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxyXG4gICAgICAgIHN3aXRjaCAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pIHtcclxuICAgICAgICAgIGNhc2UgXCJMSU5FX05FRURTX0NPTU1JU1NJT05fQ09ERVwiOlxyXG4gICAgICAgICAgICB0aGlzLl9zaG93Q29tbWlzc2lvbkNvZGVEaWFsb2cob3BlcmF0aW9uU3RhdHVzLnV1aWQsIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHRoaXMuX3Nob3dXYXJlaG91c2VEaWFsb2cob3BlcmF0aW9uU3RhdHVzLnV1aWQsIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTjpcclxuICAgICAgICB0aGlzLl9zaG93UmVhc29uRGlhbG9nKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DSEFSQUNURVJJU1RJQ1NfQU5TV0VSX05FRURFRDpcclxuICAgICAgICB0aGlzLl9zaG93Q2hhcmFjdGVyaXN0aWNEaWFsb2cob3BlcmF0aW9uU3RhdHVzLnV1aWQsIG9wZXJhdGlvblN0YXR1cy5jaGFyYWN0ZXJpc3RpYywgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUhlYWRlck9wZXJhdGlvblN0YXR1cyhvcGVyYXRpb25TdGF0dXM6IEhlYWRlck9wZXJhdGlvblN0YXR1cywgdHJhbnNhY3Rpb25JbmZvOiBUcmFuc2FjdGlvbkluZm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHN3aXRjaCAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DQU5DRUxMRUQ6XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fc2hvd1JlYXNvbkRpYWxvZyhvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNPTkZJUk1BVElPTl9ORUVERUQ6XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2NvbmZpcm1IZWFkZXJBY3Rpb24odHJhbnNhY3Rpb25JbmZvLnV1aWQsIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzOiBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXMpO1xyXG4gICAgdGhpcy5yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XHJcbiAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXNlcyhyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZVBlbmRpbmdIZWFkZXJSZWFzb24ocGVuZGluZ0hlYWRlclZhbHVlczogUmVzb2x2ZUhlYWRlclBlbmRpbmdSZWFzb25SZXF1ZXN0KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5yZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihwZW5kaW5nSGVhZGVyVmFsdWVzKTtcclxuICAgIHRoaXMucmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlSGVhZGVyT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbih1dWlkOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KHV1aWQsIHJlYXNvbiwgdHlwZSk7XHJcbiAgICAvLyBjb25zdCBwZW5kaW5nUmVhc29uVGV4dDogc3RyaW5nID0gYXdhaXQgdGhpcy5fZ2V0UGVuZGluZ1JlYXNvblRleHQodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xyXG4gICAgcmVhc29uUmVxdWVzdC5jb25maXJtYXRpb24gPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKCdBY3Rpb24nLCByZWFzb24pO1xyXG4gICAgYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgICAvLyB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dDaGFyYWN0ZXJpc3RpY0RpYWxvZyh1dWlkOiBzdHJpbmcsIGNoYXJhY3RlcmlzdGljczogVHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWMsIHJlYXNvbjogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KHV1aWQsIHJlYXNvbiwgdHlwZSk7XHJcbiAgICByZWFzb25SZXF1ZXN0LnRleHR1YWxVc2VySW5wdXQgPVxyXG4gICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NoYXJhY3RlcmlzdGljcyhcclxuICAgICAgICBjaGFyYWN0ZXJpc3RpY3MucXVlc3Rpb24sIGNoYXJhY3RlcmlzdGljcy50cmFuc2FjdGlvbkxpbmVDaGFyYWN0ZXJpc3RpY0Nob2ljZXMsIGNoYXJhY3RlcmlzdGljcy52YWx1ZSk7XHJcbiAgICBhd2FpdCB0aGlzLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihyZWFzb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dXYXJlaG91c2VEaWFsb2codXVpZDogc3RyaW5nLCByZWFzb246IHN0cmluZywgdHlwZTogUGVuZGluZ1JlYXNvblR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlYXNvblJlcXVlc3QgPSBuZXcgUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgcmVhc29uUmVxdWVzdC53YXJlaG91c2VOciA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93V2FyZWhvdXNlKCk7XHJcbiAgICBhd2FpdCB0aGlzLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihyZWFzb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dDb21taXNzaW9uQ29kZURpYWxvZyh1dWlkOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KHV1aWQsIHJlYXNvbiwgdHlwZSk7XHJcbiAgICByZWFzb25SZXF1ZXN0LmNvbW1pc3Npb25Db2RlID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDb21taXNzaW9uQ29kZSgpO1xyXG4gICAgYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jb25maXJtSGVhZGVyQWN0aW9uKHV1aWQ6IHN0cmluZywgcmVhc29uOiBzdHJpbmcsIHR5cGU6IFBlbmRpbmdSZWFzb25UeXBlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCByZWFzb25SZXF1ZXN0ID0gbmV3IFJlc29sdmVIZWFkZXJQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgLy8gY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcclxuICAgIHJlYXNvblJlcXVlc3QuY29uZmlybWF0aW9uID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dZZXNObygnQWN0aW9uJywgcmVhc29uKTtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLnJlc29sdmVQZW5kaW5nSGVhZGVyUmVhc29uKHJlYXNvblJlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfc2hvd1JlYXNvbkRpYWxvZyhyZWFzb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dJbmZvcm1hdGlvbihyZWFzb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0QW1vdW50KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uICYmIHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMpIHtcclxuICAgICAgdGhpcy5hcnRpY2xlQW1vdW50ID0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maWx0ZXIodCA9PiB0LmxpbmVUeXBlID09PSBUcmFuc2FjdGlvbkxpbmVUeXBlLkFydGljbGVMaW5lKS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgYXN5bmMgX2NhbmNlbEFydGljbGUodXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZSh1dWlkLCBmYWxzZSlcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1yZWFzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9wZW5kaW5nLXJlYXNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRTFHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRy9GLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUNuRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDeEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQ3ZILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXBFLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLCtFQUErRSxDQUFDO0FBR2hJLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDOzs7Ozs7QUFLNUYsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixZQUNZLGFBQTRCLEVBQzVC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Q0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUNsSTtJQUNILENBQUM7SUFDYSxjQUFjLENBQUMsSUFBWTs7WUFDdkMsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztpQkFDN0MsSUFBSSxDQUFDLENBQUMsUUFBaUMsRUFBRSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUMsQ0FBQyxDQUNGLENBQUM7UUFDTixDQUFDO0tBQUE7Ozs7WUEzTUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFaTyxhQUFhO1lBTmIsY0FBYztZQUNkLDJCQUEyQjtZQU8zQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XHJcbmltcG9ydCB7UGVuZGluZ1JlYXNvblR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9wZW5kaW5nLXJlYXNvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4vb3B0aW9ucy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZVwiO1xyXG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtSZWxhdGlvblN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLXN0YXR1cy5lbnVtXCI7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSBcIi4vZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Jlc29sdmUtcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVDb25uZWN0b3JTZXJ2aWNlfSBmcm9tIFwiLi9hcnRpY2xlLWNvbm5lY3Rvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SGVhZGVyT3BlcmF0aW9uU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2hlYWRlci1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XHJcbmltcG9ydCB7UmVzb2x2ZUhlYWRlclBlbmRpbmdSZWFzb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Jlc29sdmUtaGVhZGVyLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljLmJvXCI7XHJcbmltcG9ydCB7UHVyY2hhc2VQb3J0YWxMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXBvcnRhbC1saW5lLmJvXCI7XHJcbmltcG9ydCB7RG9jRGVsaXZlcnlCYXRjaH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kb2MtZGVsaXZlcnktYmF0Y2guYm9cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVuZGluZ1JlYXNvblNlcnZpY2Uge1xyXG4gIHB1YmxpYyBsb2dvdXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblVwZGF0ZWQ6IEJlaGF2aW9yU3ViamVjdDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPih1bmRlZmluZWQpO1xyXG5cclxuICBwdWJsaWMgYXBwbGljYXRpb25Vc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBjdXJyZW50VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gbmV3IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKCk7XHJcbiAgcHVibGljIHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcbiAgcHVibGljIHB1cmNoYXNlUG9ydGFsTGluZTogUHVyY2hhc2VQb3J0YWxMaW5lID0gbmV3IFB1cmNoYXNlUG9ydGFsTGluZSgpO1xyXG4gIHB1YmxpYyBkb2NEZWxpdmVyeUJhdGNoOiBEb2NEZWxpdmVyeUJhdGNoID0gbmV3IERvY0RlbGl2ZXJ5QmF0Y2goKVxyXG5cclxuICBwdWJsaWMgYXJ0aWNsZUFtb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjb25uZWN0b3I6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBhcnRpY2xlQ29ubmVjdG9yOiBBcnRpY2xlQ29ubmVjdG9yU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluaXQob3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLm9wdGlvbnMuaW5pdGlhbGl6ZShvcHRpb25zKTtcclxuICAgIHRoaXMuY29ubmVjdG9yLmNvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQ6IHN0cmluZywgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHRoaXMuY29ubmVjdG9yLmNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZClcclxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVtZW1iZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlSGVhZGVyT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoIXJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzIHx8IHJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGxldCBzdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCByZXNwb25zZS5oZWFkZXJPcGVyYXRpb25TdGF0dXNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzdGF0dXM6IEhlYWRlck9wZXJhdGlvblN0YXR1cyA9IHJlc3BvbnNlLmhlYWRlck9wZXJhdGlvblN0YXR1c2VzW2ldO1xyXG4gICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBhd2FpdCB0aGlzLl9oYW5kbGVIZWFkZXJPcGVyYXRpb25TdGF0dXMoc3RhdHVzLCByZXNwb25zZS50cmFuc2FjdGlvbkluZm8pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0QW1vdW50KCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uVXBkYXRlZC5uZXh0KHRoaXMuY3VycmVudFRyYW5zYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBpbml0aWFsaXplVHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMucmVsYXRpb24pIHtcclxuICAgICAgdGhpcy5yZWxhdGlvbiA9IG5ldyBDdXN0b21lckZ1bGxPYmplY3QoKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5yZWxhdGlvbi5yZWxhdGlvbklkKSB7XHJcbiAgICAgIHRoaXMucmVsYXRpb24ucmVsYXRpb25TdGF0dXMgPSBSZWxhdGlvblN0YXR1cy5SZWd1bGFyQ3VzdG9tZXI7XHJcbiAgICAgIHRoaXMucmVsYXRpb24uc3RhcnREYXRlID0gbmV3IERhdGUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyID0gXCI9XCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1c2VzKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKCFyZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMgfHwgcmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGxldCBzdWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3Qgc3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzID0gcmVzcG9uc2UubGluZU9wZXJhdGlvblN0YXR1c2VzW2ldO1xyXG4gICAgICBjb25zdCB0cmFuc0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSByZXNwb25zZS50cmFuc2FjdGlvbkxpbmVzLmZpbmQodCA9PiB0LmxpbmVOciA9PT0gc3RhdHVzLmxpbmVOcik7XHJcbiAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGF3YWl0IHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoc3RhdHVzLCB0cmFuc0xpbmUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKG9wZXJhdGlvblN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cywgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBzd2l0Y2ggKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSkge1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkFCT1JURUQ6XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxyXG4gICAgICAgIGlmIChvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiA9PT0gJ1VTRVJfREVDSVNJT04nKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLl9jYW5jZWxBcnRpY2xlKG9wZXJhdGlvblN0YXR1cy51dWlkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fc2hvd1JlYXNvbkRpYWxvZyhvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxyXG4gICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24odHJhbnNhY3Rpb25MaW5lLnV1aWQsIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5JTlZBTElEX0xPR0lTVElDUzpcclxuICAgICAgICBzd2l0Y2ggKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKSB7XHJcbiAgICAgICAgICBjYXNlIFwiTElORV9ORUVEU19DT01NSVNTSU9OX0NPREVcIjpcclxuICAgICAgICAgICAgdGhpcy5fc2hvd0NvbW1pc3Npb25Db2RlRGlhbG9nKG9wZXJhdGlvblN0YXR1cy51dWlkLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICB0aGlzLl9zaG93V2FyZWhvdXNlRGlhbG9nKG9wZXJhdGlvblN0YXR1cy51dWlkLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTl9DUklUSUNBTF9ESVNDT05USU5VQVRJT046XHJcbiAgICAgICAgdGhpcy5fc2hvd1JlYXNvbkRpYWxvZyhvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0hBUkFDVEVSSVNUSUNTX0FOU1dFUl9ORUVERUQ6XHJcbiAgICAgICAgdGhpcy5fc2hvd0NoYXJhY3RlcmlzdGljRGlhbG9nKG9wZXJhdGlvblN0YXR1cy51dWlkLCBvcGVyYXRpb25TdGF0dXMuY2hhcmFjdGVyaXN0aWMsIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVIZWFkZXJPcGVyYXRpb25TdGF0dXMob3BlcmF0aW9uU3RhdHVzOiBIZWFkZXJPcGVyYXRpb25TdGF0dXMsIHRyYW5zYWN0aW9uSW5mbzogVHJhbnNhY3Rpb25JbmZvKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBzd2l0Y2ggKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSkge1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkFCT1JURUQ6XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxyXG4gICAgICAgIGF3YWl0IHRoaXMuX3Nob3dSZWFzb25EaWFsb2cob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25maXJtSGVhZGVyQWN0aW9uKHRyYW5zYWN0aW9uSW5mby51dWlkLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05FOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlczogUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzKTtcclxuICAgIHRoaXMucmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlc29sdmVQZW5kaW5nSGVhZGVyUmVhc29uKHBlbmRpbmdIZWFkZXJWYWx1ZXM6IFJlc29sdmVIZWFkZXJQZW5kaW5nUmVhc29uUmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdIZWFkZXJSZWFzb24ocGVuZGluZ0hlYWRlclZhbHVlcyk7XHJcbiAgICB0aGlzLnJlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZUhlYWRlck9wZXJhdGlvblN0YXR1c2VzKHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2NvbmZpcm1BY3Rpb24odXVpZDogc3RyaW5nLCByZWFzb246IHN0cmluZywgdHlwZTogUGVuZGluZ1JlYXNvblR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlYXNvblJlcXVlc3QgPSBuZXcgUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgLy8gY29uc3QgcGVuZGluZ1JlYXNvblRleHQ6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2dldFBlbmRpbmdSZWFzb25UZXh0KHRoaXMuY3VycmVudE9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcclxuICAgIHJlYXNvblJlcXVlc3QuY29uZmlybWF0aW9uID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dZZXNObygnQWN0aW9uJywgcmVhc29uKTtcclxuICAgIGF3YWl0IHRoaXMucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHJlYXNvblJlcXVlc3QpO1xyXG4gICAgLy8gdGhpcy5faGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cygpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9zaG93Q2hhcmFjdGVyaXN0aWNEaWFsb2codXVpZDogc3RyaW5nLCBjaGFyYWN0ZXJpc3RpY3M6IFRyYW5zYWN0aW9uTGluZUNoYXJhY3RlcmlzdGljLCByZWFzb246IHN0cmluZywgdHlwZTogUGVuZGluZ1JlYXNvblR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlYXNvblJlcXVlc3QgPSBuZXcgUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgcmVhc29uUmVxdWVzdC50ZXh0dWFsVXNlcklucHV0ID1cclxuICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDaGFyYWN0ZXJpc3RpY3MoXHJcbiAgICAgICAgY2hhcmFjdGVyaXN0aWNzLnF1ZXN0aW9uLCBjaGFyYWN0ZXJpc3RpY3MudHJhbnNhY3Rpb25MaW5lQ2hhcmFjdGVyaXN0aWNDaG9pY2VzLCBjaGFyYWN0ZXJpc3RpY3MudmFsdWUpO1xyXG4gICAgYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9zaG93V2FyZWhvdXNlRGlhbG9nKHV1aWQ6IHN0cmluZywgcmVhc29uOiBzdHJpbmcsIHR5cGU6IFBlbmRpbmdSZWFzb25UeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZWFzb25SZXF1ZXN0ID0gbmV3IFJlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3QodXVpZCwgcmVhc29uLCB0eXBlKTtcclxuICAgIHJlYXNvblJlcXVlc3Qud2FyZWhvdXNlTnIgPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1dhcmVob3VzZSgpO1xyXG4gICAgYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9zaG93Q29tbWlzc2lvbkNvZGVEaWFsb2codXVpZDogc3RyaW5nLCByZWFzb246IHN0cmluZywgdHlwZTogUGVuZGluZ1JlYXNvblR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlYXNvblJlcXVlc3QgPSBuZXcgUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCh1dWlkLCByZWFzb24sIHR5cGUpO1xyXG4gICAgcmVhc29uUmVxdWVzdC5jb21taXNzaW9uQ29kZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q29tbWlzc2lvbkNvZGUoKTtcclxuICAgIGF3YWl0IHRoaXMucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHJlYXNvblJlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfY29uZmlybUhlYWRlckFjdGlvbih1dWlkOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3QodXVpZCwgcmVhc29uLCB0eXBlKTtcclxuICAgIC8vIGNvbnN0IHBlbmRpbmdSZWFzb25UZXh0OiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9nZXRQZW5kaW5nUmVhc29uVGV4dCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XHJcbiAgICByZWFzb25SZXF1ZXN0LmNvbmZpcm1hdGlvbiA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ0FjdGlvbicsIHJlYXNvbik7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihyZWFzb25SZXF1ZXN0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dSZWFzb25EaWFsb2cocmVhc29uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0luZm9ybWF0aW9uKHJlYXNvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRBbW91bnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24gJiYgdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcykge1xyXG4gICAgICB0aGlzLmFydGljbGVBbW91bnQgPSB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZpbHRlcih0ID0+IHQubGluZVR5cGUgPT09IFRyYW5zYWN0aW9uTGluZVR5cGUuQXJ0aWNsZUxpbmUpLmxlbmd0aDtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBhc3luYyBfY2FuY2VsQXJ0aWNsZSh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKHV1aWQsIGZhbHNlKVxyXG4gICAgICAudGhlbigocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==