@colijnit/transaction 257.1.22 → 257.1.24

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 (30) hide show
  1. package/bundles/colijnit-transaction.umd.js +705 -602
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +501 -501
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +502 -502
  6. package/esm2015/lib/component/delivery-planning/delivery-planning.component.js +7 -1
  7. package/esm2015/lib/component/delivery-planning/service/delivery-planning.service.js +13 -5
  8. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.js +114 -7
  9. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.module.js +5 -3
  10. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/component/transaction-line-warehouse-cc-interbranch.component.js +2 -8
  11. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-picking-button-bar-button.component.js +1 -1
  12. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +2 -2
  13. package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +5 -2
  14. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.module.js +6 -3
  15. package/esm2015/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.js +18 -11
  16. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +3 -5
  17. package/esm2015/lib/service/transaction-base.service.js +2 -2
  18. package/esm2015/lib/service/transaction-event.service.js +2 -2
  19. package/esm2015/lib/service/transaction.service.js +2 -13
  20. package/esm2015/lib/transaction-version.js +3 -3
  21. package/fesm2015/colijnit-transaction.js +226 -113
  22. package/fesm2015/colijnit-transaction.js.map +1 -1
  23. package/lib/component/delivery-planning/delivery-planning.component.d.ts +3 -2
  24. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.d.ts +22 -1
  25. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_layout.scss +34 -4
  26. package/lib/component/transaction-line-checkbox-list/style/_layout.scss +3 -0
  27. package/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.d.ts +2 -1
  28. package/lib/service/transaction-event.service.d.ts +4 -1
  29. package/lib/service/transaction.service.d.ts +0 -6
  30. package/package.json +2 -2
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
2
  import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
3
+ import { TransactionTypeCategory } from '../../enum/transaction-type-category.enum';
3
4
  import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '@colijnit/corecomponents_v12';
4
5
  import { TransactionLineBaseComponent } from '../core/base/transaction-line-base.component';
5
6
  export class TransactionLineStatusbarComponent extends TransactionLineBaseComponent {
@@ -35,10 +36,10 @@ export class TransactionLineStatusbarComponent extends TransactionLineBaseCompon
35
36
  return;
36
37
  }
37
38
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarBT).immediatelyVisible()) {
38
- this.statusbarData.push(this.getStatusbarLine('ORDERED', this.transactionLine.commissionCode === '0' ? this.lineQuantityOrdered : this.transactionLine.amount)); //Besteld
39
+ this.statusbarData.push(this.getStatusbarLine('ORDERED', this.transactionLine.commissionCode === '0' ? this.lineQuantityOrdered : this.transactionLine.amount, TransactionTypeCategory.SalesOrderOverview)); //Besteld
39
40
  }
40
41
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarTG).immediatelyVisible()) {
41
- this.statusbarData.push(this.getStatusbarLine('ALLOCATED', this.lineQuantityAllocated)); //Toegewezen
42
+ this.statusbarData.push(this.getStatusbarLine('ALLOCATED', this.lineQuantityAllocated, TransactionTypeCategory.SalesOrderAllocation)); //Toegewezen
42
43
  }
43
44
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarPA).immediatelyVisible()) {
44
45
  this.statusbarData.push(this.getStatusbarLine('PLANNING_REQUESTED', this.lineQuantityPlanningRequested)); //Voorkeur aangevraagd
@@ -47,19 +48,19 @@ export class TransactionLineStatusbarComponent extends TransactionLineBaseCompon
47
48
  this.statusbarData.push(this.getStatusbarLine('PLANNING_PREFERRED_DATE_ENTERED', this.lineQuantityPlanningPreferredDateEntered)); //Voorkeur bekend
48
49
  }
49
50
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarTP).immediatelyVisible()) {
50
- this.statusbarData.push(this.getStatusbarLine('TO_BE_PICKED', this.lineQuantityToBePicked)); //Te picken
51
+ this.statusbarData.push(this.getStatusbarLine('TO_BE_PICKED', this.lineQuantityToBePicked, TransactionTypeCategory.SalesOrderToBePicked)); //Te picken
51
52
  }
52
53
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarGT).immediatelyVisible()) {
53
- this.statusbarData.push(this.getStatusbarLine('PICKED', this.lineQuantityPicked)); //Gepickt
54
+ this.statusbarData.push(this.getStatusbarLine('PICKED', this.lineQuantityPicked, TransactionTypeCategory.SalesOrderPicked)); //Gepickt
54
55
  }
55
56
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarGP).immediatelyVisible()) {
56
- this.statusbarData.push(this.getStatusbarLine('PLANNED', this.lineQuantityPlanningFinal)); //Gepland
57
+ this.statusbarData.push(this.getStatusbarLine('PLANNED', this.lineQuantityPlanningFinal, TransactionTypeCategory.SalesOrderPlanning)); //Gepland
57
58
  }
58
59
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarGL).immediatelyVisible()) {
59
- this.statusbarData.push(this.getStatusbarLine('DELIVERED', this.lineQuantityDelivered)); //Geleverd
60
+ this.statusbarData.push(this.getStatusbarLine('DELIVERED', this.lineQuantityDelivered, TransactionTypeCategory.SalesOrderDeliveryNote)); //Geleverd
60
61
  }
61
62
  if (this.screenConfigService.getObjectConfigurationFor(this._configNames.statusBarGF).immediatelyVisible()) {
62
- this.statusbarData.push(this.getStatusbarLine('INVOICED', this.lineQuantityInvoiced)); //Gefactureerd
63
+ this.statusbarData.push(this.getStatusbarLine('INVOICED', this.lineQuantityInvoiced, TransactionTypeCategory.SalesOrderInvoice)); //Gefactureerd
63
64
  }
64
65
  this.detectChanges();
65
66
  }
@@ -85,11 +86,12 @@ export class TransactionLineStatusbarComponent extends TransactionLineBaseCompon
85
86
  }
86
87
  this.detectChanges();
87
88
  }
88
- getStatusbarLine(label, property) {
89
+ getStatusbarLine(label, property, category) {
89
90
  return {
90
91
  label: this.dictionaryService.get(label),
91
92
  percentage: this.calculatePercentage(property, this.transactionLine ? this.transactionLine.amount : 0),
92
- count: property
93
+ count: property,
94
+ category: category
93
95
  };
94
96
  }
95
97
  calculatePercentage(amount, totalAmount) {
@@ -98,6 +100,11 @@ export class TransactionLineStatusbarComponent extends TransactionLineBaseCompon
98
100
  }
99
101
  return Math.floor((amount / totalAmount) * 100);
100
102
  }
103
+ handleStatusClicked(label) {
104
+ if (label) {
105
+ this.transactionEventService.activeRubricChange.next({ category: label, sidepanel: true });
106
+ }
107
+ }
101
108
  // protected transactionKindChanged() {
102
109
  // super.transactionKindChanged();
103
110
  // this.statusbarData.length = 0;
