@colijnit/transaction 256.1.9 → 256.1.11

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 (82) hide show
  1. package/bundles/colijnit-transaction.umd.js +410 -225
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction-256.1.10.tgz +0 -0
  4. package/colijnit-transaction-256.1.8.tgz +0 -0
  5. package/colijnit-transaction-256.1.9.tgz +0 -0
  6. package/colijnit-transaction.metadata.json +1 -1
  7. package/esm2015/lib/component/add-product/add-product.component.js +41 -35
  8. package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +65 -60
  9. package/esm2015/lib/component/transaction/transaction.component.js +1 -4
  10. package/esm2015/lib/component/transaction-button/transaction-button.component.js +2 -2
  11. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.js +10 -3
  12. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.js +16 -18
  13. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-purchase-confirmation-button-bar-button.component.js +8 -4
  14. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-purchase-invoice-button-bar-button.component.js +8 -4
  15. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-purchase-receive-goods-button-bar-button.component.js +8 -4
  16. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-allocation-button-bar-button.component.js +8 -4
  17. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-delivery-button-bar-button.component.js +8 -4
  18. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-invoice-button-bar-button.component.js +8 -4
  19. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-overview-button-bar-button.component.js +6 -4
  20. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-picking-button-bar-button.component.js +8 -4
  21. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-planning-button-bar-button.component.js +6 -4
  22. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.js +15 -7
  23. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-service-service-button-bar-button.component.js +6 -4
  24. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.component.js +29 -18
  25. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +36 -36
  26. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +6 -2
  27. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-order.component.js +2 -2
  28. package/esm2015/lib/component/transaction-header-fields/transaction-header-type.js +8 -3
  29. package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +5 -10
  30. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js +2 -2
  31. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +2 -3
  32. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.js +19 -15
  33. package/esm2015/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.js +5 -4
  34. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +67 -40
  35. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +9 -3
  36. package/esm2015/lib/component/transaction-search/transaction-search.module.js +4 -2
  37. package/esm2015/lib/component/transaction-search/transaction-shipping-method-dialog/transaction-shipping-method-dialog.component.js +178 -0
  38. package/esm2015/lib/component/transaction-search/transaction-shipping-method-dialog/transaction-shipping-method-dialog.module.js +28 -0
  39. package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +2 -1
  40. package/esm2015/lib/enum/transaction-cfg-name.enum.js +2 -1
  41. package/esm2015/lib/service/pending-reason.service.js +5 -4
  42. package/esm2015/lib/service/transaction-base.service.js +4 -1
  43. package/esm2015/lib/transaction-version.js +3 -3
  44. package/esm2015/public_api.js +3 -1
  45. package/fesm2015/colijnit-transaction.js +564 -256
  46. package/fesm2015/colijnit-transaction.js.map +1 -1
  47. package/lib/component/add-product/add-product.component.d.ts +5 -3
  48. package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.d.ts +5 -5
  49. package/lib/component/transaction/transaction.component.d.ts +0 -1
  50. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.d.ts +3 -1
  51. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.d.ts +4 -5
  52. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-purchase-confirmation-button-bar-button.component.d.ts +5 -3
  53. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-purchase-invoice-button-bar-button.component.d.ts +5 -3
  54. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-purchase-receive-goods-button-bar-button.component.d.ts +5 -3
  55. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-allocation-button-bar-button.component.d.ts +5 -3
  56. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-delivery-button-bar-button.component.d.ts +5 -3
  57. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-invoice-button-bar-button.component.d.ts +5 -3
  58. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-overview-button-bar-button.component.d.ts +3 -2
  59. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-picking-button-bar-button.component.d.ts +5 -3
  60. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-planning-button-bar-button.component.d.ts +3 -2
  61. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.d.ts +8 -6
  62. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-service-service-button-bar-button.component.d.ts +3 -2
  63. package/lib/component/transaction-button-bar/transaction-button-bar.component.d.ts +10 -7
  64. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +1 -0
  65. package/lib/component/transaction-header-fields/transaction-header-type.d.ts +1 -0
  66. package/lib/component/transaction-internal/transaction-internal.component.d.ts +0 -1
  67. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.d.ts +6 -6
  68. package/lib/component/transaction-search/style/material.scss +1 -0
  69. package/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.d.ts +3 -3
  70. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +10 -5
  71. package/lib/component/transaction-search/transaction-shipping-method-dialog/style/_layout.scss +47 -0
  72. package/lib/component/transaction-search/transaction-shipping-method-dialog/style/_material-definition.scss +1 -0
  73. package/lib/component/transaction-search/transaction-shipping-method-dialog/style/_theme.scss +6 -0
  74. package/lib/component/transaction-search/transaction-shipping-method-dialog/style/material.scss +3 -0
  75. package/lib/component/transaction-search/transaction-shipping-method-dialog/transaction-shipping-method-dialog.component.d.ts +35 -0
  76. package/lib/component/transaction-search/transaction-shipping-method-dialog/transaction-shipping-method-dialog.component.scss +42 -0
  77. package/lib/component/transaction-search/transaction-shipping-method-dialog/transaction-shipping-method-dialog.module.d.ts +2 -0
  78. package/lib/enum/transaction-cfg-name.enum.d.ts +1 -0
  79. package/lib/service/transaction-base.service.d.ts +1 -0
  80. package/lib/style/_variables.scss +1 -1
  81. package/package.json +3 -3
  82. package/public_api.d.ts +2 -0
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { ApplicationRef, ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChildren, ViewEncapsulation } from '@angular/core';
2
+ import { ApplicationRef, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChildren, ViewEncapsulation } from '@angular/core';
3
3
  import { TransactionTypeCategory } from '../../enum/transaction-type-category.enum';
4
4
  import { ContentViewMode } from '@colijnit/corecomponents_v12';
5
5
  import { Icon } from '../../enum/icon.enum';
@@ -50,7 +50,6 @@ export class TransactionInternalComponent {
50
50
  this.showHeader = true;
51
51
  this.showViewModeButtons = true;
52
52
  this.transactionPlanning = false;
53
- this.cashRegistersDirty = false;
54
53
  this.relationChange = new EventEmitter();
55
54
  //This output exists for bundle purposes.
56
55
  this.serviceRequested = new EventEmitter();
@@ -384,15 +383,13 @@ TransactionInternalComponent.decorators = [
384
383
  </co-transaction-header>
385
384
 
386
385
  <div class="transaction-lines-header">
387
- <co-transaction-quick-access
388
- *ngIf="showQuickAccess"
386
+ <co-transaction-quick-access *ngIf="showQuickAccess"
389
387
  class="transaction-lines-header-item"
390
388
  [transaction]="transaction"
391
389
  [relation]="relation"
392
390
  [activeCategory]="activeCategory">
393
391
  </co-transaction-quick-access>
394
- <co-transaction-button-bar
395
- *ngIf="showButtonBar"
392
+ <co-transaction-button-bar *ngIf="showButtonBar"
396
393
  class="transaction-lines-header-item"
397
394
  [selectedCategory]="activeCategory"
398
395
  (buttonClicked)="handleButtonBarButtonClicked($event)">
@@ -524,8 +521,7 @@ TransactionInternalComponent.decorators = [
524
521
  </div>
525
522
  </ng-container>
526
523
  `,
527
- encapsulation: ViewEncapsulation.None,
528
- changeDetection: ChangeDetectionStrategy.OnPush
524
+ encapsulation: ViewEncapsulation.None
529
525
  },] }
530
526
  ];
531
527
  TransactionInternalComponent.ctorParameters = () => [
@@ -552,7 +548,6 @@ TransactionInternalComponent.propDecorators = {
552
548
  showHeader: [{ type: Input }],
553
549
  showViewModeButtons: [{ type: Input }],
554
550
  transactionPlanning: [{ type: Input }],
555
- cashRegistersDirty: [{ type: Input }],
556
551
  relationChange: [{ type: Output }],
557
552
  serviceRequested: [{ type: Output }],
558
553
  showQuickAccess: [{ type: HostBinding, args: ['class.show-quick-access',] }, { type: Input }],
@@ -560,4 +555,4 @@ TransactionInternalComponent.propDecorators = {
560
555
  showClass: [{ type: HostBinding, args: ['class.co-transaction-internal',] }],
561
556
  onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
562
557
  };
563
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFFdkgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFJMUcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0cs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QUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge0NvbnRlbnRWaWV3TW9kZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtTdGF0dXNCYXJDZmdOYW1lc30gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3N0YXR1cy1iYXItY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0R5bmFtaWNDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7TGluZVNlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvbGluZS1zZWxlY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXJCdXR0b259IGZyb20gJy4uLy4uL21vZGVsL3RyYW5zYWN0aW9uLWJhci1idXR0b24nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYWRkLXRleHQtbGluZS1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtPcmRlckxpbmVTZXREVE99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lLXNldC1kdG8nO1xyXG5pbXBvcnQge09yZGVyTGluZVNldEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lLXNldC1pbmZvLmJvJztcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtb3JkZXItbGluZS1zZXQtdGV4dC1saW5lLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb24nO1xyXG5pbXBvcnQge1Bvc09yZGVyRGF0YX0gZnJvbSAnLi4vLi4vbW9kZWwvcG9zLW9yZGVyLWRhdGEnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hcmdpbkluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1tYXJnaW4taW5mby5ibyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ01vZGVzfSBmcm9tICcuLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm8nO1xyXG5pbXBvcnQge1BsYW5uaW5nfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmcuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tYmFzZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24taW50ZXJuYWwnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVkXCI+XHJcbiAgICAgIDxjby1jbGljay1ibG9jaz48L2NvLWNsaWNrLWJsb2NrPlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyXHJcbiAgICAgICAgKm5nSWY9XCJzaG93SGVhZGVyXCJcclxuICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgKHJlbGF0aW9uQ2hhbmdlKT1cImhhbmRsZVJlbGF0aW9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPC9jby10cmFuc2FjdGlvbi1oZWFkZXI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzc1xyXG4gICAgICAgICAgKm5nSWY9XCJzaG93UXVpY2tBY2Nlc3NcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1idXR0b24tYmFyXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVCdXR0b25CYXJCdXR0b25DbGlja2VkKCRldmVudClcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbSByaWdodFwiPlxyXG4gICAgICAgICAgPGNvLWF2YXRhclxyXG4gICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLXNhbGVzLWF2YXRhclwiXHJcbiAgICAgICAgICAgIFtyZWxhdGlvbklkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5oYW5kbGVkQnlcIlxyXG4gICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJIYW5kbGVkQnlcIlxyXG4gICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgPC9jby1hdmF0YXI+XHJcbiAgICAgICAgICA8Y28tYXZhdGFyXHJcbiAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tc2FsZXMtYXZhdGFyXCJcclxuICAgICAgICAgICAgW3JlbGF0aW9uSWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmJyYW5jaD8ucmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckJyYW5jaFwiXHJcbiAgICAgICAgICAgIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICA8L2NvLWF2YXRhcj5cclxuICAgICAgICAgIDxjby12aWV3LW1vZGUtYnV0dG9ucyAqbmdJZj1cIiFzaG91bGRTaG93VGlsZXMoKSAmJiBzaG93Vmlld01vZGVCdXR0b25zXCJcclxuICAgICAgICAgICAgW3Nob3dWaWV3TW9kZXNdPVwiW3ZpZXdNb2Rlcy5MaXN0LCB2aWV3TW9kZXMuVGlsZXNdXCJcclxuICAgICAgICAgICAgKHZpZXdNb2RlQ2hhbmdlKT1cImhhbmRsZVZpZXdNb2RlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tdmlldy1tb2RlLWJ1dHRvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgIDwhLS08Y28tdHJhbnNhY3Rpb24tZG9jdW1lbnQtYnV0dG9uLWJhciBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj48L2NvLXRyYW5zYWN0aW9uLWRvY3VtZW50LWJ1dHRvbi1iYXI+LS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnkuU2VydmljZU9yZGVyU2VydmljZVwiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldyBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiPjwvY28tdHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRpbGVzLXdyYXBwZXJcIiAqbmdJZj1cImFjdGl2ZVZpZXdNb2RlID09PSB2aWV3TW9kZXMuVGlsZXMgfHwgc2hvdWxkU2hvd1RpbGVzKCkgfHwgdHJhbnNhY3Rpb25QbGFubmluZ1wiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tY2FyZHNcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLnBsYW5uaW5nLWNhcmRzXT1cInRyYW5zYWN0aW9uUGxhbm5pbmdcIj5cclxuICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1jYXJkcz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cIihhY3RpdmVWaWV3TW9kZSA9PT0gdmlld01vZGVzLkxpc3QgJiYgIXNob3VsZFNob3dUaWxlcygpKSAmJiBhY3RpdmVDYXRlZ29yeSAhPT0gY2F0ZWdvcnkuU2VydmljZU9yZGVyU2VydmljZSAmJiAhdHJhbnNhY3Rpb25QbGFubmluZ1wiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZXNcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgKHNhdmVUcmFuc2FjdGlvbkxpbmUpPVwic2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZvb3Rlci1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWFkZC1wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJDYXNoUmVnaXN0ZXIgfHxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJPdmVydmlldyB8fFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuUHVyY2hhc2VPcmRlck92ZXJ2aWV3IHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyUXVvdGF0aW9uIHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TZXJ2aWNlT3JkZXJPdmVydmlld1wiPlxyXG4gICAgICAgICAgICAgIDwvY28tYWRkLXByb2R1Y3Q+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yaWVzLlNlcnZpY2VPcmRlclNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20td2lkdGggdGV4dC1ydWxlXCJcclxuICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVGV4dFNvbGlkKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVHJhbnNhY3Rpb25UZXh0KClcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1tYXJnaW4gKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyTWFyZ2luSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbWFyZ2luPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXRvdGFscyAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yeS5TZXJ2aWNlT3JkZXJTZXJ2aWNlXCJcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uVG90YWxdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25Ub3RhbFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dEaXNjb3VudF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tdG90YWxzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lcy1zaWRlLXBhbmVsICpuZ0lmPVwidHJhbnNhY3Rpb24gJiYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IHRyYW5zYWN0aW9uS2luZC5DYXNoRGVzayAmJiAhZnVsbHlJbnZvaWNlZCgpKVwiXHJcbiAgICAgICAgICBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWw+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwgKm5nSWY9XCJzaG93U2lkZVBhbmVsXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cInNob3dTaWRlUGFuZWwgPSBmYWxzZVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsPlxyXG5cclxuICAgICAgICA8IS0tUG9wdXAgdm9vciB3aWp6aWdlbiB2b2xnb3JkZSB2YW4gdGVrc3RyZWdlbHMtLT5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3ICpuZ0lmPVwic2hvd0FydGljbGVUZXh0T3ZlcnZpZXdcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dE92ZXJ2aWV3KClcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHRPdmVydmlldygpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXc+XHJcblxyXG4gICAgICAgIDwhLS1Qb3B1cCB2b29yIGFhbm1ha2VuIGVuIHVwZGF0ZW4gdHJhbnNhY3RpZXRla3N0cmVnZWxzLS0+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dCAqbmdJZj1cInNob3dUcmFuc2FjdGlvblRleHRcIlxyXG4gICAgICAgICAgW2hlYWRlcl09XCInT1JERVJfVEVYVF9MSU5FJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgW2VkaXRUZXh0XT1cInRleHRUb0VkaXRcIlxyXG4gICAgICAgICAgW29yZGVyTGluZVNldERUT109XCJzZWxlY3RlZE9yZGVyTGluZVNldERUT1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAoc2F2ZUNsaWNrKT1cInNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoc2F2ZU9yZGVyTGluZVNldENsaWNrKT1cInNhdmVPcmRlckxpbmVTZXQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG5cclxuICAgICAgICA8IS0tUG9wdXAgdm9vciBhYW5tYWtlbiBlbiB1cGRhdGVuIGFydGlrZWx0ZWtzdHJlZ2Vscy0tPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQgKm5nSWY9XCJzaG93QXJ0aWNsZVRleHRcIlxyXG4gICAgICAgICAgW2hlYWRlcl09XCInUFJPRFVDVF9ERVNDUklQVElPTl9BTkRfVEVYVFMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uVXVpZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZFwiXHJcbiAgICAgICAgICBbc2hvd0FydGljbGVJbWFnZURlc2NyaXB0aW9uXT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlQm91bmRcIlxyXG4gICAgICAgICAgW3Nob3dJbWFnZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYXJ0aWNsZUxpbmVOcl09XCJ0cmFuc2FjdGlvbkxpbmUubGluZU5yXCJcclxuICAgICAgICAgIFthcnRpY2xlUmVmXT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTnVtYmVyXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgIFtlZGl0VGV4dF09XCJ0ZXh0VG9FZGl0XCJcclxuICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZUFydGljbGVMaW5lVGV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHQoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dCgpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQ+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1jb3B5LW9yZGVyICpuZ0lmPVwic2hvd0NvcHlPcmRlckRpYWxvZ1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgKGNsb3NlRGlhbG9nKT1cInNob3dDb3B5T3JkZXJEaWFsb2cgPSBmYWxzZVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tY29weS1vcmRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uSW50ZXJuYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yaWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGVsaXZlcnlQbGFubmluZ01vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ01vZGVzID0gRGVsaXZlcnlQbGFubmluZ01vZGVzO1xyXG4gIHB1YmxpYyByZWFkb25seSB2aWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbktpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgc2NyZWVuV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQpXHJcbiAgcHVibGljIHNpZGVQYW5lbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYyA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgIH1cclxuICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkID0gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3NPcmRlckRhdGE6IFBvc09yZGVyRGF0YTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Vmlld01vZGVCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25QbGFubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJzRGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPigpO1xyXG5cclxuICAvL1RoaXMgb3V0cHV0IGV4aXN0cyBmb3IgYnVuZGxlIHB1cnBvc2VzLlxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzZXJ2aWNlUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8e3RyYW5zYWN0aW9uTnI6IG51bWJlciwgdHJhbnNhY3Rpb25JZDogbnVtYmVyLCBsaW5lTnI6IG51bWJlcn0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7dHJhbnNhY3Rpb25OcjogbnVtYmVyLCB0cmFuc2FjdGlvbklkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyfT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LXF1aWNrLWFjY2VzcycpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1F1aWNrQWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LWJ1dHRvbi1iYXInKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dCdXR0b25CYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWludGVybmFsJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlVmlld01vZGU6IENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xyXG4gIHB1YmxpYyBhY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHVibGljIHNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gIHB1YmxpYyBzZWxlY3RlZE9yZGVyTGluZVNldERUTzogT3JkZXJMaW5lU2V0RFRPO1xyXG4gIHB1YmxpYyBzaG93U2lkZVBhbmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3VsZFNob3dTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0FydGljbGVUZXh0T3ZlcnZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1RyYW5zYWN0aW9uVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0NvcHlPcmRlckRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdGV4dFRvRWRpdDogc3RyaW5nO1xyXG4gIHB1YmxpYyBoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXM6IFRyYW5zYWN0aW9uTGluZUluZm9bXSB8IG51bGw7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTWFyZ2luSW5mbzogVHJhbnNhY3Rpb25NYXJnaW5JbmZvID0gbmV3IFRyYW5zYWN0aW9uTWFyZ2luSW5mbygpO1xyXG5cclxuICBwdWJsaWMgbGluZURyYWdnZWRPdmVyOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNCYXJDb25maWdOYW1lczogU3RhdHVzQmFyQ2ZnTmFtZXMgPSB7XHJcbiAgICBzdGF0dXNCYXJCVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCVCxcclxuICAgIHN0YXR1c0JhclRHOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRHLFxyXG4gICAgc3RhdHVzQmFyUEE6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyUEEsXHJcbiAgICBzdGF0dXNCYXJQVjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQVixcclxuICAgIHN0YXR1c0JhclRQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRQLFxyXG4gICAgc3RhdHVzQmFyR1Q6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR1QsXHJcbiAgICBzdGF0dXNCYXJHUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHUCxcclxuICAgIHN0YXR1c0JhckdMOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdMLFxyXG4gICAgc3RhdHVzQmFyR0Y6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0YsXHJcbiAgICBzdGF0dXNCYXJJQjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJJQixcclxuICAgIHN0YXR1c0Jhck5UOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0Jhck5ULFxyXG4gICAgc3RhdHVzQmFyQk46IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyQk4sXHJcbiAgICBzdGF0dXNCYXJCRzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCRyxcclxuICAgIHN0YXR1c0JhckZDOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckZDXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICBwcml2YXRlIF9jb25maXJtYXRpb25BbmFseXNpc0lkOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICBwcml2YXRlIF9keW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2xpbmVTZWxlY3Rpb25TZXJ2aWNlOiBMaW5lU2VsZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25CYXNlU2VydmljZTogVHJhbnNhY3Rpb25CYXNlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25VcGRhdGVkLnN1YnNjcmliZSgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3VsZFNob3dTaWRlUGFuZWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zYWN0aW9uTGluZSgpO1xyXG4gICAgICAgICAgLy8gaWYgKHRyYW5zYWN0aW9uPy50cmFuc2FjdGlvbkluZm8/LnV1aWQpIHtcclxuICAgICAgICAgIC8vICAgdGhpcy5nZXRUcmFuc2FjdGlvbk1hcmdpbkluZm8odHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mby5pZCAmJiB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcikge1xyXG4gICAgICAgICAgICB0aGlzLmdldFBsYW5PcmRlckZvclRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25NYXJnZVZpZXdDbGlja2VkLnN1YnNjcmliZSgobG9hZDogYm9vbGVhbik9PiB7XHJcbiAgICAgICAgaWYgKGxvYWQgJiYgdGhpcy5fdHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRUcmFuc2FjdGlvbk1hcmdpbkluZm8odGhpcy5fdHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpID0+IHtcclxuICAgICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICAgIHRoaXMucmVsYXRpb24gPSByZWxhdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25LaW5kU2V0LnN1YnNjcmliZSgoc2V0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHNldCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuY29uZmlybWF0aW9uQW5hbHlzaXNJZCA/IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbiA6IHRoaXMuc2VydmljZS5hY3RpdmVSdWJyaWM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmNvbm5lY3Rpb25Jbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbk5lZWRlZC5zdWJzY3JpYmUoKG5lZWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChuZWVkZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZVNob3dTaWRlUGFuZWwodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzWzBdLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZURyYWdnZWRPdmVyLnN1YnNjcmliZSgobGluZU5yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5saW5lRHJhZ2dlZE92ZXIgPSBsaW5lTnI7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlbkFydGljbGVUZXh0T3ZlcnZpZXcuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkVHJhbnNhY3Rpb25UZXh0LnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93VHJhbnNhY3Rpb25UZXh0KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkQXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmVkaXRUcmFuc2FjdGlvblRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRUcmFuc2FjdGlvblRleHQobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5lZGl0QXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VCdXR0b25DbGlja2VkLnN1YnNjcmliZSgobGluZU5yKSA9PiB0aGlzLmhhbmRsZUNyZWF0ZVNlcnZpY2VSZXF1ZXN0KGxpbmVOcikpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zaG93RXJyb3Iuc3Vic2NyaWJlKChlKSA9PlxyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKGUubWVzc2FnZSwgZS5sb2NhbGl6ZSwgZS5kZXRhaWxzKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNvcHlPcmRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93Q29weU9yZGVyRGlhbG9nID0gdHJ1ZSlcclxuICAgICk7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVJlbGF0aW9uQ2hhbmdlKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbiA9IHJlbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJ1dHRvbkJhckJ1dHRvbkNsaWNrZWQoYnV0dG9uOiBUcmFuc2FjdGlvbkJhckJ1dHRvbik6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IGJ1dHRvbi5jYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93U2lkZVBhbmVsKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8sIGZvcmNlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChsaW5lIHx8IGZvcmNlKSB7XHJcbiAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgICAgdGhpcy5zaG93U2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvblRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmFkZFRyYW5zYWN0aW9uVGV4dC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHRPdmVydmlldyhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAobGluZSkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dUcmFuc2FjdGlvblRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRleHRUb0VkaXQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPID0gbmV3IE9yZGVyTGluZVNldERUTygpO1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd0FydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIGlmIChsaW5lKSB7XHJcbiAgICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KGRhdGE6IHsgcmVxdWVzdDogVHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QsIG5ldzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICBkYXRhLnJlcXVlc3QudGV4dCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5hcnRpY2xlQm91bmQsXHJcbiAgICAgICAgMCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlT3JkZXJMaW5lU2V0KGRhdGE6IHsgcmVxdWVzdDogT3JkZXJMaW5lU2V0RFRPLCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFkYXRhLm5ldykge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlT3JkZXJMaW5lU2V0KGRhdGEucmVxdWVzdCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGl0bGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbmV3UmVxdWVzdDogVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QoKTtcclxuICAgICAgbmV3UmVxdWVzdC5vcmRlckxpbmVTZXRUZXh0ID0gZGF0YS5yZXF1ZXN0LnRleHQ7XHJcbiAgICAgIG5ld1JlcXVlc3QuYW1vdW50ID0gZGF0YS5yZXF1ZXN0LmFtb3VudDtcclxuICAgICAgbmV3UmVxdWVzdC5jYXRlZ29yeUlkID0gZGF0YS5yZXF1ZXN0LmNhdGVnb3J5SWQ7XHJcbiAgICAgIG5ld1JlcXVlc3QuY29sb3IgPSBkYXRhLnJlcXVlc3QuY29sb3I7XHJcbiAgICAgIG5ld1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZDtcclxuICAgICAgbmV3UmVxdWVzdC5zaG93T25Eb2N1bWVudHMgPSBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzO1xyXG4gICAgICBuZXdSZXF1ZXN0LnRleHQgPSBkYXRhLnJlcXVlc3QudGl0bGU7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRPcmRlckxpbmVTZXQobmV3UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZUFydGljbGVMaW5lVGV4dChkYXRhOiB7IHJlcXVlc3Q6IFRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0LCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFkYXRhLm5ldykgeyAvL3VwZGF0ZVxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlVGV4dExpbmUoZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZCwgdGhpcy50cmFuc2FjdGlvbkxpbmUudXVpZCwgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cywgZGF0YS5yZXF1ZXN0LnRleHQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRleHRMaW5lKFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHMsXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnRleHQsXHJcbiAgICAgICAgMCxcclxuICAgICAgICB0cnVlLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5yZWZBcnRpY2xlTGluZU5yXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFZGl0VHJhbnNhY3Rpb25UZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcmRlckxpbmVTZXREVE8gPSB0aGlzLl9nZXRPcmRlckxpbmVTZXRJZkV4aXN0cyhsaW5lKTtcclxuICAgIGlmIChpc05pbGwodGhpcy5zZWxlY3RlZE9yZGVyTGluZVNldERUTykpIHtcclxuICAgICAgdGhpcy50ZXh0VG9FZGl0ID0gbGluZS50ZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKGxpbmUuaXNUZXh0KSB7XHJcbiAgICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKGxpbmUuYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dCAmJiBsaW5lLmFydGljbGVCb3VuZENvbmNhdGVuYXRlZFRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICB0aGlzLnNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRWRpdEFydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dFRvRWRpdCA9IGxpbmUudGV4dDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNyZWF0ZVNlcnZpY2VSZXF1ZXN0KGxpbmVOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAobGluZU5yICYmIHRoaXMudHJhbnNhY3Rpb24pIHsvKlxyXG4gICAgICBsZXQgcmVxdWVzdDpDcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlVHJhbnNhY3Rpb25MaW5lUmVxdWVzdCA9IG5ldyBDcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlVHJhbnNhY3Rpb25MaW5lUmVxdWVzdCgpO1xyXG4gICAgICByZXF1ZXN0LnNvdXJjZUxpbmVOciA9IGxpbmUubGluZU5yO1xyXG4gICAgICByZXF1ZXN0LnNvdXJjZVRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgcmVxdWVzdC5jdXN0b21lclJlbGF0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbklkO1xyXG4gICAgICByZXF1ZXN0LmJyYW5jaE5yID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uYnJhbmNoLnJlbGF0aW9uTnI7Ki9cclxuXHJcbiAgICAgIC8qdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VUcmFuc2FjdGlvbkxpbmUocmVxdWVzdCkudGhlbigocmVzdWx0OiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmKHJlc3VsdCkgeyovXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnJlcXVlc3RDcmVhdGVTZXJ2aWNlT3JkZXJGcm9tVHJhbnNhY3Rpb25MaW5lLm5leHQoe3RyYW5zYWN0aW9uOiB0aGlzLnRyYW5zYWN0aW9uLCBsaW5lTnI6IGxpbmVOcn0pO1xyXG4gICAgICAvL2FkZGVkIGZvciBidW5kbGUgcHVycG9zZXMgc28gd2UgY2FuIHBhc3MgdGhlIHZhbHVlIGFsb25nIHdpdGhvdXQgdGhlIGV2ZW50IHNlcnZpY2UuIFVzZSB0aGUgZXZlbnQgc2VydmljZSBpbiBhbGwgb3RoZXIgY2FzZXMuXHJcbiAgICAgIHRoaXMuc2VydmljZVJlcXVlc3RlZC5lbWl0KHt0cmFuc2FjdGlvbk5yOiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yLCB0cmFuc2FjdGlvbklkOiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCwgbGluZU5yOiBsaW5lTnJ9KVxyXG4gICAgIC8qICAgfVxyXG4gICAgICB9KTsqL1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQXJ0aWNsZVRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3VsZFNob3dUaWxlcygpOiBib29sZWFuIHtcclxuICAgIC8vIEFkanVzdCB0aGUgd2lkdGggY29uZGl0aW9uIGFzIG5lZWRlZFxyXG4gICAgcmV0dXJuIHRoaXMuc2NyZWVuV2lkdGggPCAxMjgwOyAvLyBTaG93IHRoZSBkaXYgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXIgdGhhbiAxMjgwcHhcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmdWxseUludm9pY2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLnRyYW5zYWN0aW9uICYmXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvICYmXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmhlYWRlckluZm9TdGF0dXMgJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5oYXNPd25Qcm9wZXJ0eSgnaXNGdWxseUludm9pY2VkJykgJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5pc0Z1bGx5SW52b2ljZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0T3JkZXJMaW5lU2V0SWZFeGlzdHMobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IE9yZGVyTGluZVNldERUTyB7XHJcbiAgICBpZiAoIWxpbmUub3JkZXJMaW5lU2V0Q29kZSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGxpbmVTZXQ6IE9yZGVyTGluZVNldEluZm8gPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzLmZpbmQoc2V0ID0+IHNldC5vcmRlckxpbmVTZXRDb2RlID09PSBsaW5lLm9yZGVyTGluZVNldENvZGUpO1xyXG4gICAgICBpZiAoIWxpbmVTZXQpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgRFRPOiBPcmRlckxpbmVTZXREVE8gPSBuZXcgT3JkZXJMaW5lU2V0RFRPKCk7XHJcbiAgICAgICAgRFRPLm9yZGVyTGluZVNldENvZGUgPSBsaW5lU2V0Lm9yZGVyTGluZVNldENvZGU7XHJcbiAgICAgICAgRFRPLm9yZGVyTGluZVNldElkID0gbGluZVNldC5vcmRlckxpbmVTZXRJZDtcclxuICAgICAgICBEVE8udGV4dCA9IGxpbmVTZXQudGV4dDtcclxuICAgICAgICBEVE8uYW1vdW50ID0gbGluZVNldC5hbW91bnQ7XHJcbiAgICAgICAgRFRPLnRpdGxlID0gbGluZVNldC50aXRsZTtcclxuICAgICAgICBEVE8uY29sb3IgPSBsaW5lU2V0LmNvbG9yO1xyXG4gICAgICAgIERUTy5jYXRlZ29yeUlkID0gbGluZVNldC5jYXRlZ29yeUlkO1xyXG4gICAgICAgIHJldHVybiBEVE87XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVHJhbnNhY3Rpb25MaW5lKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgLmZpbmQoKGxpbmUpID0+IGxpbmUubGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgLmZpbmQoKGxpbmUpID0+IGxpbmUubGluZU5yID09PSB0aGlzLnNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIF9wcmVwYXJlSGVhZGVyKCk6IHZvaWQge1xyXG4gIC8vICAgICBpZiAodGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9yZGVySW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlBheW1lbnRJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgLy8gICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVsaXZlcnlJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpKSB7XHJcbiAgLy8gICAgICAgICAvLyBub3RoaW5nIHRvIHNlZSBoZXJlXHJcbiAgLy8gICAgICAgICB0aGlzLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAvLyAgICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uTWFyZ2luSW5mbyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRyYW5zYWN0aW9uVVVJRCkge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uTWFyZ2luSW5mbyA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQmFzZVNlcnZpY2UubG9hZFRyYW5zYWN0aW9uTWFyZ2VJbmZvTGlzdCh0cmFuc2FjdGlvblVVSUQpO1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkJhc2VTZXJ2aWNlLnRyYW5zYWN0aW9uTG9jYWxNYXJnaW5JbmZvID0gcmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVZpZXdNb2RlQ2hhbmdlKG1vZGU6IENvbnRlbnRWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5hY3RpdmVWaWV3TW9kZSA9IG1vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UGxhbk9yZGVyRm9yVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICBpZiAoIXRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZz8ucGxhbm5pbmdJZCkge1xyXG4gICAgICBjb25zdCBwbGFubmluZ1NvdXJjZXM6IFBsYW5uaW5nW10gPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0UGxhbm5pbmdTb3VyY2VzKCk7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZyA9IHBsYW5uaW5nU291cmNlc1swXSA/IHBsYW5uaW5nU291cmNlc1swXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGxldCBwbGFuT3JkZXI6IFBsYW5PcmRlciA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRQbGFuT3JkZXIodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuXHJcbiAgICBpZihwbGFuT3JkZXIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZ2V0U2VxdWVuY2VPcmRlclZhbHVlKHBsYW5PcmRlcik7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldE9yZGVyTGluZXNQbGFubmVkKHBsYW5PcmRlcik7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyID0gcGxhbk9yZGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
558
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUV2SCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsYUFB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QUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNyRSxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7YUFDMUQ7O0tBQ0Y7OztZQWpsQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9KVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBbExPLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFFbEIsdUJBQXVCO1lBMUI3QixjQUFjO1lBeUJSLHVCQUF1QjtZQVl2QiwyQkFBMkI7WUFYM0IsdUJBQXVCO1lBQ3ZCLHFDQUFxQztZQUNyQyxhQUFhO1lBQ2Isb0JBQW9CO1lBU3BCLDJCQUEyQjtZQUszQix1QkFBdUI7WUFJdkIsc0JBQXNCOzs7a0NBcUszQixZQUFZLFNBQUMsaUNBQWlDO3VCQUc5QyxLQUFLO3FDQUdMLEtBQUs7MkJBY0wsS0FBSzswQkFHTCxLQUFLO3lCQVdMLEtBQUs7a0NBR0wsS0FBSztrQ0FHTCxLQUFLOzZCQUdMLE1BQU07K0JBSU4sTUFBTTs4QkFHTixXQUFXLFNBQUMseUJBQXlCLGNBQ3JDLEtBQUs7NEJBR0wsV0FBVyxTQUFDLHVCQUF1QixjQUNuQyxLQUFLO3dCQUdMLFdBQVcsU0FBQywrQkFBK0I7dUJBSzNDLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7Q29udGVudFZpZXdNb2RlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsL3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvcmVsYXRpb24tYW55LXR5cGUnO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1N0YXR1c0JhckNmZ05hbWVzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvc3RhdHVzLWJhci1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RHluYW1pY0NvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtMaW5lU2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9saW5lLXNlbGVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhckJ1dHRvbn0gZnJvbSAnLi4vLi4vbW9kZWwvdHJhbnNhY3Rpb24tYmFyLWJ1dHRvbic7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtdGV4dC1saW5lLXJlcXVlc3QuYm8nO1xyXG5pbXBvcnQge09yZGVyTGluZVNldERUT30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmUtc2V0LWR0byc7XHJcbmltcG9ydCB7T3JkZXJMaW5lU2V0SW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmUtc2V0LWluZm8uYm8nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uQWRkT3JkZXJMaW5lU2V0VGV4dExpbmVSZXF1ZXN0XHJcbn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWFkZC1vcmRlci1saW5lLXNldC10ZXh0LWxpbmUtcmVxdWVzdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHVyY2hhc2UtY29uZmlybWF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdXRpbHMvZnVuY3Rpb24vaXMtbmlsbC5mdW5jdGlvbic7XHJcbmltcG9ydCB7UG9zT3JkZXJEYXRhfSBmcm9tICcuLi8uLi9tb2RlbC9wb3Mtb3JkZXItZGF0YSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTWFyZ2luSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLW1hcmdpbi1pbmZvLmJvJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSAnLi4vZGVsaXZlcnktcGxhbm5pbmcvc2VydmljZS9kZWxpdmVyeS1wbGFubmluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nTW9kZXN9IGZyb20gJy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctbW9kZXMuZW51bSc7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbi1vcmRlci5ibyc7XHJcbmltcG9ydCB7UGxhbm5pbmd9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1iYXNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1pbnRlcm5hbCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZWRcIj5cclxuICAgICAgPGNvLWNsaWNrLWJsb2NrPjwvY28tY2xpY2stYmxvY2s+XHJcbiAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXJcclxuICAgICAgICAqbmdJZj1cInNob3dIZWFkZXJcIlxyXG4gICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAocmVsYXRpb25DaGFuZ2UpPVwiaGFuZGxlUmVsYXRpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlcj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzICpuZ0lmPVwic2hvd1F1aWNrQWNjZXNzXCJcclxuICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyLWl0ZW1cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcz5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYnV0dG9uLWJhciAqbmdJZj1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVCdXR0b25CYXJCdXR0b25DbGlja2VkKCRldmVudClcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbSByaWdodFwiPlxyXG4gICAgICAgICAgPGNvLWF2YXRhclxyXG4gICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLXNhbGVzLWF2YXRhclwiXHJcbiAgICAgICAgICAgIFtyZWxhdGlvbklkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5oYW5kbGVkQnlcIlxyXG4gICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJIYW5kbGVkQnlcIlxyXG4gICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgPC9jby1hdmF0YXI+XHJcbiAgICAgICAgICA8Y28tYXZhdGFyXHJcbiAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tc2FsZXMtYXZhdGFyXCJcclxuICAgICAgICAgICAgW3JlbGF0aW9uSWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmJyYW5jaD8ucmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckJyYW5jaFwiXHJcbiAgICAgICAgICAgIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICA8L2NvLWF2YXRhcj5cclxuICAgICAgICAgIDxjby12aWV3LW1vZGUtYnV0dG9ucyAqbmdJZj1cIiFzaG91bGRTaG93VGlsZXMoKSAmJiBzaG93Vmlld01vZGVCdXR0b25zXCJcclxuICAgICAgICAgICAgW3Nob3dWaWV3TW9kZXNdPVwiW3ZpZXdNb2Rlcy5MaXN0LCB2aWV3TW9kZXMuVGlsZXNdXCJcclxuICAgICAgICAgICAgKHZpZXdNb2RlQ2hhbmdlKT1cImhhbmRsZVZpZXdNb2RlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tdmlldy1tb2RlLWJ1dHRvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgIDwhLS08Y28tdHJhbnNhY3Rpb24tZG9jdW1lbnQtYnV0dG9uLWJhciBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj48L2NvLXRyYW5zYWN0aW9uLWRvY3VtZW50LWJ1dHRvbi1iYXI+LS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnkuU2VydmljZU9yZGVyU2VydmljZVwiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldyBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiPjwvY28tdHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRpbGVzLXdyYXBwZXJcIiAqbmdJZj1cImFjdGl2ZVZpZXdNb2RlID09PSB2aWV3TW9kZXMuVGlsZXMgfHwgc2hvdWxkU2hvd1RpbGVzKCkgfHwgdHJhbnNhY3Rpb25QbGFubmluZ1wiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tY2FyZHNcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLnBsYW5uaW5nLWNhcmRzXT1cInRyYW5zYWN0aW9uUGxhbm5pbmdcIj5cclxuICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1jYXJkcz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cIihhY3RpdmVWaWV3TW9kZSA9PT0gdmlld01vZGVzLkxpc3QgJiYgIXNob3VsZFNob3dUaWxlcygpKSAmJiBhY3RpdmVDYXRlZ29yeSAhPT0gY2F0ZWdvcnkuU2VydmljZU9yZGVyU2VydmljZSAmJiAhdHJhbnNhY3Rpb25QbGFubmluZ1wiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZXNcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgKHNhdmVUcmFuc2FjdGlvbkxpbmUpPVwic2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZvb3Rlci1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWFkZC1wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJDYXNoUmVnaXN0ZXIgfHxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJPdmVydmlldyB8fFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuUHVyY2hhc2VPcmRlck92ZXJ2aWV3IHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyUXVvdGF0aW9uIHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TZXJ2aWNlT3JkZXJPdmVydmlld1wiPlxyXG4gICAgICAgICAgICAgIDwvY28tYWRkLXByb2R1Y3Q+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yaWVzLlNlcnZpY2VPcmRlclNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20td2lkdGggdGV4dC1ydWxlXCJcclxuICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVGV4dFNvbGlkKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVHJhbnNhY3Rpb25UZXh0KClcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1tYXJnaW4gKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyTWFyZ2luSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbWFyZ2luPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXRvdGFscyAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yeS5TZXJ2aWNlT3JkZXJTZXJ2aWNlXCJcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uVG90YWxdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25Ub3RhbFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dEaXNjb3VudF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tdG90YWxzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lcy1zaWRlLXBhbmVsICpuZ0lmPVwidHJhbnNhY3Rpb24gJiYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IHRyYW5zYWN0aW9uS2luZC5DYXNoRGVzayAmJiAhZnVsbHlJbnZvaWNlZCgpKVwiXHJcbiAgICAgICAgICBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWw+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwgKm5nSWY9XCJzaG93U2lkZVBhbmVsXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cInNob3dTaWRlUGFuZWwgPSBmYWxzZVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsPlxyXG5cclxuICAgICAgICA8IS0tUG9wdXAgdm9vciB3aWp6aWdlbiB2b2xnb3JkZSB2YW4gdGVrc3RyZWdlbHMtLT5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3ICpuZ0lmPVwic2hvd0FydGljbGVUZXh0T3ZlcnZpZXdcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dE92ZXJ2aWV3KClcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHRPdmVydmlldygpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXc+XHJcblxyXG4gICAgICAgIDwhLS1Qb3B1cCB2b29yIGFhbm1ha2VuIGVuIHVwZGF0ZW4gdHJhbnNhY3RpZXRla3N0cmVnZWxzLS0+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dCAqbmdJZj1cInNob3dUcmFuc2FjdGlvblRleHRcIlxyXG4gICAgICAgICAgW2hlYWRlcl09XCInT1JERVJfVEVYVF9MSU5FJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgW2VkaXRUZXh0XT1cInRleHRUb0VkaXRcIlxyXG4gICAgICAgICAgW29yZGVyTGluZVNldERUT109XCJzZWxlY3RlZE9yZGVyTGluZVNldERUT1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAoc2F2ZUNsaWNrKT1cInNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoc2F2ZU9yZGVyTGluZVNldENsaWNrKT1cInNhdmVPcmRlckxpbmVTZXQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG5cclxuICAgICAgICA8IS0tUG9wdXAgdm9vciBhYW5tYWtlbiBlbiB1cGRhdGVuIGFydGlrZWx0ZWtzdHJlZ2Vscy0tPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQgKm5nSWY9XCJzaG93QXJ0aWNsZVRleHRcIlxyXG4gICAgICAgICAgW2hlYWRlcl09XCInUFJPRFVDVF9ERVNDUklQVElPTl9BTkRfVEVYVFMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uVXVpZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZFwiXHJcbiAgICAgICAgICBbc2hvd0FydGljbGVJbWFnZURlc2NyaXB0aW9uXT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlQm91bmRcIlxyXG4gICAgICAgICAgW3Nob3dJbWFnZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYXJ0aWNsZUxpbmVOcl09XCJ0cmFuc2FjdGlvbkxpbmUubGluZU5yXCJcclxuICAgICAgICAgIFthcnRpY2xlUmVmXT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTnVtYmVyXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgIFtlZGl0VGV4dF09XCJ0ZXh0VG9FZGl0XCJcclxuICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZUFydGljbGVMaW5lVGV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHQoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dCgpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQ+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1jb3B5LW9yZGVyICpuZ0lmPVwic2hvd0NvcHlPcmRlckRpYWxvZ1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgKGNsb3NlRGlhbG9nKT1cInNob3dDb3B5T3JkZXJEaWFsb2cgPSBmYWxzZVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tY29weS1vcmRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uSW50ZXJuYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yaWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGVsaXZlcnlQbGFubmluZ01vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ01vZGVzID0gRGVsaXZlcnlQbGFubmluZ01vZGVzO1xyXG4gIHB1YmxpYyByZWFkb25seSB2aWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbktpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgc2NyZWVuV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQpXHJcbiAgcHVibGljIHNpZGVQYW5lbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYyA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgIH1cclxuICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkID0gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3NPcmRlckRhdGE6IFBvc09yZGVyRGF0YTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Vmlld01vZGVCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25QbGFubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVsYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+KCk7XHJcblxyXG4gIC8vVGhpcyBvdXRwdXQgZXhpc3RzIGZvciBidW5kbGUgcHVycG9zZXMuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlcnZpY2VSZXF1ZXN0ZWQ6IEV2ZW50RW1pdHRlcjx7dHJhbnNhY3Rpb25OcjogbnVtYmVyLCB0cmFuc2FjdGlvbklkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHt0cmFuc2FjdGlvbk5yOiBudW1iZXIsIHRyYW5zYWN0aW9uSWQ6IG51bWJlciwgbGluZU5yOiBudW1iZXJ9PigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNob3ctcXVpY2stYWNjZXNzJylcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93UXVpY2tBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNob3ctYnV0dG9uLWJhcicpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0J1dHRvbkJhcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24taW50ZXJuYWwnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVWaWV3TW9kZTogQ29udGVudFZpZXdNb2RlID0gQ29udGVudFZpZXdNb2RlLkxpc3Q7XHJcbiAgcHVibGljIGFjdGl2ZUNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcbiAgcHVibGljIHNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPOiBPcmRlckxpbmVTZXREVE87XHJcbiAgcHVibGljIHNob3dTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvdWxkU2hvd1NpZGVQYW5lbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHRPdmVydmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25UZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dBcnRpY2xlVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93Q29weU9yZGVyRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0ZXh0VG9FZGl0OiBzdHJpbmc7XHJcbiAgcHVibGljIGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdIHwgbnVsbDtcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25NYXJnaW5JbmZvOiBUcmFuc2FjdGlvbk1hcmdpbkluZm8gPSBuZXcgVHJhbnNhY3Rpb25NYXJnaW5JbmZvKCk7XHJcblxyXG4gIHB1YmxpYyBsaW5lRHJhZ2dlZE92ZXI6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgc3RhdHVzQmFyVEc6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVEcsXHJcbiAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgc3RhdHVzQmFyVFA6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVFAsXHJcbiAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgc3RhdHVzQmFyR0w6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0wsXHJcbiAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRixcclxuICAgIHN0YXR1c0JhcklCOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhcklCLFxyXG4gICAgc3RhdHVzQmFyTlQ6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyTlQsXHJcbiAgICBzdGF0dXNCYXJCTjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCTixcclxuICAgIHN0YXR1c0JhckJHOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJHLFxyXG4gICAgc3RhdHVzQmFyRkM6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyRkNcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IG5ldyBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSgpO1xyXG4gIHByaXZhdGUgX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbGluZVNlbGVjdGlvblNlcnZpY2U6IExpbmVTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlOiBQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkJhc2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkJhc2VTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvblVwZGF0ZWQuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAodHJhbnNhY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNhY3Rpb25MaW5lKCk7XHJcbiAgICAgICAgICAvLyBpZiAodHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmdldFRyYW5zYWN0aW9uTWFyZ2luSW5mbyh0cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvPy51dWlkKTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIGlmICh0cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvLmlkICYmIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UGxhbk9yZGVyRm9yVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbk1hcmdlVmlld0NsaWNrZWQuc3Vic2NyaWJlKChsb2FkOiBib29sZWFuKT0+IHtcclxuICAgICAgICBpZiAobG9hZCAmJiB0aGlzLl90cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvPy51dWlkKSB7XHJcbiAgICAgICAgICB0aGlzLmdldFRyYW5zYWN0aW9uTWFyZ2luSW5mbyh0aGlzLl90cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvPy51dWlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UucmVsYXRpb25VcGRhdGVkLnN1YnNjcmliZSgocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZWxhdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5yZWxhdGlvbiA9IHJlbGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbktpbmRTZXQuc3Vic2NyaWJlKChzZXQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoc2V0KSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5jb25maXJtYXRpb25BbmFseXNpc0lkID8gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uIDogdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYztcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybWF0aW9uTmVlZGVkLnN1YnNjcmliZSgobmVlZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKG5lZWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5zaG91bGRTaG93U2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlU2hvd1NpZGVQYW5lbCh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNbMF0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lRHJhZ2dlZE92ZXIuc3Vic2NyaWJlKChsaW5lTnIpID0+IHtcclxuICAgICAgICB0aGlzLmxpbmVEcmFnZ2VkT3ZlciA9IGxpbmVOcjtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dTaWRlUGFuZWwobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuQXJ0aWNsZVRleHRPdmVydmlldy5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlU2hvd0FydGljbGVUZXh0T3ZlcnZpZXcobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5hZGRUcmFuc2FjdGlvblRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dUcmFuc2FjdGlvblRleHQobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5hZGRBcnRpY2xlVGV4dC5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlU2hvd0FydGljbGVUZXh0KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuZWRpdFRyYW5zYWN0aW9uVGV4dC5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlRWRpdFRyYW5zYWN0aW9uVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmVkaXRBcnRpY2xlVGV4dC5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlRWRpdEFydGljbGVUZXh0KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuY3JlYXRlU2VydmljZUJ1dHRvbkNsaWNrZWQuc3Vic2NyaWJlKChsaW5lTnIpID0+IHRoaXMuaGFuZGxlQ3JlYXRlU2VydmljZVJlcXVlc3QobGluZU5yKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNob3dFcnJvci5zdWJzY3JpYmUoKGUpID0+XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93RXJyb3IoZS5tZXNzYWdlLCBlLmxvY2FsaXplLCBlLmRldGFpbHMpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuY29weU9yZGVyLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dDb3B5T3JkZXJEaWFsb2cgPSB0cnVlKVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUmVsYXRpb25DaGFuZ2UocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uID0gcmVsYXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQnV0dG9uQmFyQnV0dG9uQ2xpY2tlZChidXR0b246IFRyYW5zYWN0aW9uQmFyQnV0dG9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYnV0dG9uLmNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dTaWRlUGFuZWwobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGxpbmUgfHwgZm9yY2UpIHtcclxuICAgICAgdGhpcy5zaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICB0aGlzLnNob3dTaWRlUGFuZWwgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRyYW5zYWN0aW9uVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkVHJhbnNhY3Rpb25UZXh0Lm5leHQodGhpcy50cmFuc2FjdGlvbkxpbmUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIGlmIChsaW5lKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd1RyYW5zYWN0aW9uVGV4dChsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcmRlckxpbmVTZXREVE8gPSBuZXcgT3JkZXJMaW5lU2V0RFRPKCk7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgaWYgKGxpbmUpIHtcclxuICAgICAgdGhpcy50ZXh0VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoZGF0YTogeyByZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdCwgbmV3OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghZGF0YS5uZXcpIHsgLy91cGRhdGVcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZVRleHRMaW5lKGRhdGEucmVxdWVzdC50cmFuc2FjdGlvblV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQsIGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHMsIGRhdGEucmVxdWVzdC50ZXh0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUZXh0TGluZShcclxuICAgICAgICBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC50ZXh0LFxyXG4gICAgICAgIDAsXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LmFydGljbGVCb3VuZCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIDAsXHJcbiAgICAgICAgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faGlkZVRyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVPcmRlckxpbmVTZXQoZGF0YTogeyByZXF1ZXN0OiBPcmRlckxpbmVTZXREVE8sIG5ldzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIWRhdGEubmV3KSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVPcmRlckxpbmVTZXQoZGF0YS5yZXF1ZXN0KTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZVRleHRMaW5lKGRhdGEucmVxdWVzdC50cmFuc2FjdGlvblV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQsIGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHMsIGRhdGEucmVxdWVzdC50aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBuZXdSZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdCA9IG5ldyBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdCgpO1xyXG4gICAgICBuZXdSZXF1ZXN0Lm9yZGVyTGluZVNldFRleHQgPSBkYXRhLnJlcXVlc3QudGV4dDtcclxuICAgICAgbmV3UmVxdWVzdC5hbW91bnQgPSBkYXRhLnJlcXVlc3QuYW1vdW50O1xyXG4gICAgICBuZXdSZXF1ZXN0LmNhdGVnb3J5SWQgPSBkYXRhLnJlcXVlc3QuY2F0ZWdvcnlJZDtcclxuICAgICAgbmV3UmVxdWVzdC5jb2xvciA9IGRhdGEucmVxdWVzdC5jb2xvcjtcclxuICAgICAgbmV3UmVxdWVzdC50cmFuc2FjdGlvblV1aWQgPSBkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkO1xyXG4gICAgICBuZXdSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyA9IGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHM7XHJcbiAgICAgIG5ld1JlcXVlc3QudGV4dCA9IGRhdGEucmVxdWVzdC50aXRsZTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZE9yZGVyTGluZVNldChuZXdSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlQXJ0aWNsZUxpbmVUZXh0KGRhdGE6IHsgcmVxdWVzdDogVHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QsIG5ldzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICBkYXRhLnJlcXVlc3QudGV4dCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIHRydWUsXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnJlZkFydGljbGVMaW5lTnJcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUVkaXRUcmFuc2FjdGlvblRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9yZGVyTGluZVNldERUTyA9IHRoaXMuX2dldE9yZGVyTGluZVNldElmRXhpc3RzKGxpbmUpO1xyXG4gICAgaWYgKGlzTmlsbCh0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPKSkge1xyXG4gICAgICB0aGlzLnRleHRUb0VkaXQgPSBsaW5lLnRleHQ7XHJcbiAgICB9XHJcbiAgICBpZiAobGluZS5pc1RleHQpIHtcclxuICAgICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgICAvLyBpZiAobGluZS5hcnRpY2xlQm91bmRDb25jYXRlbmF0ZWRUZXh0ICYmIGxpbmUuYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dC5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFZGl0QXJ0aWNsZVRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0VG9FZGl0ID0gbGluZS50ZXh0O1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgdGhpcy5faGlkZUFydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ3JlYXRlU2VydmljZVJlcXVlc3QobGluZU5yOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChsaW5lTnIgJiYgdGhpcy50cmFuc2FjdGlvbikgey8qXHJcbiAgICAgIGxldCByZXF1ZXN0OkNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VUcmFuc2FjdGlvbkxpbmVSZXF1ZXN0ID0gbmV3IENyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VUcmFuc2FjdGlvbkxpbmVSZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3Quc291cmNlTGluZU5yID0gbGluZS5saW5lTnI7XHJcbiAgICAgIHJlcXVlc3Quc291cmNlVHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICByZXF1ZXN0LmN1c3RvbWVyUmVsYXRpb25JZCA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uSWQ7XHJcbiAgICAgIHJlcXVlc3QuYnJhbmNoTnIgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5icmFuY2gucmVsYXRpb25OcjsqL1xyXG5cclxuICAgICAgLyp0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFNvdXJjZVRyYW5zYWN0aW9uTGluZShyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYocmVzdWx0KSB7Ki9cclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UucmVxdWVzdENyZWF0ZVNlcnZpY2VPcmRlckZyb21UcmFuc2FjdGlvbkxpbmUubmV4dCh7dHJhbnNhY3Rpb246IHRoaXMudHJhbnNhY3Rpb24sIGxpbmVOcjogbGluZU5yfSk7XHJcbiAgICAgIC8vYWRkZWQgZm9yIGJ1bmRsZSBwdXJwb3NlcyBzbyB3ZSBjYW4gcGFzcyB0aGUgdmFsdWUgYWxvbmcgd2l0aG91dCB0aGUgZXZlbnQgc2VydmljZS4gVXNlIHRoZSBldmVudCBzZXJ2aWNlIGluIGFsbCBvdGhlciBjYXNlcy5cclxuICAgICAgdGhpcy5zZXJ2aWNlUmVxdWVzdGVkLmVtaXQoe3RyYW5zYWN0aW9uTnI6IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uTnIsIHRyYW5zYWN0aW9uSWQ6IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkLCBsaW5lTnI6IGxpbmVOcn0pXHJcbiAgICAgLyogICB9XHJcbiAgICAgIH0pOyovXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VBcnRpY2xlVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlVHJhbnNhY3Rpb25UZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGlkZVRyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQXJ0aWNsZVRleHRPdmVydmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1RyYW5zYWN0aW9uVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0FydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvdWxkU2hvd1RpbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gQWRqdXN0IHRoZSB3aWR0aCBjb25kaXRpb24gYXMgbmVlZGVkXHJcbiAgICByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aCA8IDEyODA7IC8vIFNob3cgdGhlIGRpdiBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlciB0aGFuIDEyODBweFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZ1bGx5SW52b2ljZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMudHJhbnNhY3Rpb24gJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8gJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cyAmJlxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5oZWFkZXJJbmZvU3RhdHVzLmhhc093blByb3BlcnR5KCdpc0Z1bGx5SW52b2ljZWQnKSAmJlxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5oZWFkZXJJbmZvU3RhdHVzLmlzRnVsbHlJbnZvaWNlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRPcmRlckxpbmVTZXRJZkV4aXN0cyhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogT3JkZXJMaW5lU2V0RFRPIHtcclxuICAgIGlmICghbGluZS5vcmRlckxpbmVTZXRDb2RlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbGluZVNldDogT3JkZXJMaW5lU2V0SW5mbyA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMuZmluZChzZXQgPT4gc2V0Lm9yZGVyTGluZVNldENvZGUgPT09IGxpbmUub3JkZXJMaW5lU2V0Q29kZSk7XHJcbiAgICAgIGlmICghbGluZVNldCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBEVE86IE9yZGVyTGluZVNldERUTyA9IG5ldyBPcmRlckxpbmVTZXREVE8oKTtcclxuICAgICAgICBEVE8ub3JkZXJMaW5lU2V0Q29kZSA9IGxpbmVTZXQub3JkZXJMaW5lU2V0Q29kZTtcclxuICAgICAgICBEVE8ub3JkZXJMaW5lU2V0SWQgPSBsaW5lU2V0Lm9yZGVyTGluZVNldElkO1xyXG4gICAgICAgIERUTy50ZXh0ID0gbGluZVNldC50ZXh0O1xyXG4gICAgICAgIERUTy5hbW91bnQgPSBsaW5lU2V0LmFtb3VudDtcclxuICAgICAgICBEVE8udGl0bGUgPSBsaW5lU2V0LnRpdGxlO1xyXG4gICAgICAgIERUTy5jb2xvciA9IGxpbmVTZXQuY29sb3I7XHJcbiAgICAgICAgRFRPLmNhdGVnb3J5SWQgPSBsaW5lU2V0LmNhdGVnb3J5SWQ7XHJcbiAgICAgICAgcmV0dXJuIERUTztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGlkZUFydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVUcmFuc2FjdGlvbkxpbmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNcclxuICAgICAgICAuZmluZCgobGluZSkgPT4gbGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgdGhpcy5zaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNcclxuICAgICAgICAuZmluZCgobGluZSkgPT4gbGluZS5saW5lTnIgPT09IHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG91bGRTaG93U2lkZVBhbmVsICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcyAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmhhbmRsZVNob3dTaWRlUGFuZWwodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHByaXZhdGUgX3ByZXBhcmVIZWFkZXIoKTogdm9pZCB7XHJcbiAgLy8gICAgIGlmICh0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25JbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgLy8gICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuT3JkZXJJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgLy8gICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUGF5bWVudEluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAvLyAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWxpdmVyeUluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkpIHtcclxuICAvLyAgICAgICAgIC8vIG5vdGhpbmcgdG8gc2VlIGhlcmVcclxuICAvLyAgICAgICAgIHRoaXMuc2hvd0hlYWRlciA9IGZhbHNlO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb25NYXJnaW5JbmZvKHRyYW5zYWN0aW9uVVVJRDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodHJhbnNhY3Rpb25VVUlEKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25NYXJnaW5JbmZvID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25CYXNlU2VydmljZS5sb2FkVHJhbnNhY3Rpb25NYXJnZUluZm9MaXN0KHRyYW5zYWN0aW9uVVVJRCk7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQmFzZVNlcnZpY2UudHJhbnNhY3Rpb25Mb2NhbE1hcmdpbkluZm8gPSByZXN1bHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVDaGFuZ2UobW9kZTogQ29udGVudFZpZXdNb2RlKSB7XHJcbiAgICB0aGlzLmFjdGl2ZVZpZXdNb2RlID0gbW9kZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQbGFuT3JkZXJGb3JUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpIHtcclxuICAgIGlmICghdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nPy5wbGFubmluZ0lkKSB7XHJcbiAgICAgIGNvbnN0IHBsYW5uaW5nU291cmNlczogUGxhbm5pbmdbXSA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRQbGFubmluZ1NvdXJjZXMoKTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nID0gcGxhbm5pbmdTb3VyY2VzWzBdID8gcGxhbm5pbmdTb3VyY2VzWzBdIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgbGV0IHBsYW5PcmRlcjogUGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmdldFBsYW5PcmRlcih0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpO1xyXG5cclxuICAgIGlmKHBsYW5PcmRlcikge1xyXG4gICAgICBhd2FpdCB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUocGxhbk9yZGVyKTtcclxuICAgICAgYXdhaXQgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZ2V0T3JkZXJMaW5lc1BsYW5uZWQocGxhbk9yZGVyKTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXIgPSBwbGFuT3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -148,11 +148,11 @@ TransactionLineComponent.propDecorators = {
148
148
  container: [{ type: ViewChild, args: ['transactionLine', { read: ViewContainerRef },] }],
149
149
  activeCategory: [{ type: Input }],
150
150
  preview: [{ type: Input }],
151
- isFirst: [{ type: Input }],
151
+ isFirst: [{ type: HostBinding, args: ["class.first",] }, { type: Input }],
152
152
  draggedOver: [{ type: HostBinding, args: ["class.drag-over",] }, { type: Input }],
153
153
  waitingForUserAction: [{ type: Output }],
154
154
  descriptionDblClick: [{ type: Output }],
155
155
  showClass: [{ type: HostBinding, args: ["class.co-transaction-line",] }],
156
156
  newLine: [{ type: HostBinding, args: ['class.new-line',] }]
157
157
  };
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFHeEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQ1IsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQVdoSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBNkRwRSxZQUNTLHVCQUFnRCxFQUNoRCxPQUEyQixFQUMzQixnQkFBa0MsRUFDbEMscUNBQTRF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a0I7WUFJbEIsZ0JBQWdCO1lBRWhCLHFDQUFxQztZQUxyQyxpQkFBaUI7WUFFakIsdUJBQXVCO1lBeEI3QixpQkFBaUI7WUFtQlgseUJBQXlCO1lBakIvQix3QkFBd0I7WUFKeEIsY0FBYztZQVNkLFFBQVE7Ozt3QkFnQ1AsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzZCQU92RCxLQUFLO3NCQVVMLEtBQUs7c0JBR0wsS0FBSzswQkFHTCxXQUFXLFNBQUMsaUJBQWlCLGNBQzdCLEtBQUs7bUNBR0wsTUFBTTtrQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywyQkFBMkI7c0JBS3ZDLFdBQVcsU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFR5cGUsXHJcbiAgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLW1hcHBpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVGV4dExpbmVDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXRleHQtbGluZS90cmFuc2FjdGlvbi10ZXh0LWxpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICN0cmFuc2FjdGlvbkxpbmU+PC9kaXY+XHJcbiAgICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyYW5zYWN0aW9uTGluZScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBzZXQgY29udGFpbmVyKGNvbnRlbnQpIHtcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lciA9IGNvbnRlbnQ7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYWN0aXZlQ2F0ZWdvcnkodmFsdWU6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KSB7XHJcbiAgICB0aGlzLl9hY3RpdmVDYXRlZ29yeSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ2F0ZWdvcnkoKTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJldmlldzogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNGaXJzdDogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZHJhZy1vdmVyXCIpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ2dlZE92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHdhaXRpbmdGb3JVc2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXNjcmlwdGlvbkRibENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmVcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5ldy1saW5lJylcclxuICBwdWJsaWMgbmV3TGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuLy8gICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJveFNoYWRvdycpXHJcbi8vICAgcHVibGljIGdldCBib3hTaGFkb3coKTogc3RyaW5nIHtcclxuLy8gLyogICAgaWYgKHRoaXMuZHJvcFNoYWRvd0NvbG9yKSB7XHJcbi8vICAgICAgIHJldHVybiBgaW5zZXQgMCAwIDdweCAxcHggJHt0aGlzLmRyb3BTaGFkb3dDb2xvcn1gO1xyXG4vLyAgICAgfSBlbHNlKi8gaWYgKHRoaXMuZHJhZ2dlZE92ZXIpIHtcclxuLy8gICAgICAgcmV0dXJuICdpbnNldCAwIDAgMnB4IDFweCBncmV5JztcclxuLy8gICAgIH0gZWxzZSB7XHJcbi8vICAgICAgIHJldHVybiAnbm9uZSc7XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG5cclxuICAvLyBwdWJsaWMgZHJvcFNoYWRvd0NvbG9yOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICAvLyBwcml2YXRlIF90cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZDtcclxuICBwcml2YXRlIF9hY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcblxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX21hcHBpbmdTZXJ2aWNlOiBUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29tcEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBsZXQgc2hvdWxkUHJlcGFyZVByb3BzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gY2hhbmdlcykge1xyXG4gICAgICBpZiAoa2V5ICE9PSAnZHJhZ2dlZE92ZXInKSB7XHJcbiAgICAgICAgc2hvdWxkUHJlcGFyZVByb3BzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHNob3VsZFByZXBhcmVQcm9wcykge1xyXG4gICAgICB0aGlzLl9wcmVwYXJlUHJvcHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVBZGRlZC5zdWJzY3JpYmUoKGxpbmVOcjogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGxpbmVOciAhPT0gdW5kZWZpbmVkICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOciA9PT0gbGluZU5yKSB7XHJcbiAgICAgICAgICB0aGlzLm5ld0xpbmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvbkluZm9TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlQ29udGVudCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbktpbmQgfHwgIXRoaXMuX2FjdGl2ZUNhdGVnb3J5IHx8ICF0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb21wb25lbnRDbGFzczogVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+O1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lLmlzVGV4dCkge1xyXG4gICAgICBjb21wb25lbnRDbGFzcyA9IFRyYW5zYWN0aW9uVGV4dExpbmVDb21wb25lbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRDbGFzcyA9IHRoaXMuX21hcHBpbmdTZXJ2aWNlLmdldFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCh0aGlzLnRyYW5zYWN0aW9uS2luZCwgdGhpcy5fYWN0aXZlQ2F0ZWdvcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjb21wb25lbnRDbGFzcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+ID0gdGhpcy5fY29tcEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRDbGFzcyk7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIuY2xlYXIoKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcblxyXG4gICAgdGhpcy5fcHJlcGFyZVByb3BzKCk7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICAvLyBjb25zdCBkb21FbGVtID0gKHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55PilcclxuICAgIC8vICAgLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIC8vXHJcbiAgICAvLyB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVQcm9wcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnByZXZpZXcgPSB0aGlzLnByZXZpZXc7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pc0ZpcnN0ID0gdGhpcy5pc0ZpcnN0O1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb24gPSB0aGlzLnRyYW5zYWN0aW9uO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbkxpbmU7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbkluZm8gPSB0aGlzLnRyYW5zYWN0aW9uSW5mbztcclxuICAgICAgLy8gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uSWQ7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuYWN0aXZlQ2F0ZWdvcnk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS53YWl0aW5nRm9yVXNlckFjdGlvbiA9IHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb247XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXNjcmlwdGlvbkRibENsaWNrID0gdGhpcy5kZXNjcmlwdGlvbkRibENsaWNrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFHeEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQ1IsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQVdoSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBOERwRSxZQUNTLHVCQUFnRCxFQUNoRCxPQUEyQixFQUMzQixnQkFBa0MsRUFDbEMscUNBQTRF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a0I7WUFJbEIsZ0JBQWdCO1lBRWhCLHFDQUFxQztZQUxyQyxpQkFBaUI7WUFFakIsdUJBQXVCO1lBeEI3QixpQkFBaUI7WUFtQlgseUJBQXlCO1lBakIvQix3QkFBd0I7WUFKeEIsY0FBYztZQVNkLFFBQVE7Ozt3QkFnQ1AsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzZCQU92RCxLQUFLO3NCQVVMLEtBQUs7c0JBR0wsV0FBVyxTQUFDLGFBQWEsY0FDekIsS0FBSzswQkFHTCxXQUFXLFNBQUMsaUJBQWlCLGNBQzdCLEtBQUs7bUNBR0wsTUFBTTtrQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywyQkFBMkI7c0JBS3ZDLFdBQVcsU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFR5cGUsXHJcbiAgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLW1hcHBpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVGV4dExpbmVDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXRleHQtbGluZS90cmFuc2FjdGlvbi10ZXh0LWxpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICN0cmFuc2FjdGlvbkxpbmU+PC9kaXY+XHJcbiAgICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyYW5zYWN0aW9uTGluZScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBzZXQgY29udGFpbmVyKGNvbnRlbnQpIHtcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lciA9IGNvbnRlbnQ7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYWN0aXZlQ2F0ZWdvcnkodmFsdWU6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KSB7XHJcbiAgICB0aGlzLl9hY3RpdmVDYXRlZ29yeSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ2F0ZWdvcnkoKTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJldmlldzogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZmlyc3RcIilcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc0ZpcnN0OiBib29sZWFuO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5kcmFnLW92ZXJcIilcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkcmFnZ2VkT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgd2FpdGluZ0ZvclVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRlc2NyaXB0aW9uRGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MubmV3LWxpbmUnKVxyXG4gIHB1YmxpYyBuZXdMaW5lOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4vLyAgIEBIb3N0QmluZGluZygnc3R5bGUuYm94U2hhZG93JylcclxuLy8gICBwdWJsaWMgZ2V0IGJveFNoYWRvdygpOiBzdHJpbmcge1xyXG4vLyAvKiAgICBpZiAodGhpcy5kcm9wU2hhZG93Q29sb3IpIHtcclxuLy8gICAgICAgcmV0dXJuIGBpbnNldCAwIDAgN3B4IDFweCAke3RoaXMuZHJvcFNoYWRvd0NvbG9yfWA7XHJcbi8vICAgICB9IGVsc2UqLyBpZiAodGhpcy5kcmFnZ2VkT3Zlcikge1xyXG4vLyAgICAgICByZXR1cm4gJ2luc2V0IDAgMCAycHggMXB4IGdyZXknO1xyXG4vLyAgICAgfSBlbHNlIHtcclxuLy8gICAgICAgcmV0dXJuICdub25lJztcclxuLy8gICAgIH1cclxuLy8gICB9XHJcblxyXG4gIC8vIHB1YmxpYyBkcm9wU2hhZG93Q29sb3I6IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xyXG4gIC8vIHByaXZhdGUgX3RyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25LaW5kO1xyXG4gIHByaXZhdGUgX2FjdGl2ZUNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IGFueTtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfbWFwcGluZ1NlcnZpY2U6IFRyYW5zYWN0aW9uTWFwcGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb21wRmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHNlcnZpY2UsIGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGxldCBzaG91bGRQcmVwYXJlUHJvcHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGZvciAobGV0IGtleSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgIGlmIChrZXkgIT09ICdkcmFnZ2VkT3ZlcicpIHtcclxuICAgICAgICBzaG91bGRQcmVwYXJlUHJvcHMgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoc2hvdWxkUHJlcGFyZVByb3BzKSB7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVQcm9wcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZUFkZGVkLnN1YnNjcmliZSgobGluZU5yOiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAobGluZU5yICE9PSB1bmRlZmluZWQgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yID09PSBsaW5lTnIpIHtcclxuICAgICAgICAgIHRoaXMubmV3TGluZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uSW5mb1NldCgpIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uSW5mb1NldCgpO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVDb250ZW50KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uS2luZCB8fCAhdGhpcy5fYWN0aXZlQ2F0ZWdvcnkgfHwgIXRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbXBvbmVudENsYXNzOiBUeXBlPFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudD47XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUuaXNUZXh0KSB7XHJcbiAgICAgIGNvbXBvbmVudENsYXNzID0gVHJhbnNhY3Rpb25UZXh0TGluZUNvbXBvbmVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbXBvbmVudENsYXNzID0gdGhpcy5fbWFwcGluZ1NlcnZpY2UuZ2V0VHJhbnNhY3Rpb25MaW5lQ29tcG9uZW50KHRoaXMudHJhbnNhY3Rpb25LaW5kLCB0aGlzLl9hY3RpdmVDYXRlZ29yeSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbXBvbmVudENsYXNzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudD4gPSB0aGlzLl9jb21wRmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKTtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuXHJcbiAgICB0aGlzLl9wcmVwYXJlUHJvcHMoKTtcclxuXHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG5cclxuICAgIC8vIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxyXG4gICAgLy8gICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgLy9cclxuICAgIC8vIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLm9uRGVzdHJveSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVByb3BzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UucHJldmlldyA9IHRoaXMucHJldmlldztcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmlzRmlyc3QgPSB0aGlzLmlzRmlyc3Q7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWQ7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbiA9IHRoaXMudHJhbnNhY3Rpb247XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uSW5mbyA9IHRoaXMudHJhbnNhY3Rpb25JbmZvO1xyXG4gICAgICAvLyB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb25JZCA9IHRoaXMudHJhbnNhY3Rpb25JZDtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5hY3RpdmVDYXRlZ29yeTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLndhaXRpbmdGb3JVc2VyQWN0aW9uID0gdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbjtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLmRlc2NyaXB0aW9uRGJsQ2xpY2sgPSB0aGlzLmRlc2NyaXB0aW9uRGJsQ2xpY2s7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -29,12 +29,11 @@ TransactionLinesComponent.decorators = [
29
29
  [transactionLine]="line"
30
30
  [activeCategory]="activeCategory"
31
31
  [preview]="preview"
32
+ [isFirst]="isFirst"
32
33
  [readonly]="historicTransactionLines !== null"
33
34
  (waitingForUserAction)="userActionRequired = $event"
34
35
  (click)="selectedTransactionLine = line"
35
36
  (descriptionDblClick)="onDescriptionDblClick(line)"
36
- [isFirst]="isFirst"
37
- [class.first]="isFirst"
38
37
  ></co-transaction-line>
39
38
  </div>
40
39
  <ng-container *ngIf="activeCategory === category.SalesOrderDeliveryNote || activeCategory === category.SalesOrderInvoice || activeCategory === category.SalesOrderPlanning">
@@ -67,4 +66,4 @@ TransactionLinesComponent.decorators = [
67
66
  TransactionLinesComponent.propDecorators = {
68
67
  showClass: [{ type: HostBinding, args: ["class.co-transaction-lines",] }]
69
68
  };
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZXMvdHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBMkQ1RixNQUFNLE9BQU8seUJBQTBCLFNBQVEsNkJBQTZCO0lBRW5FLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OztZQTdERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRFQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEOzs7d0JBRUUsV0FBVyxTQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVzQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWxpbmVzLWJhc2UuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmVzXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI2Ryb3BMaXN0IGNka0Ryb3BMaXN0IGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiXHJcbiAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtZHJhZy1kcm9wLWxpc3RcIlxyXG4gICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCJwcmV2aWV3IHx8IHVzZXJBY3Rpb25SZXF1aXJlZFwiXHJcbiAgICAgICAgIFtjZGtEcm9wTGlzdERhdGFdPVwidHJhbnNhY3Rpb25MaW5lc1wiXHJcbiAgICAgICAgIFtjZGtEcm9wTGlzdEVudGVyUHJlZGljYXRlXT1cImhhbmRsZUNhbkRyYWdEcm9wXCJcclxuICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJoYW5kbGVEcm9wKCRldmVudClcIlxyXG4gICAgICAgICAoY2RrRHJvcExpc3RFbnRlcmVkKT1cImhhbmRsZURyb3BMaXN0RW50ZXJlZCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYWdnYWJsZS10cmFuc2FjdGlvbi1saW5lXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgKGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA/IGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyA6IHRyYW5zYWN0aW9uTGluZXMpO2xldCBpc0ZpcnN0ID0gZmlyc3Q7IHRyYWNrQnk6dHJhY2tCeUZuO1wiIGNka0RyYWc+XHJcbiAgICAgICAgPGNvLWljb24gKm5nSWY9XCIhcHJldmlld1wiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kcmFnLWhhbmRsZVwiXHJcbiAgICAgICAgICAgICAgICAgW2NsYXNzLnNob3ddPVwibGluZSA9PT0gc2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmUgJiYgdHJhbnNhY3Rpb25MaW5lcy5sZW5ndGggPiAxXCIgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuR3JpcERvdHNWZXJ0aWNhbFNvbGlkKVwiPlxyXG4gICAgICAgIDwvY28taWNvbj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZVxyXG4gICAgICAgICAgW2RyYWdnZWRPdmVyXT1cImxpbmVEcmFnZ2VkT3ZlciA9PT0gbGluZS5saW5lTnJcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgICAgICBbcmVhZG9ubHldPVwiaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzICE9PSBudWxsXCJcclxuICAgICAgICAgICh3YWl0aW5nRm9yVXNlckFjdGlvbik9XCJ1c2VyQWN0aW9uUmVxdWlyZWQgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVHJhbnNhY3Rpb25MaW5lID0gbGluZVwiXHJcbiAgICAgICAgICAoZGVzY3JpcHRpb25EYmxDbGljayk9XCJvbkRlc2NyaXB0aW9uRGJsQ2xpY2sobGluZSlcIlxyXG4gICAgICAgICAgW2lzRmlyc3RdPVwiaXNGaXJzdFwiXHJcbiAgICAgICAgICBbY2xhc3MuZmlyc3RdPVwiaXNGaXJzdFwiXHJcbiAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnkuU2FsZXNPcmRlckRlbGl2ZXJ5Tm90ZSB8fCBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnkuU2FsZXNPcmRlckludm9pY2UgfHwgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3J5LlNhbGVzT3JkZXJQbGFubmluZ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnZ2FibGUtdHJhbnNhY3Rpb24tbGluZVwiICpuZ0Zvcj1cImxldCBsaW5lIG9mIGRlbGl2ZXJ5Q29zdExpbmVzOyB0cmFja0J5OnRyYWNrQnlGbjtcIiBjZGtEcmFnPlxyXG4gICAgICAgICAgPGNvLWljb24gKm5nSWY9XCIhcHJldmlld1wiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kcmFnLWhhbmRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbY2xhc3Muc2hvd109XCJsaW5lID09PSBzZWxlY3RlZFRyYW5zYWN0aW9uTGluZVwiIGNka0RyYWdIYW5kbGVcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuR3JpcERvdHNWZXJ0aWNhbFNvbGlkKVwiPlxyXG4gICAgICAgICAgPC9jby1pY29uPlxyXG4gICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmVcclxuICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICBbcHJldmlld109XCJwcmV2aWV3XCJcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cImhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyAhPT0gbnVsbFwiXHJcbiAgICAgICAgICAgIFtzZWxlY3RlZF09XCJsaW5lID09PSBzZWxlY3RlZFRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICh3YWl0aW5nRm9yVXNlckFjdGlvbik9XCJ1c2VyQWN0aW9uUmVxdWlyZWQgPSAkZXZlbnRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWRUcmFuc2FjdGlvbkxpbmUgPSBsaW5lXCJcclxuICAgICAgICAgICAgKGRlc2NyaXB0aW9uRGJsQ2xpY2spPVwib25EZXNjcmlwdGlvbkRibENsaWNrKGxpbmUpXCJcclxuICAgICAgICAgICAgW2lzRmlyc3RdPVwiaXNGaXJzdFwiXHJcbiAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lc0NvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uTGluZXNCYXNlQ29tcG9uZW50IHtcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZXMvdHJhbnNhY3Rpb24tbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBMEQ1RixNQUFNLE9BQU8seUJBQTBCLFNBQVEsNkJBQTZCO0lBRW5FLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OztZQTVERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtEVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7Ozt3QkFFRSxXQUFXLFNBQUMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZXNCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tbGluZXMtYmFzZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZXNcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAjZHJvcExpc3QgY2RrRHJvcExpc3QgY2RrRHJvcExpc3RPcmllbnRhdGlvbj1cInZlcnRpY2FsXCJcclxuICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1kcmFnLWRyb3AtbGlzdFwiXHJcbiAgICAgICAgIFtjZGtEcm9wTGlzdERpc2FibGVkXT1cInByZXZpZXcgfHwgdXNlckFjdGlvblJlcXVpcmVkXCJcclxuICAgICAgICAgW2Nka0Ryb3BMaXN0RGF0YV09XCJ0cmFuc2FjdGlvbkxpbmVzXCJcclxuICAgICAgICAgW2Nka0Ryb3BMaXN0RW50ZXJQcmVkaWNhdGVdPVwiaGFuZGxlQ2FuRHJhZ0Ryb3BcIlxyXG4gICAgICAgICAoY2RrRHJvcExpc3REcm9wcGVkKT1cImhhbmRsZURyb3AoJGV2ZW50KVwiXHJcbiAgICAgICAgIChjZGtEcm9wTGlzdEVudGVyZWQpPVwiaGFuZGxlRHJvcExpc3RFbnRlcmVkKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZHJhZ2dhYmxlLXRyYW5zYWN0aW9uLWxpbmVcIiAqbmdGb3I9XCJsZXQgbGluZSBvZiAoaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzID8gaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzIDogdHJhbnNhY3Rpb25MaW5lcyk7bGV0IGlzRmlyc3QgPSBmaXJzdDsgdHJhY2tCeTp0cmFja0J5Rm47XCIgY2RrRHJhZz5cclxuICAgICAgICA8Y28taWNvbiAqbmdJZj1cIiFwcmV2aWV3XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRyYWctaGFuZGxlXCJcclxuICAgICAgICAgICAgICAgICBbY2xhc3Muc2hvd109XCJsaW5lID09PSBzZWxlY3RlZFRyYW5zYWN0aW9uTGluZSAmJiB0cmFuc2FjdGlvbkxpbmVzLmxlbmd0aCA+IDFcIiBjZGtEcmFnSGFuZGxlXHJcbiAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5HcmlwRG90c1ZlcnRpY2FsU29saWQpXCI+XHJcbiAgICAgICAgPC9jby1pY29uPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lXHJcbiAgICAgICAgICBbZHJhZ2dlZE92ZXJdPVwibGluZURyYWdnZWRPdmVyID09PSBsaW5lLmxpbmVOclwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJsaW5lXCJcclxuICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICBbcHJldmlld109XCJwcmV2aWV3XCJcclxuICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICAgICAgW3JlYWRvbmx5XT1cImhpc3RvcmljVHJhbnNhY3Rpb25MaW5lcyAhPT0gbnVsbFwiXHJcbiAgICAgICAgICAod2FpdGluZ0ZvclVzZXJBY3Rpb24pPVwidXNlckFjdGlvblJlcXVpcmVkID0gJGV2ZW50XCJcclxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZFRyYW5zYWN0aW9uTGluZSA9IGxpbmVcIlxyXG4gICAgICAgICAgKGRlc2NyaXB0aW9uRGJsQ2xpY2spPVwib25EZXNjcmlwdGlvbkRibENsaWNrKGxpbmUpXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5TYWxlc09yZGVyRGVsaXZlcnlOb3RlIHx8IGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5TYWxlc09yZGVySW52b2ljZSB8fCBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnkuU2FsZXNPcmRlclBsYW5uaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyYWdnYWJsZS10cmFuc2FjdGlvbi1saW5lXCIgKm5nRm9yPVwibGV0IGxpbmUgb2YgZGVsaXZlcnlDb3N0TGluZXM7IHRyYWNrQnk6dHJhY2tCeUZuO1wiIGNka0RyYWc+XHJcbiAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cIiFwcmV2aWV3XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRyYWctaGFuZGxlXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zaG93XT1cImxpbmUgPT09IHNlbGVjdGVkVHJhbnNhY3Rpb25MaW5lXCIgY2RrRHJhZ0hhbmRsZVxyXG4gICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5HcmlwRG90c1ZlcnRpY2FsU29saWQpXCI+XHJcbiAgICAgICAgICA8L2NvLWljb24+XHJcbiAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZVxyXG4gICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgIFtwcmV2aWV3XT1cInByZXZpZXdcIlxyXG4gICAgICAgICAgICBbcmVhZG9ubHldPVwiaGlzdG9yaWNUcmFuc2FjdGlvbkxpbmVzICE9PSBudWxsXCJcclxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cImxpbmUgPT09IHNlbGVjdGVkVHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgKHdhaXRpbmdGb3JVc2VyQWN0aW9uKT1cInVzZXJBY3Rpb25SZXF1aXJlZCA9ICRldmVudFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZFRyYW5zYWN0aW9uTGluZSA9IGxpbmVcIlxyXG4gICAgICAgICAgICAoZGVzY3JpcHRpb25EYmxDbGljayk9XCJvbkRlc2NyaXB0aW9uRGJsQ2xpY2sobGluZSlcIlxyXG4gICAgICAgICAgICBbaXNGaXJzdF09XCJpc0ZpcnN0XCJcclxuICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVzQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25MaW5lc0Jhc2VDb21wb25lbnQge1xyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmVzXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -1,10 +1,10 @@
1
- import { ApplicationRef, Component, ComponentFactoryResolver, ElementRef, HostBinding, Injector, Input, ViewChild, ViewEncapsulation } from '@angular/core';
1
+ import { ApplicationRef, ChangeDetectionStrategy, Component, ComponentFactoryResolver, HostBinding, Injector, Input, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
2
2
  import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
3
3
  import { TransactionMappingService } from '../../../service/transaction-mapping.service';
4
- import { Icon } from "../../../enum/icon.enum";
5
- import { IconCacheService } from "../../../service/icon-cache.service";
6
- import { TransactionService } from "../../../service/transaction.service";
7
- import { TransactionEventService } from "../../../service/transaction-event.service";
4
+ import { Icon } from '../../../enum/icon.enum';
5
+ import { IconCacheService } from '../../../service/icon-cache.service';
6
+ import { TransactionService } from '../../../service/transaction.service';
7
+ import { TransactionEventService } from '../../../service/transaction-event.service';
8
8
  export class TransactionQuickAccessComponent {
9
9
  constructor(iconCacheService, _mappingService, _compFactoryResolver, appRef, injector, _transactionService, _transactionEventService) {
10
10
  this.iconCacheService = iconCacheService;
@@ -65,15 +65,18 @@ export class TransactionQuickAccessComponent {
65
65
  if (!componentClass) {
66
66
  return;
67
67
  }
68
- this._componentRef = this._compFactoryResolver
69
- .resolveComponentFactory(componentClass)
70
- .create(this.injector);
68
+ // this._componentRef = this._compFactoryResolver
69
+ // .resolveComponentFactory(componentClass)
70
+ // .create(this.injector);
71
+ const factory = this._compFactoryResolver.resolveComponentFactory(componentClass);
72
+ this.quickAccessContainer.clear();
73
+ this._componentRef = this.quickAccessContainer.createComponent(factory);
71
74
  this._componentRef.instance.transaction = this.transaction;
72
75
  this._componentRef.instance.relation = this.relation;
73
- this.appRef.attachView(this._componentRef.hostView);
74
- const domElem = this._componentRef.hostView
75
- .rootNodes[0];
76
- this.quickAccessContainer.nativeElement.appendChild(domElem);
76
+ // this.appRef.attachView(this._componentRef.hostView);
77
+ // const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>)
78
+ // .rootNodes[0] as HTMLElement;
79
+ // this.quickAccessContainer.nativeElement.appendChild(domElem);
77
80
  this._componentRef.onDestroy(() => {
78
81
  this.appRef.detachView(this._componentRef.hostView);
79
82
  });
@@ -86,7 +89,8 @@ TransactionQuickAccessComponent.decorators = [
86
89
  <div #quickAccessContent class="quick-access-wrapper">
87
90
  </div>
88
91
  `,
89
- encapsulation: ViewEncapsulation.None
92
+ encapsulation: ViewEncapsulation.None,
93
+ changeDetection: ChangeDetectionStrategy.OnPush
90
94
  },] }