@@ -124,7 +131,7 @@ TransactionLineStatusbarComponent.decorators = [
124
131
  { type: Component, args: [{
125
132
  selector: 'co-transaction-line-statusbar',
126
133
  template: `
127
- <co-statusbar [statusbarData]="statusbarData" [focusedStatusIndex]="focusedStatusIndex"></co-statusbar>
134
+ <co-statusbar [statusbarData]="statusbarData" [focusedStatusIndex]="focusedStatusIndex" (statusClicked)="handleStatusClicked($event)"></co-statusbar>
128
135
  `,
129
136
  providers: [{
130
137
  provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
@@ -139,4 +146,4 @@ TransactionLineStatusbarComponent.propDecorators = {
139
146
  activeCategory: [{ type: Input }],
140
147
  showClass: [{ type: HostBinding, args: ['class.co-transaction-line-statusbar',] }]
141
148
  };
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIvdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBRzFGLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRTVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBYzFGLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSw0QkFBNEI7SUFabkY7O1FBK0JTLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFMUIsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO0lBa0g3QyxDQUFDO0lBcklDLElBQ1csV0FBVyxDQUFDLEtBQXdCO1FBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUE4QjtRQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBV00sZ0JBQWdCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFB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QUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3hILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs7WUFsSkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwrQkFBK0I7Z0JBQ3pDLFFBQVEsRUFBRTs7R0FFVDtnQkFDRCxTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO3FCQUNqRSxDQUFDO2dCQUNGLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7OzBCQUdFLEtBQUs7NkJBTUwsS0FBSzt3QkFVTCxXQUFXLFNBQUMscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdGF0dXNiYXJEYXRhfSBmcm9tICdAY29saWpuaXQvc2hhcmVkY29tcG9uZW50cyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7U3RhdHVzQmFyQ2ZnTmFtZXN9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9zdGF0dXMtYmFyLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tbGluZS1iYXNlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8Y28tc3RhdHVzYmFyIFtzdGF0dXNiYXJEYXRhXT1cInN0YXR1c2JhckRhdGFcIiBbZm9jdXNlZFN0YXR1c0luZGV4XT1cImZvY3VzZWRTdGF0dXNJbmRleFwiPjwvY28tc3RhdHVzYmFyPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyYW5zYWN0aW9uTGluZVN0YXR1c2JhckNvbXBvbmVudClcclxuICB9XSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVTdGF0dXNiYXJDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkxpbmVCYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNvbmZpZ05hbWVzKHZhbHVlOiBTdGF0dXNCYXJDZmdOYW1lcykge1xyXG4gICAgdGhpcy5fY29uZmlnTmFtZXMgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0U3RhdHVzYmFyRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2ZUNhdGVnb3J5KHZhbHVlOiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ2F0ZWdvcnkgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3NldEZvY3VzZWRTdGF0dXNCbG9jaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhY3RpdmVDYXRlZ29yeSgpOiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyJylcclxuICBwdWJsaWMgc2hvd0NsYXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIHN0YXR1c2JhckRhdGE6IFN0YXR1c2JhckRhdGFbXSA9IFtdO1xyXG4gIHB1YmxpYyBmb2N1c2VkU3RhdHVzSW5kZXg6IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBfYWN0aXZlQ2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG4gIHByaXZhdGUgX2NvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcztcclxuXHJcbiAgcHVibGljIHNldFN0YXR1c2JhckRhdGEoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUudXVpZCAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cyAmJiB0aGlzLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQpIHtcclxuICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZCA9PT0gVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXR1c2JhckRhdGFGb3JQdXJjaGFzZU9yZGVyKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXNiYXJkYXRhRm9yU2FsZXNPcmRlcigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0U3RhdHVzYmFyZGF0YUZvclNhbGVzT3JkZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c2JhckRhdGEgPSBbXTtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbkxpbmUgfHwgIXRoaXMuX2NvbmZpZ05hbWVzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJCVCkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdPUkRFUkVEJywgdGhpcy50cmFuc2FjdGlvbkxpbmUuY29tbWlzc2lvbkNvZGUgPT09ICcwJyA/IHRoaXMubGluZVF1YW50aXR5T3JkZXJlZCA6IHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudCkpOyAvL0Jlc3RlbGRcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJURykuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdBTExPQ0FURUQnLCB0aGlzLmxpbmVRdWFudGl0eUFsbG9jYXRlZCkpOyAvL1RvZWdld2V6ZW5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJQQSkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdQTEFOTklOR19SRVFVRVNURUQnLCB0aGlzLmxpbmVRdWFudGl0eVBsYW5uaW5nUmVxdWVzdGVkKSk7IC8vVm9vcmtldXIgYWFuZ2V2cmFhZ2RcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJQVikuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdQTEFOTklOR19QUkVGRVJSRURfREFURV9FTlRFUkVEJywgdGhpcy5saW5lUXVhbnRpdHlQbGFubmluZ1ByZWZlcnJlZERhdGVFbnRlcmVkKSk7IC8vVm9vcmtldXIgYmVrZW5kXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyVFApLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnVE9fQkVfUElDS0VEJywgdGhpcy5saW5lUXVhbnRpdHlUb0JlUGlja2VkKSk7IC8vVGUgcGlja2VuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyR1QpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnUElDS0VEJywgdGhpcy5saW5lUXVhbnRpdHlQaWNrZWQpKTsgLy9HZXBpY2t0XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyR1ApLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnUExBTk5FRCcsIHRoaXMubGluZVF1YW50aXR5UGxhbm5pbmdGaW5hbCkpOyAvL0dlcGxhbmRcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJHTCkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdERUxJVkVSRUQnLCB0aGlzLmxpbmVRdWFudGl0eURlbGl2ZXJlZCkpOyAvL0dlbGV2ZXJkXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyR0YpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnSU5WT0lDRUQnLCB0aGlzLmxpbmVRdWFudGl0eUludm9pY2VkKSk7IC8vR2VmYWN0dXJlZXJkXHJcbiAgICB9XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTdGF0dXNiYXJEYXRhRm9yUHVyY2hhc2VPcmRlcigpIHtcclxuICAgIHRoaXMuc3RhdHVzYmFyRGF0YSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uTGluZSB8fCAhdGhpcy5fY29uZmlnTmFtZXMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuX2NvbmZpZ05hbWVzLnN0YXR1c0JhcklCKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICB0aGlzLnN0YXR1c2JhckRhdGEucHVzaCh0aGlzLmdldFN0YXR1c2JhckxpbmUoJ0NPTkZJUk1FRCcsIHRoaXMubGluZVF1YW50aXR5UHVyY2hhc2VDb25maXJtZWQpKTsgLy9iZXZlc3RpZ2RcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJOVCkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdUUkFOU1BPUlRfTk9USUZJQ0FUSU9OJywgdGhpcy5saW5lUXVhbnRpdHlUcmFuc3BvcnROb3RpZmljYXRpb24pKTsgLy9UcmFuc3BvcnQgbm90aWZpY2F0aWVcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJCTikuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdJVEVNX0FDQ0VQVEVEX05PVF9QUk9DRVNTRUQnLCB0aGlzLmxpbmVRdWFudGl0eVJlY2VpdmVkVW5wcm9jZXNzZWQpKTsgLy8gQmlubmVuZ2VtZWxkLCBuaWV0IHZlcndlcmt0XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyQkcpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnSVRFTV9BQ0NFUFRFRCcsIHRoaXMubGluZVF1YW50aXR5UmVjZWl2ZWQpKTsgLy8gQmlubmVuZ2VtZWxkXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyRkMpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnSU5WT0lDRV9DSEVDSycsIHRoaXMubGluZVF1YW50aXR5SW52b2ljZUNvbnRyb2wpKTsgLy9GYWN0dXVyIGNvbnRyb2xlXHJcbiAgICB9XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGF0dXNiYXJMaW5lKGxhYmVsLCBwcm9wZXJ0eSk6IFN0YXR1c2JhckRhdGEge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbGFiZWw6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KGxhYmVsKSxcclxuICAgICAgcGVyY2VudGFnZTogdGhpcy5jYWxjdWxhdGVQZXJjZW50YWdlKHByb3BlcnR5LCB0aGlzLnRyYW5zYWN0aW9uTGluZSA/IHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudCA6IDApLFxyXG4gICAgICBjb3VudDogcHJvcGVydHlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsY3VsYXRlUGVyY2VudGFnZShhbW91bnQ6IG51bWJlciwgdG90YWxBbW91bnQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBpZiAoYW1vdW50ID09PSAwIHx8IHRvdGFsQW1vdW50ID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIE1hdGguZmxvb3IoKGFtb3VudCAvIHRvdGFsQW1vdW50KSAqIDEwMCk7XHJcbiAgfVxyXG5cclxuICAvLyBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25LaW5kQ2hhbmdlZCgpIHtcclxuICAvLyAgICAgc3VwZXIudHJhbnNhY3Rpb25LaW5kQ2hhbmdlZCgpO1xyXG4gIC8vICAgICB0aGlzLnN0YXR1c2JhckRhdGEubGVuZ3RoID0gMDtcclxuICAvLyAgICAgdGhpcy5zZXRTdGF0dXNiYXJEYXRhKCk7XHJcbiAgLy8gfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25MaW5lU2V0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25MaW5lU2V0KCk7XHJcbiAgICB0aGlzLnNldFN0YXR1c2JhckRhdGEoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvbkluZm9TZXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgIHRoaXMuc2V0U3RhdHVzYmFyRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZpc2liaWxpdHlTZXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci52aXNpYmlsaXR5U2V0KCk7XHJcbiAgICB0aGlzLnNldFN0YXR1c2JhckRhdGEoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldEZvY3VzZWRTdGF0dXNCbG9jaygpIHtcclxuICAgIHRoaXMuZm9jdXNlZFN0YXR1c0luZGV4ID0gdGhpcy5hY3RpdmVDYXRlZ29yeSA/IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEZvY3VzU3RhdHVzSW5kZXgodGhpcy5hY3RpdmVDYXRlZ29yeSkgOiBudWxsO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIvdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBRWxGLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRTVGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBZTFGLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSw0QkFBNEI7SUFabkY7O1FBK0JTLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFFMUIsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO0lBeUg3QyxDQUFDO0lBNUlDLElBQ1csV0FBVyxDQUFDLEtBQXdCO1FBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUE4QjtRQUN0RCxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBV00sZ0JBQWdC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cmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1N0YXR1c2JhckRhdGF9IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRjb21wb25lbnRzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtTdGF0dXNCYXJDZmdOYW1lc30gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3N0YXR1cy1iYXItY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUJhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1saW5lLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3RyYW5zYWN0aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxjby1zdGF0dXNiYXIgW3N0YXR1c2JhckRhdGFdPVwic3RhdHVzYmFyRGF0YVwiIFtmb2N1c2VkU3RhdHVzSW5kZXhdPVwiZm9jdXNlZFN0YXR1c0luZGV4XCIgKHN0YXR1c0NsaWNrZWQpPVwiaGFuZGxlU3RhdHVzQ2xpY2tlZCgkZXZlbnQpXCI+PC9jby1zdGF0dXNiYXI+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJhbnNhY3Rpb25MaW5lU3RhdHVzYmFyQ29tcG9uZW50KVxyXG4gIH1dLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZVN0YXR1c2JhckNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uTGluZUJhc2VDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29uZmlnTmFtZXModmFsdWU6IFN0YXR1c0JhckNmZ05hbWVzKSB7XHJcbiAgICB0aGlzLl9jb25maWdOYW1lcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5zZXRTdGF0dXNiYXJEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYWN0aXZlQ2F0ZWdvcnkodmFsdWU6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KSB7XHJcbiAgICB0aGlzLl9hY3RpdmVDYXRlZ29yeSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0Rm9jdXNlZFN0YXR1c0Jsb2NrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNhdGVnb3J5KCk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXInKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgc3RhdHVzYmFyRGF0YTogU3RhdHVzYmFyRGF0YVtdID0gW107XHJcbiAgcHVibGljIGZvY3VzZWRTdGF0dXNJbmRleDogbnVtYmVyO1xyXG5cclxuICBwcml2YXRlIF9hY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHJpdmF0ZSBfY29uZmlnTmFtZXM6IFN0YXR1c0JhckNmZ05hbWVzO1xyXG5cclxuICBwdWJsaWMgc2V0U3RhdHVzYmFyRGF0YSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTGluZSAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzICYmIHRoaXMudHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZCkge1xyXG4gICAgICBpZiAodGhpcy50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlcikge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzYmFyRGF0YUZvclB1cmNoYXNlT3JkZXIoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFN0YXR1c2JhcmRhdGFGb3JTYWxlc09yZGVyKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTdGF0dXNiYXJkYXRhRm9yU2FsZXNPcmRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzYmFyRGF0YSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uTGluZSB8fCAhdGhpcy5fY29uZmlnTmFtZXMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuX2NvbmZpZ05hbWVzLnN0YXR1c0JhckJUKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICB0aGlzLnN0YXR1c2JhckRhdGEucHVzaCh0aGlzLmdldFN0YXR1c2JhckxpbmUoJ09SREVSRUQnLCB0aGlzLnRyYW5zYWN0aW9uTGluZS5jb21taXNzaW9uQ29kZSA9PT0gJzAnID8gdGhpcy5saW5lUXVhbnRpdHlPcmRlcmVkIDogdGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50LCBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyT3ZlcnZpZXcpKTsgLy9CZXN0ZWxkXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyVEcpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnQUxMT0NBVEVEJywgdGhpcy5saW5lUXVhbnRpdHlBbGxvY2F0ZWQsIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJBbGxvY2F0aW9uKSk7IC8vVG9lZ2V3ZXplblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuX2NvbmZpZ05hbWVzLnN0YXR1c0JhclBBKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICB0aGlzLnN0YXR1c2JhckRhdGEucHVzaCh0aGlzLmdldFN0YXR1c2JhckxpbmUoJ1BMQU5OSU5HX1JFUVVFU1RFRCcsIHRoaXMubGluZVF1YW50aXR5UGxhbm5pbmdSZXF1ZXN0ZWQpKTsgLy9Wb29ya2V1ciBhYW5nZXZyYWFnZFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuX2NvbmZpZ05hbWVzLnN0YXR1c0JhclBWKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICB0aGlzLnN0YXR1c2JhckRhdGEucHVzaCh0aGlzLmdldFN0YXR1c2JhckxpbmUoJ1BMQU5OSU5HX1BSRUZFUlJFRF9EQVRFX0VOVEVSRUQnLCB0aGlzLmxpbmVRdWFudGl0eVBsYW5uaW5nUHJlZmVycmVkRGF0ZUVudGVyZWQpKTsgLy9Wb29ya2V1ciBiZWtlbmRcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJUUCkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdUT19CRV9QSUNLRUQnLCB0aGlzLmxpbmVRdWFudGl0eVRvQmVQaWNrZWQsIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJUb0JlUGlja2VkKSk7IC8vVGUgcGlja2VuXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyR1QpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnUElDS0VEJywgdGhpcy5saW5lUXVhbnRpdHlQaWNrZWQsIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJQaWNrZWQpKTsgLy9HZXBpY2t0XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyR1ApLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnUExBTk5FRCcsIHRoaXMubGluZVF1YW50aXR5UGxhbm5pbmdGaW5hbCwgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlclBsYW5uaW5nKSk7IC8vR2VwbGFuZFxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuX2NvbmZpZ05hbWVzLnN0YXR1c0JhckdMKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICB0aGlzLnN0YXR1c2JhckRhdGEucHVzaCh0aGlzLmdldFN0YXR1c2JhckxpbmUoJ0RFTElWRVJFRCcsIHRoaXMubGluZVF1YW50aXR5RGVsaXZlcmVkLCBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyRGVsaXZlcnlOb3RlKSk7IC8vR2VsZXZlcmRcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJHRikuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdJTlZPSUNFRCcsIHRoaXMubGluZVF1YW50aXR5SW52b2ljZWQsIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJJbnZvaWNlKSk7IC8vR2VmYWN0dXJlZXJkXHJcbiAgICB9XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRTdGF0dXNiYXJEYXRhRm9yUHVyY2hhc2VPcmRlcigpIHtcclxuICAgIHRoaXMuc3RhdHVzYmFyRGF0YSA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uTGluZSB8fCAhdGhpcy5fY29uZmlnTmFtZXMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuX2NvbmZpZ05hbWVzLnN0YXR1c0JhcklCKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICB0aGlzLnN0YXR1c2JhckRhdGEucHVzaCh0aGlzLmdldFN0YXR1c2JhckxpbmUoJ0NPTkZJUk1FRCcsIHRoaXMubGluZVF1YW50aXR5UHVyY2hhc2VDb25maXJtZWQpKTsgLy9iZXZlc3RpZ2RcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJOVCkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdUUkFOU1BPUlRfTk9USUZJQ0FUSU9OJywgdGhpcy5saW5lUXVhbnRpdHlUcmFuc3BvcnROb3RpZmljYXRpb24pKTsgLy9UcmFuc3BvcnQgbm90aWZpY2F0aWVcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLl9jb25maWdOYW1lcy5zdGF0dXNCYXJCTikuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLnB1c2godGhpcy5nZXRTdGF0dXNiYXJMaW5lKCdJVEVNX0FDQ0VQVEVEX05PVF9QUk9DRVNTRUQnLCB0aGlzLmxpbmVRdWFudGl0eVJlY2VpdmVkVW5wcm9jZXNzZWQpKTsgLy8gQmlubmVuZ2VtZWxkLCBuaWV0IHZlcndlcmt0XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyQkcpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnSVRFTV9BQ0NFUFRFRCcsIHRoaXMubGluZVF1YW50aXR5UmVjZWl2ZWQpKTsgLy8gQmlubmVuZ2VtZWxkXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5fY29uZmlnTmFtZXMuc3RhdHVzQmFyRkMpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgIHRoaXMuc3RhdHVzYmFyRGF0YS5wdXNoKHRoaXMuZ2V0U3RhdHVzYmFyTGluZSgnSU5WT0lDRV9DSEVDSycsIHRoaXMubGluZVF1YW50aXR5SW52b2ljZUNvbnRyb2wpKTsgLy9GYWN0dXVyIGNvbnRyb2xlXHJcbiAgICB9XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdGF0dXNiYXJMaW5lKGxhYmVsLCBwcm9wZXJ0eSwgY2F0ZWdvcnk/KTogU3RhdHVzYmFyRGF0YSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBsYWJlbDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQobGFiZWwpLFxyXG4gICAgICBwZXJjZW50YWdlOiB0aGlzLmNhbGN1bGF0ZVBlcmNlbnRhZ2UocHJvcGVydHksIHRoaXMudHJhbnNhY3Rpb25MaW5lID8gdGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50IDogMCksXHJcbiAgICAgIGNvdW50OiBwcm9wZXJ0eSxcclxuICAgICAgY2F0ZWdvcnk6IGNhdGVnb3J5XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGN1bGF0ZVBlcmNlbnRhZ2UoYW1vdW50OiBudW1iZXIsIHRvdGFsQW1vdW50OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgaWYgKGFtb3VudCA9PT0gMCB8fCB0b3RhbEFtb3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBNYXRoLmZsb29yKChhbW91bnQgLyB0b3RhbEFtb3VudCkgKiAxMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0YXR1c0NsaWNrZWQobGFiZWw6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KSB7XHJcbiAgICBpZihsYWJlbCkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmFjdGl2ZVJ1YnJpY0NoYW5nZS5uZXh0KHtjYXRlZ29yeTogbGFiZWwsIHNpZGVwYW5lbDogdHJ1ZX0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJvdGVjdGVkIHRyYW5zYWN0aW9uS2luZENoYW5nZWQoKSB7XHJcbiAgLy8gICAgIHN1cGVyLnRyYW5zYWN0aW9uS2luZENoYW5nZWQoKTtcclxuICAvLyAgICAgdGhpcy5zdGF0dXNiYXJEYXRhLmxlbmd0aCA9IDA7XHJcbiAgLy8gICAgIHRoaXMuc2V0U3RhdHVzYmFyRGF0YSgpO1xyXG4gIC8vIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uTGluZVNldCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uTGluZVNldCgpO1xyXG4gICAgdGhpcy5zZXRTdGF0dXNiYXJEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25JbmZvU2V0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25JbmZvU2V0KCk7XHJcbiAgICB0aGlzLnNldFN0YXR1c2JhckRhdGEoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2aXNpYmlsaXR5U2V0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIudmlzaWJpbGl0eVNldCgpO1xyXG4gICAgdGhpcy5zZXRTdGF0dXNiYXJEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRGb2N1c2VkU3RhdHVzQmxvY2soKSB7XHJcbiAgICB0aGlzLmZvY3VzZWRTdGF0dXNJbmRleCA9IHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPyB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRGb2N1c1N0YXR1c0luZGV4KHRoaXMuYWN0aXZlQ2F0ZWdvcnkpIDogbnVsbDtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -64,8 +64,6 @@ export class TransactionSearchResultComponent {
64
64
  if (this.salesOrdersPageActive && this.showBatchOptions) {
65
65
  this.markSelectedTransactions();
66
66
  }
67
- }), this.transactionService.batchModalState.subscribe((state) => {
68
- this.showBatchProcessDialog = state;
69
67
  }));
70
68
  }
71
69
  ngOnChanges(changes) {
@@ -180,7 +178,7 @@ export class TransactionSearchResultComponent {
180
178
  this.showProcessOrdersLoader = false;
181
179
  this.transactionService.getBatchJobProgressesForTheUser().then((batchJobProgresses) => {
182
180
  this.batchJobProgress = batchJobProgresses;
183
- this.transactionService.openBatchModal();
181
+ this.showBatchProcessDialog = true;
184
182
  });
185
183
  }
186
184
  _clearSelected() {
@@ -276,7 +274,7 @@ TransactionSearchResultComponent.decorators = [
276
274
  *ngIf="showBatchProcessDialog"
277
275
  @fadeInOut
278
276
  [batchJobProgress]="batchJobProgress"
279
- (close)="transactionService.closeBatchModal()">
277
+ (close)="showBatchProcessDialog = false">
280
278
  </co-batch-process-dialog>
281
279
  `,
282
280
  animations: [
@@ -313,4 +311,4 @@ TransactionSearchResultComponent.propDecorators = {
313
311
  transactionClick: [{ type: Output }],
314
312
  showClass: [{ type: HostBinding, args: ['class.co-transaction-search-result',] }]
315
313
  };
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC90cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVySyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV0SCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUE4R3hFLE1BQU0sT0FBTyxnQ0FBZ0M7SUEwRDNDLFlBQ1MsYUFBdUMsRUFDdkMsbUJBQTBELEVBQzFELGtCQUFzQyxFQUNyQyxrQkFBcUMsRUFDckMsd0JBQWlEO1FB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VDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLFdBQVcsRUFBRTt3QkFDbkIsVUFBVSxDQUFDLFFBQVEsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDOzRCQUNuQixPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3lCQUM5QyxDQUFDO3dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt5QkFDL0MsQ0FBQztxQkFDSCxDQUFDO2lCQUNIO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQzdGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0SE8sd0JBQXdCO1lBQ3hCLHFDQUFxQztZQUlyQyxrQkFBa0I7WUFUbEIsaUJBQWlCO1lBUWpCLHVCQUF1Qjs7O29DQW9INUIsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7d0NBR0wsS0FBSztvQ0FHTCxLQUFLO3lCQVNMLEtBQUs7K0JBU0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCBDb250ZW50Vmlld01vZGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXctcmVxdWVzdCc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC10cmFuc2FjdGlvbi1zZW5kaW5nLXJlcXVlc3QnO1xyXG5pbXBvcnQge0JhdGNoSm9iUHJvZ3Jlc3N9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC1qb2ItcHJvZ3Jlc3MuYm8nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ibyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY3JlZW5Db25maWdMb2FkZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zPy5sZW5ndGggPiAwICYmIHNhbGVzT3JkZXJzUGFnZUFjdGl2ZSAmJiBzaG93QmF0Y2hPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY2hlY2tJZkFsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpID8gJ0RFU0VMRUNUX0FMTF9PUkRFUlMnIDogJ1NFTEVDVF9BTExfT1JERVJTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvblRvZ2dsZUFsbE9yZGVycyhjaGVja0lmQWxsU2VsZWN0ZWQoKSlcIj5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja0lmU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlbmRNZXRob2REaWFsb2dJY29uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dQcm9jZXNzT3JkZXJzTG9hZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwic2hvd1NoaXBwaW5nTW9kYWwoKVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tcXVpY2stc2VuZC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC1jb250ZW50LXRpbGVzLXdyYXBwZXJcIiBbbmdDbGFzc109XCJmdWxsc2NyZWVuID8gJ2Z1bGxzY3JlZW4nIDogJ3NpZGViYXInXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuVGlsZXMgJiYgIWV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImRyYWdnYWJsZVRyYW5zYWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQsIHRyYW5zYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdlbmQpPVwiZHJhZ0VuZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwic2FsZXNPcmRlcnNQYWdlQWN0aXZlICYmIHNob3dCYXRjaE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ0cmFuc2FjdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInRyYW5zYWN0aW9uID09PSBzZWxlY3RlZFRyYW5zYWN0aW9uID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2xpY2spPVwib25TZWxlY3RlZENsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1zZWFyY2gtdGlsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LWNvbnRlbnQtZ3JpZC13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuR3JpZCAmJiAhZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJzYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgc2hvd0JhdGNoT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tc2VhcmNoLWdyaWQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZXh0ZW5kZWQtc2VhcmNoLXJlc3VsdC10aWxlLXdyYXBwZXJcIiAqbmdJZj1cImV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLWxpbmUtc2VsZWN0LXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDbGljayk9XCJvblNlbGVjdGVkQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hdPVwiZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGNvLXBhZ2luYXRpb24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwic2VhcmNoU2VydmljZS5jdXJyZW50UGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnNQZXJQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwic2VhcmNoU2VydmljZS5yZXN1bHRDb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwcmV2aW91c0xhYmVsXT1cIidQUkVWSU9VUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZXh0TGFiZWxdPVwiJ05FWFQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b0hpZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXJlY3Rpb25MaW5rc109XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25SYW5nZV09XCIhZnVsbHNjcmVlbiA/IDYgOiA4XCJcclxuICAgICAgICAgICAgICAgICAgKHByZXZpb3VzQ2xpY2spPVwib25QcmV2aW91c0NsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAobmV4dENsaWNrKT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAocGFnZUNsaWNrKT1cIm9uUGFnZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tcGFnaW5hdGlvbi1iYXI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlLXdyYXBwZXJcIiAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zICYmIHNlYXJjaFNlcnZpY2UucmVzdWx0Q291bnQgPT09IDBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzBfUkVTVUxUU19GT1VORCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxjby1zaGlwcGluZy1tZXRob2QtZGlhbG9nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93U2hpcHBpbmdNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgIFtjYXRlZ29yeV09XCJiYXRjaENhdGVnb3J5XCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRUcmFuc2FjdGlvbnNdPVwic2VsZWN0ZWRUcmFuc2FjdGlvbnNcIlxyXG4gICAgICAgICAgICAgIChjYW5jZWxDbGlja2VkKT1cInNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAoc2F2ZUNsaWNrZWQpPVwic2hpcHBpbmdEaWFsb2dTYXZlQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDwvY28tc2hpcHBpbmctbWV0aG9kLWRpYWxvZz5cclxuXHJcbiAgICAgIDxjby1iYXRjaC1wcm9jZXNzLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0JhdGNoUHJvY2Vzc0RpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgQGZhZGVJbk91dFxyXG4gICAgICAgICAgICAgIFtiYXRjaEpvYlByb2dyZXNzXT1cImJhdGNoSm9iUHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgIChjbG9zZSk9XCJ0cmFuc2FjdGlvblNlcnZpY2UuY2xvc2VCYXRjaE1vZGFsKClcIj5cclxuICAgICAgPC9jby1iYXRjaC1wcm9jZXNzLWRpYWxvZz5cclxuICBgLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgIHN0eWxlKHtvcGFjaXR5OiAwfSksXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1pbicsIHN0eWxlKHtvcGFjaXR5OiAxfSkpXHJcbiAgICAgIF0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7b3BhY2l0eTogMH0pKVxyXG4gICAgICBdKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ2dhYmxlVHJhbnNhY3Rpb25zOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q2hlY2tib3g6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYmF0Y2hDYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhY3RpdmVDb250ZW50Vmlld01vZGUodmFsdWU6IENvbnRlbnRWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ29udGVudFZpZXdNb2RlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNvbnRlbnRWaWV3TW9kZSgpOiBDb250ZW50Vmlld01vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBmdWxsc2NyZWVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9mdWxsc2NyZWVuID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZ1bGxzY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnVsbHNjcmVlbjtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRWaWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXc7XHJcbiAgcHVibGljIHNjcmVlbkNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzYWxlc09yZGVyc1BhZ2VBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoT3B0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U2hpcHBpbmdNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjaGVja2VkQXZhaWxhYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlYXJjaFZpZXdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3Q6IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IG5ldyBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QoKTtcclxuICBwdWJsaWMgYmF0Y2hKb2JQcm9ncmVzczogQmF0Y2hKb2JQcm9ncmVzc1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTogQ29udGVudFZpZXdNb2RlO1xyXG4gIHByaXZhdGUgX2Z1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RTZXQuc3Vic2NyaWJlKChyZXF1ZXN0OiBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3QpIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5sb2FkQ29uZmlnKFtyZXF1ZXN0LnRyYW5zYWN0aW9uS2luZF0pO1xyXG4gICAgICAgICAgdGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgPSByZXF1ZXN0LnRyYW5zYWN0aW9uS2luZCA9PT0gJ1YnO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2FsZXNPcmRlcnNQYWdlQWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzdWx0c1VwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgdGhpcy5zaG93QmF0Y2hPcHRpb25zKSB7XHJcbiAgICAgICAgICB0aGlzLm1hcmtTZWxlY3RlZFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmJhdGNoTW9kYWxTdGF0ZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zaG93QmF0Y2hQcm9jZXNzRGlhbG9nID0gc3RhdGU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10pIHtcclxuICAgICAgdGhpcy5iYXRjaENhdGVnb3J5ID0gY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy5fc2hvd0JhdGNoT3B0aW9ucyh0aGlzLmJhdGNoQ2F0ZWdvcnkpO1xyXG4gICAgICBpZiAoY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLnByZXZpb3VzVmFsdWUgIT09IGNoYW5nZXNbJ2JhdGNoQ2F0ZWdvcnknXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9jbGVhclNlbGVjdGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25UcmFuc2FjdGlvbkNsaWNrKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkNsaWNrLmVtaXQodHJhbnNhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VsZWN0ZWRDbGljayh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3KTogdm9pZCB7XHJcbiAgICBpZiAodHJhbnNhY3Rpb24uc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5wdXNoKHRyYW5zYWN0aW9uKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRyYW5zSWQgPSB0cmFuc2FjdGlvbi50cmFuc0lkO1xyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuZmluZEluZGV4KHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLnRyYW5zSWQgPT09IHRyYW5zSWQpO1xyXG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QcmV2aW91c0NsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmN1cnJlbnRQYWdlIC09IDE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25OZXh0Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgKz0gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblBhZ2VDbGljayhwYWdlTnI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmN1cnJlbnRQYWdlID0gcGFnZU5yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1hcmtTZWxlY3RlZFRyYW5zYWN0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFNlcnZpY2UucmVzdWx0c1VwZGF0ZWQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5mb3JFYWNoKHRyYW5zYWN0aW9uID0+IHtcclxuICAgICAgICBjb25zdCBtYXRjaGluZ09iamVjdCA9IHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMuZmluZChzZWxlY3RlZFRyYW5zYWN0aW9uID0+IHNlbGVjdGVkVHJhbnNhY3Rpb24udHJhbnNJZCA9PT0gdHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICAgICAgaWYgKG1hdGNoaW5nT2JqZWN0KSB7XHJcbiAgICAgICAgICB0cmFuc2FjdGlvbi5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBkcmFnU3RhcnRlZChldjogYW55LCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25TZWFyY2hWaWV3KSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5kcmFnZ2luZyA9IHRydWU7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHRyYW5zYWN0aW9uLnRyYW5zSWQ7XHJcbiAgICBldi5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dCcsIHRyYW5zYWN0aW9uLnRyYW5zSWQpO1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkpIHtcclxuICAgICAgbGV0IHBsYW5PcmRlcjogUGxhbk9yZGVyID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UGxhbk9yZGVyKHRyYW5zYWN0aW9uLnRyYW5zSWQpO1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5hdmFpbGFiaWxpdHlDaGVja0V2ZW50LmVtaXQocGxhbk9yZGVyKTtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxhYmlsaXR5ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcmFnRW5kKGV2OiBhbnkpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nID0gZmFsc2U7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHVuZGVmaW5lZDtcclxuICAgIGlmICh0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQXZhaWxhYmlsaXR5ID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eVJlc2V0RXZlbnQuZW1pdCgpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSWZTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLnNvbWUoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGVja0lmQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5ldmVyeShpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dTaGlwcGluZ01vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93U2hpcHBpbmdNZXRob2REaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uVG9nZ2xlQWxsT3JkZXJzKGFsbFNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gIWFsbFNlbGVjdGVkKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMgPSBbXTtcclxuICAgIGlmICghYWxsU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5wdXNoKC4uLnRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNoaXBwaW5nRGlhbG9nU2F2ZUNsaWNrZWQocmVxdWVzdDogQmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IHJlcXVlc3Q7XHJcbiAgICB0aGlzLnNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IHRydWU7XHJcblxyXG4gICAgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ292ZXJ2aWV3JyB8fCB0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdvdmVyemljaHQnKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0T3JkZXJDb25maXJtYXRpb25CYXRjaCh0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdClcclxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5iYXRjaENhdGVnb3J5ID09PSAnZGVsaXZlcnkgb3JkZXInIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2FmbGV2ZXJib24nKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0RGVsaXZlcnlOb3Rlc0JhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdpbnZvaWNlJyB8fCB0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdmYWN0dXVyJykge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5zdGFydEludm9pY2VCYXRjaCh0aGlzLmJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdClcclxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLl9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKSlcclxuICAgICAgICAuY2F0Y2goKCkgPT4gdGhpcy5zaG93UHJvY2Vzc09yZGVyc0xvYWRlciA9IGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dCYXRjaE9wdGlvbnMoY2F0ZWdvcnk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QmF0Y2hPcHRpb25zID0gWydvdmVydmlldycsICdkZWxpdmVyeSBvcmRlcicsICdpbnZvaWNlJywgJ292ZXJ6aWNodCcsICdhZmxldmVyYm9uJywgJ2ZhY3R1dXInXS5pbmNsdWRlcyhjYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93QmF0Y2hQcm9jZXNzZXNTdGF0dXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRCYXRjaEpvYlByb2dyZXNzZXNGb3JUaGVVc2VyKCkudGhlbigoYmF0Y2hKb2JQcm9ncmVzc2VzOiBCYXRjaEpvYlByb2dyZXNzW10pID0+IHtcclxuICAgICAgdGhpcy5iYXRjaEpvYlByb2dyZXNzID0gYmF0Y2hKb2JQcm9ncmVzc2VzO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5vcGVuQmF0Y2hNb2RhbCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jbGVhclNlbGVjdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCA9IGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRUcmFuc2FjdGlvbnMgPSBbXTtcclxuICB9XHJcbn1cclxuIl19
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZWFyY2gvdHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC90cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVySyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBR2hILE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUV0SCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUE4R3hFLE1BQU0sT0FBTyxnQ0FBZ0M7SUEwRDNDLFlBQ1MsYUFBdUMsRUFDdkMsbUJBQTBELEVBQzFELGtCQUFzQyxFQUNyQyxrQkFBcUMsRUFDckMsd0JBQWlEO1FB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QUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO3lCQUM5QyxDQUFDO3dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzt5QkFDL0MsQ0FBQztxQkFDSCxDQUFDO2lCQUNIO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQzdGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0SE8sd0JBQXdCO1lBQ3hCLHFDQUFxQztZQUlyQyxrQkFBa0I7WUFUbEIsaUJBQWlCO1lBUWpCLHVCQUF1Qjs7O29DQW9INUIsS0FBSzsyQkFHTCxLQUFLOzRCQUdMLEtBQUs7d0NBR0wsS0FBSztvQ0FHTCxLQUFLO3lCQVNMLEtBQUs7K0JBU0wsTUFBTTt3QkFHTixXQUFXLFNBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXcuYm8nO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCBDb250ZW50Vmlld01vZGV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFNlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tc2VhcmNoLXZpZXctcmVxdWVzdCc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC10cmFuc2FjdGlvbi1zZW5kaW5nLXJlcXVlc3QnO1xyXG5pbXBvcnQge0JhdGNoSm9iUHJvZ3Jlc3N9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9iYXRjaC1qb2ItcHJvZ3Jlc3MuYm8nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ibyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzY3JlZW5Db25maWdMb2FkZWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zPy5sZW5ndGggPiAwICYmIHNhbGVzT3JkZXJzUGFnZUFjdGl2ZSAmJiBzaG93QmF0Y2hPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY2hlY2tJZkFsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNoZWNrSWZBbGxTZWxlY3RlZCgpID8gJ0RFU0VMRUNUX0FMTF9PUkRFUlMnIDogJ1NFTEVDVF9BTExfT1JERVJTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvblRvZ2dsZUFsbE9yZGVycyhjaGVja0lmQWxsU2VsZWN0ZWQoKSlcIj5cclxuICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxjby1xdWljay1zZW5kLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjaGVja0lmU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1NlbmRNZXRob2REaWFsb2dJY29uXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInNob3dQcm9jZXNzT3JkZXJzTG9hZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChzZW5kSWNvbkNsaWNrZWQpPVwic2hvd1NoaXBwaW5nTW9kYWwoKVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tcXVpY2stc2VuZC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tc2VhcmNoLXJlc3VsdC1jb250ZW50LXRpbGVzLXdyYXBwZXJcIiBbbmdDbGFzc109XCJmdWxsc2NyZWVuID8gJ2Z1bGxzY3JlZW4nIDogJ3NpZGViYXInXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuVGlsZXMgJiYgIWV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZHJhZ2dhYmxlXT1cImRyYWdnYWJsZVRyYW5zYWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnRlZCgkZXZlbnQsIHRyYW5zYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyYWdlbmQpPVwiZHJhZ0VuZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2hlY2tib3hdPVwic2FsZXNPcmRlcnNQYWdlQWN0aXZlICYmIHNob3dCYXRjaE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ0cmFuc2FjdGlvbi5zZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInRyYW5zYWN0aW9uID09PSBzZWxlY3RlZFRyYW5zYWN0aW9uID8gJ3NlbGVjdGVkJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2xpY2spPVwib25TZWxlY3RlZENsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1zZWFyY2gtdGlsZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zZWFyY2gtcmVzdWx0LWNvbnRlbnQtZ3JpZC13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDb250ZW50Vmlld01vZGUgPT09IGNvbnRlbnRWaWV3TW9kZXMuR3JpZCAmJiAhZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZWFyY2gtZ3JpZFxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJzYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgc2hvd0JhdGNoT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25DbGljayk9XCJvblRyYW5zYWN0aW9uQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tc2VhcmNoLWdyaWQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZXh0ZW5kZWQtc2VhcmNoLXJlc3VsdC10aWxlLXdyYXBwZXJcIiAqbmdJZj1cImV4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZVwiICpuZ0Zvcj1cImxldCB0cmFuc2FjdGlvbiBvZiBzZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VhcmNoLXNhbGVzLWxpbmUtc2VsZWN0LXRpbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuc2FjdGlvbkNsaWNrKT1cIm9uVHJhbnNhY3Rpb25DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDbGljayk9XCJvblNlbGVjdGVkQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4dGVuZGVkVHJhbnNhY3Rpb25TZWFyY2hdPVwiZXh0ZW5kZWRUcmFuc2FjdGlvblNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXNlYXJjaC1zYWxlcy1saW5lLXNlbGVjdC10aWxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGNvLXBhZ2luYXRpb24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnM/Lmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgICBbY3VycmVudFBhZ2VdPVwic2VhcmNoU2VydmljZS5jdXJyZW50UGFnZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpdGVtc1BlclBhZ2VdPVwic2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnNQZXJQYWdlXCJcclxuICAgICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwic2VhcmNoU2VydmljZS5yZXN1bHRDb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgIFtwcmV2aW91c0xhYmVsXT1cIidQUkVWSU9VUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZXh0TGFiZWxdPVwiJ05FWFQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b0hpZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXJlY3Rpb25MaW5rc109XCJmdWxsc2NyZWVuXCJcclxuICAgICAgICAgICAgICAgICAgW3BhZ2luYXRpb25SYW5nZV09XCIhZnVsbHNjcmVlbiA/IDYgOiA4XCJcclxuICAgICAgICAgICAgICAgICAgKHByZXZpb3VzQ2xpY2spPVwib25QcmV2aW91c0NsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAobmV4dENsaWNrKT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAocGFnZUNsaWNrKT1cIm9uUGFnZUNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tcGFnaW5hdGlvbi1iYXI+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlLXdyYXBwZXJcIiAqbmdJZj1cInNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zICYmIHNlYXJjaFNlcnZpY2UucmVzdWx0Q291bnQgPT09IDBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzBfUkVTVUxUU19GT1VORCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxjby1zaGlwcGluZy1tZXRob2QtZGlhbG9nXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93U2hpcHBpbmdNZXRob2REaWFsb2dcIlxyXG4gICAgICAgICAgICAgIFtjYXRlZ29yeV09XCJiYXRjaENhdGVnb3J5XCJcclxuICAgICAgICAgICAgICBbc2VsZWN0ZWRUcmFuc2FjdGlvbnNdPVwic2VsZWN0ZWRUcmFuc2FjdGlvbnNcIlxyXG4gICAgICAgICAgICAgIChjYW5jZWxDbGlja2VkKT1cInNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAoc2F2ZUNsaWNrZWQpPVwic2hpcHBpbmdEaWFsb2dTYXZlQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgIDwvY28tc2hpcHBpbmctbWV0aG9kLWRpYWxvZz5cclxuXHJcbiAgICAgIDxjby1iYXRjaC1wcm9jZXNzLWRpYWxvZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd0JhdGNoUHJvY2Vzc0RpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgQGZhZGVJbk91dFxyXG4gICAgICAgICAgICAgIFtiYXRjaEpvYlByb2dyZXNzXT1cImJhdGNoSm9iUHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgIChjbG9zZSk9XCJzaG93QmF0Y2hQcm9jZXNzRGlhbG9nID0gZmFsc2VcIj5cclxuICAgICAgPC9jby1iYXRjaC1wcm9jZXNzLWRpYWxvZz5cclxuICBgLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgIHN0eWxlKHtvcGFjaXR5OiAwfSksXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1pbicsIHN0eWxlKHtvcGFjaXR5OiAxfSkpXHJcbiAgICAgIF0pLFxyXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXHJcbiAgICAgICAgYW5pbWF0ZSgnNTAwbXMgZWFzZS1vdXQnLCBzdHlsZSh7b3BhY2l0eTogMH0pKVxyXG4gICAgICBdKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ2dhYmxlVHJhbnNhY3Rpb25zOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q2hlY2tib3g6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYmF0Y2hDYXRlZ29yeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBleHRlbmRlZFRyYW5zYWN0aW9uU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhY3RpdmVDb250ZW50Vmlld01vZGUodmFsdWU6IENvbnRlbnRWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ29udGVudFZpZXdNb2RlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNvbnRlbnRWaWV3TW9kZSgpOiBDb250ZW50Vmlld01vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBmdWxsc2NyZWVuKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9mdWxsc2NyZWVuID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZ1bGxzY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZnVsbHNjcmVlbjtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25TZWFyY2hWaWV3PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHQnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpY29uOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRlbnRWaWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXc7XHJcbiAgcHVibGljIHNjcmVlbkNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzYWxlc09yZGVyc1BhZ2VBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoT3B0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93U2hpcHBpbmdNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjaGVja2VkQXZhaWxhYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkVHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlYXJjaFZpZXdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3Q6IEJhdGNoVHJhbnNhY3Rpb25TZW5kaW5nUmVxdWVzdCA9IG5ldyBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QoKTtcclxuICBwdWJsaWMgYmF0Y2hKb2JQcm9ncmVzczogQmF0Y2hKb2JQcm9ncmVzc1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2FjdGl2ZUNvbnRlbnRWaWV3TW9kZTogQ29udGVudFZpZXdNb2RlO1xyXG4gIHByaXZhdGUgX2Z1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VhcmNoU2VydmljZTogVHJhbnNhY3Rpb25TZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNlYXJjaFJlcXVlc3RTZXQuc3Vic2NyaWJlKChyZXF1ZXN0OiBUcmFuc2FjdGlvblNlYXJjaFZpZXdSZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcXVlc3QpIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5sb2FkQ29uZmlnKFtyZXF1ZXN0LnRyYW5zYWN0aW9uS2luZF0pO1xyXG4gICAgICAgICAgdGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgPSByZXF1ZXN0LnRyYW5zYWN0aW9uS2luZCA9PT0gJ1YnO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2FsZXNPcmRlcnNQYWdlQWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWc6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4ge1xyXG4gICAgICAgIGlmIChjb25maWcgJiYgY29uZmlnLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2NyZWVuQ29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UucmVzdWx0c1VwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5zYWxlc09yZGVyc1BhZ2VBY3RpdmUgJiYgdGhpcy5zaG93QmF0Y2hPcHRpb25zKSB7XHJcbiAgICAgICAgICB0aGlzLm1hcmtTZWxlY3RlZFRyYW5zYWN0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2JhdGNoQ2F0ZWdvcnknXSkge1xyXG4gICAgICB0aGlzLmJhdGNoQ2F0ZWdvcnkgPSBjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLl9zaG93QmF0Y2hPcHRpb25zKHRoaXMuYmF0Y2hDYXRlZ29yeSk7XHJcbiAgICAgIGlmIChjaGFuZ2VzWydiYXRjaENhdGVnb3J5J10ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlc1snYmF0Y2hDYXRlZ29yeSddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX2NsZWFyU2VsZWN0ZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblRyYW5zYWN0aW9uQ2xpY2sodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uU2VhcmNoVmlldyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uQ2xpY2suZW1pdCh0cmFuc2FjdGlvbik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZWxlY3RlZENsaWNrKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpOiB2b2lkIHtcclxuICAgIGlmICh0cmFuc2FjdGlvbi5zZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnB1c2godHJhbnNhY3Rpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdHJhbnNJZCA9IHRyYW5zYWN0aW9uLnRyYW5zSWQ7XHJcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5maW5kSW5kZXgodHJhbnNhY3Rpb24gPT4gdHJhbnNhY3Rpb24udHJhbnNJZCA9PT0gdHJhbnNJZCk7XHJcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblByZXZpb3VzQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgLT0gMTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5leHRDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5jdXJyZW50UGFnZSArPSAxO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUGFnZUNsaWNrKHBhZ2VOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuY3VycmVudFBhZ2UgPSBwYWdlTnI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWFya1NlbGVjdGVkVHJhbnNhY3Rpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc2VhcmNoU2VydmljZS5yZXN1bHRzVXBkYXRlZCkge1xyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2godHJhbnNhY3Rpb24gPT4ge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoaW5nT2JqZWN0ID0gdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucy5maW5kKHNlbGVjdGVkVHJhbnNhY3Rpb24gPT4gc2VsZWN0ZWRUcmFuc2FjdGlvbi50cmFuc0lkID09PSB0cmFuc2FjdGlvbi50cmFuc0lkKTtcclxuICAgICAgICBpZiAobWF0Y2hpbmdPYmplY3QpIHtcclxuICAgICAgICAgIHRyYW5zYWN0aW9uLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRyYWdTdGFydGVkKGV2OiBhbnksIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblNlYXJjaFZpZXcpIHtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmRyYWdnaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUcmFuc0lkID0gdHJhbnNhY3Rpb24udHJhbnNJZDtcclxuICAgIGV2LmRhdGFUcmFuc2Zlci5zZXREYXRhKCd0ZXh0JywgdHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tlZEF2YWlsYWJpbGl0eSkge1xyXG4gICAgICBsZXQgcGxhbk9yZGVyOiBQbGFuT3JkZXIgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRQbGFuT3JkZXIodHJhbnNhY3Rpb24udHJhbnNJZCk7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmF2YWlsYWJpbGl0eUNoZWNrRXZlbnQuZW1pdChwbGFuT3JkZXIpO1xyXG4gICAgICB0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRyYWdFbmQoZXY6IGFueSkge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZHJhZ2dpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRUcmFuc0lkID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHRoaXMuY2hlY2tlZEF2YWlsYWJpbGl0eSkge1xyXG4gICAgICB0aGlzLmNoZWNrZWRBdmFpbGFiaWxpdHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuYXZhaWxhYmlsaXR5UmVzZXRFdmVudC5lbWl0KCk7XHJcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tJZlNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMuc29tZShpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSWZBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmV2ZXJ5KGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1NoaXBwaW5nTW9kYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTaGlwcGluZ01ldGhvZERpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ub2dnbGVBbGxPcmRlcnMoYWxsU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS50cmFuc2FjdGlvbnMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQgPSAhYWxsU2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucyA9IFtdO1xyXG4gICAgaWYgKCFhbGxTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVHJhbnNhY3Rpb25zLnB1c2goLi4udGhpcy5zZWFyY2hTZXJ2aWNlLnRyYW5zYWN0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hpcHBpbmdEaWFsb2dTYXZlQ2xpY2tlZChyZXF1ZXN0OiBCYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpOiB2b2lkIHtcclxuICAgIHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0ID0gcmVxdWVzdDtcclxuICAgIHRoaXMuc2hvd1NoaXBwaW5nTWV0aG9kRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5iYXRjaENhdGVnb3J5ID09PSAnb3ZlcnZpZXcnIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ292ZXJ6aWNodCcpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnRPcmRlckNvbmZpcm1hdGlvbkJhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmJhdGNoQ2F0ZWdvcnkgPT09ICdkZWxpdmVyeSBvcmRlcicgfHwgdGhpcy5iYXRjaENhdGVnb3J5ID09PSAnYWZsZXZlcmJvbicpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2Uuc3RhcnREZWxpdmVyeU5vdGVzQmF0Y2godGhpcy5iYXRjaFRyYW5zYWN0aW9uU2VuZGluZ1JlcXVlc3QpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5fc2hvd0JhdGNoUHJvY2Vzc2VzU3RhdHVzKCkpXHJcbiAgICAgICAgLmNhdGNoKCgpID0+IHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2ludm9pY2UnIHx8IHRoaXMuYmF0Y2hDYXRlZ29yeSA9PT0gJ2ZhY3R1dXInKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnN0YXJ0SW52b2ljZUJhdGNoKHRoaXMuYmF0Y2hUcmFuc2FjdGlvblNlbmRpbmdSZXF1ZXN0KVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpKVxyXG4gICAgICAgIC5jYXRjaCgoKSA9PiB0aGlzLnNob3dQcm9jZXNzT3JkZXJzTG9hZGVyID0gZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2hvd0JhdGNoT3B0aW9ucyhjYXRlZ29yeTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dCYXRjaE9wdGlvbnMgPSBbJ292ZXJ2aWV3JywgJ2RlbGl2ZXJ5IG9yZGVyJywgJ2ludm9pY2UnLCAnb3ZlcnppY2h0JywgJ2FmbGV2ZXJib24nLCAnZmFjdHV1ciddLmluY2x1ZGVzKGNhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dCYXRjaFByb2Nlc3Nlc1N0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1Byb2Nlc3NPcmRlcnNMb2FkZXIgPSBmYWxzZTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEJhdGNoSm9iUHJvZ3Jlc3Nlc0ZvclRoZVVzZXIoKS50aGVuKChiYXRjaEpvYlByb2dyZXNzZXM6IEJhdGNoSm9iUHJvZ3Jlc3NbXSkgPT4ge1xyXG4gICAgICB0aGlzLmJhdGNoSm9iUHJvZ3Jlc3MgPSBiYXRjaEpvYlByb2dyZXNzZXM7XHJcbiAgICAgIHRoaXMuc2hvd0JhdGNoUHJvY2Vzc0RpYWxvZyA9IHRydWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFyU2VsZWN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UudHJhbnNhY3Rpb25zLmZvckVhY2goaXRlbSA9PiBpdGVtLnNlbGVjdGVkID0gZmFsc2UpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRyYW5zYWN0aW9ucyA9IFtdO1xyXG4gIH1cclxufVxyXG4iXX0=