91
95
  ];
92
96
  TransactionQuickAccessComponent.ctorParameters = () => [
@@ -99,11 +103,11 @@ TransactionQuickAccessComponent.ctorParameters = () => [
99
103
  { type: TransactionEventService }
100
104
  ];
101
105
  TransactionQuickAccessComponent.propDecorators = {
102
- quickAccessContainer: [{ type: ViewChild, args: ['quickAccessContent', { read: ElementRef },] }],
106
+ quickAccessContainer: [{ type: ViewChild, args: ['quickAccessContent', { read: ViewContainerRef },] }],
103
107
  showLoader: [{ type: HostBinding, args: ["class.show-loader",] }],
104
108
  transaction: [{ type: Input }],
105
109
  activeCategory: [{ type: Input }],
106
110
  relation: [{ type: Input }],
107
111
  showClass: [{ type: HostBinding, args: ["class.co-transaction-quick-access",] }]
108
112
  };
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUVWLFdBQVcsRUFDWCxRQUFRLEVBQ1IsS0FBSyxFQUlMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBSXZGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQVVuRixNQUFNLE9BQU8sK0JBQStCO0lBb0QxQyxZQUNTLGdCQUFrQyxFQUNqQyxlQUEwQyxFQUMxQyxvQkFBOEMsRUFDOUMsTUFBc0IsRUFDdEIsUUFBa0IsRUFDbEIsbUJBQXVDLEVBQ3ZDLHdCQUFpRDtRQU5sRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQUMxQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEs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QUMsYUFBYSxDQUFDLFFBQWlDO2FBQ2xFLFNBQVMsQ0FBQyxDQUFDLENBQWdCLENBQUM7UUFFL0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFsSEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFFBQVEsRUFBRTs7O0dBR1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQVhPLGdCQUFnQjtZQUxoQix5QkFBeUI7WUFkL0Isd0JBQXdCO1lBRnhCLGNBQWM7WUFNZCxRQUFRO1lBZ0JGLGtCQUFrQjtZQUNsQix1QkFBdUI7OzttQ0FZNUIsU0FBUyxTQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt5QkFHbEQsV0FBVyxTQUFDLG1CQUFtQjswQkFHL0IsS0FBSzs2QkFXTCxLQUFLO3VCQVVMLEtBQUs7d0JBVUwsV0FBVyxTQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQXBwbGljYXRpb25SZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIEVtYmVkZGVkVmlld1JlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFR5cGUsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1tYXBwaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI3F1aWNrQWNjZXNzQ29udGVudCBjbGFzcz1cInF1aWNrLWFjY2Vzcy13cmFwcGVyXCI+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgQFZpZXdDaGlsZCgncXVpY2tBY2Nlc3NDb250ZW50Jywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyBxdWlja0FjY2Vzc0NvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3Muc2hvdy1sb2FkZXJcIilcclxuICBwdWJsaWMgc2hvd0xvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblR5cGUgPSB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8gPyB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kIDogVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXI7XHJcbiAgICB0aGlzLl9wcmVwYXJlQ29udGVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYWN0aXZlQ2F0ZWdvcnkodmFsdWU6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KSB7XHJcbiAgICB0aGlzLl9hY3RpdmVDYXRlZ29yeSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ2F0ZWdvcnkoKTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHJlbGF0aW9uKHZhbHVlOiBSZWxhdGlvbkFueVR5cGUpIHtcclxuICAgIHRoaXMuX3JlbGF0aW9uID0gdmFsdWU7XHJcbiAgICB0aGlzLl9wcmVwYXJlQ29udGVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWxhdGlvbigpOiBSZWxhdGlvbkFueVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzXCIpXHJcblxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZDtcclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gIHByaXZhdGUgX2FjdGl2ZUNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwcml2YXRlIF9yZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlO1xyXG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWFwcGluZ1NlcnZpY2U6IFRyYW5zYWN0aW9uTWFwcGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jb21wRmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5xdWlja0FjY2Vzc0NvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucXVpY2tBY2Nlc3NDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlQ29udGVudCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvblR5cGUgfHwgIXRoaXMuX2FjdGl2ZUNhdGVnb3J5IHx8ICF0aGlzLl9yZWxhdGlvbiB8fCAhdGhpcy5xdWlja0FjY2Vzc0NvbnRhaW5lcikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb21wb25lbnRDbGFzczogVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+ID0gdGhpcy5fbWFwcGluZ1NlcnZpY2UuZ2V0UXVpY2tBY2Nlc3NDb21wb25lbnQodGhpcy50cmFuc2FjdGlvblR5cGUsIHRoaXMuYWN0aXZlQ2F0ZWdvcnkpO1xyXG5cclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjb21wb25lbnRDbGFzcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5fY29tcEZhY3RvcnlSZXNvbHZlclxyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50Q2xhc3MpXHJcbiAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uID0gdGhpcy50cmFuc2FjdGlvbjtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5yZWxhdGlvbiA9IHRoaXMucmVsYXRpb247XHJcblxyXG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG5cclxuICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxyXG4gICAgICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIHRoaXMucXVpY2tBY2Nlc3NDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsd0JBQXdCLEVBQ3hCLFdBQVcsRUFDWCxRQUFRLEVBQ1IsS0FBSyxFQUlMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUl2RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFXbkYsTUFBTSxPQUFPLCtCQUErQjtJQW9EMUMsWUFDUyxnQkFBa0MsRUFDakMsZUFBMEMsRUFDMUMsb0JBQThDLEVBQzlDLE1BQXNCLEVBQ3RCLFFBQWtCLEVBQ2xCLG1CQUF1QyxFQUN2Qyx3QkFBaUQ7UUFObEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxvQkFBZSxHQUFmLGVBQWUsQ0FBMkI7UUFDMUMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEwQjtRQUM5QyxXQUFNLEdBQU4sTUFBTSxD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LFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXJELHVEQUF1RDtRQUV2RCx3RUFBd0U7UUFDeEUsa0NBQWtDO1FBRWxDLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXZIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtnQkFDdkMsUUFBUSxFQUFFOzs7R0FHVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQVpPLGdCQUFnQjtZQUxoQix5QkFBeUI7WUFiL0Isd0JBQXdCO1lBSnhCLGNBQWM7WUFNZCxRQUFRO1lBaUJGLGtCQUFrQjtZQUNsQix1QkFBdUI7OzttQ0FhNUIsU0FBUyxTQUFDLG9CQUFvQixFQUFFLEVBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFDO3lCQUd4RCxXQUFXLFNBQUMsbUJBQW1COzBCQUcvQixLQUFLOzZCQVdMLEtBQUs7dUJBVUwsS0FBSzt3QkFVTCxXQUFXLFNBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeSxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBUeXBlLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1tYXBwaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzc1wiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICNxdWlja0FjY2Vzc0NvbnRlbnQgY2xhc3M9XCJxdWljay1hY2Nlc3Mtd3JhcHBlclwiPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblF1aWNrQWNjZXNzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG4gIEBWaWV3Q2hpbGQoJ3F1aWNrQWNjZXNzQ29udGVudCcsIHtyZWFkOiBWaWV3Q29udGFpbmVyUmVmfSlcclxuICBwdWJsaWMgcXVpY2tBY2Nlc3NDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLnNob3ctbG9hZGVyXCIpXHJcbiAgcHVibGljIHNob3dMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25UeXBlID0gdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvID8gdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZCA6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2ZUNhdGVnb3J5KHZhbHVlOiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ2F0ZWdvcnkgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNhdGVnb3J5KCk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCByZWxhdGlvbih2YWx1ZTogUmVsYXRpb25BbnlUeXBlKSB7XHJcbiAgICB0aGlzLl9yZWxhdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVsYXRpb24oKTogUmVsYXRpb25BbnlUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWxhdGlvbjtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzc1wiKVxyXG5cclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQ7XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuICBwcml2YXRlIF9hY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHJpdmF0ZSBfcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZTtcclxuICBwcml2YXRlIF9jb21wb25lbnRSZWY6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX21hcHBpbmdTZXJ2aWNlOiBUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29tcEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wcmVwYXJlQ29udGVudCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMucXVpY2tBY2Nlc3NDb250YWluZXIgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnF1aWNrQWNjZXNzQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUNvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25UeXBlIHx8ICF0aGlzLl9hY3RpdmVDYXRlZ29yeSB8fCAhdGhpcy5fcmVsYXRpb24gfHwgIXRoaXMucXVpY2tBY2Nlc3NDb250YWluZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29tcG9uZW50Q2xhc3M6IFR5cGU8VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50PiA9IHRoaXMuX21hcHBpbmdTZXJ2aWNlLmdldFF1aWNrQWNjZXNzQ29tcG9uZW50KHRoaXMudHJhbnNhY3Rpb25UeXBlLCB0aGlzLmFjdGl2ZUNhdGVnb3J5KTtcclxuXHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghY29tcG9uZW50Q2xhc3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX2NvbXBGYWN0b3J5UmVzb2x2ZXJcclxuICAgIC8vICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKVxyXG4gICAgLy8gICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG5cclxuICAgIGNvbnN0IGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50PiA9IHRoaXMuX2NvbXBGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50Q2xhc3MpO1xyXG4gICAgdGhpcy5xdWlja0FjY2Vzc0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmID0gdGhpcy5xdWlja0FjY2Vzc0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcblxyXG4gICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uID0gdGhpcy50cmFuc2FjdGlvbjtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5yZWxhdGlvbiA9IHRoaXMucmVsYXRpb247XHJcblxyXG4gICAgLy8gdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLl9jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xyXG5cclxuICAgIC8vIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KVxyXG4gICAgLy8gICAucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgIC8vIHRoaXMucXVpY2tBY2Nlc3NDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==