@fundamental-ngx/platform 0.43.18 → 0.43.20

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 (75) hide show
  1. package/esm2020/form/combobox/combobox/combobox.component.mjs +1 -1
  2. package/esm2020/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +1 -1
  3. package/esm2020/list/action-list-item/action-list-item.component.mjs +7 -4
  4. package/esm2020/list/base-list-item.mjs +117 -75
  5. package/esm2020/list/display-list-item/display-list-item.component.mjs +5 -3
  6. package/esm2020/list/free-content-list-item/free-content-list-item.component.mjs +6 -3
  7. package/esm2020/list/list-group-footer.component.mjs +12 -3
  8. package/esm2020/list/list-group-header.component.mjs +30 -5
  9. package/esm2020/list/list.component.mjs +85 -61
  10. package/esm2020/list/object-list-item/object-list-item.component.mjs +5 -3
  11. package/esm2020/list/standard-list-item/standard-list-item.component.mjs +5 -3
  12. package/esm2020/message-popover/components/message-view/message-view.component.mjs +2 -2
  13. package/esm2020/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +2 -2
  14. package/esm2020/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +1 -1
  15. package/esm2020/shared/domain/data-source.mjs +2 -1
  16. package/esm2020/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
  17. package/esm2020/table/components/table-view-settings-dialog/filtering/filter-multi-select.component.mjs +1 -1
  18. package/esm2020/table/components/table-view-settings-dialog/filtering/filter-single-select.component.mjs +1 -1
  19. package/esm2020/table/components/table-view-settings-dialog/filtering/filters-list-step.component.mjs +1 -1
  20. package/esm2020/table/components/table-view-settings-dialog/grouping/grouping.component.mjs +1 -1
  21. package/esm2020/table/components/table-view-settings-dialog/sorting/sorting.component.mjs +1 -1
  22. package/esm2020/table/table.component.mjs +12 -10
  23. package/esm2020/table-helpers/directives/table-data-source.directive.mjs +2 -1
  24. package/esm2020/table-helpers/helpers.mjs +6 -3
  25. package/esm2020/table-helpers/table.mjs +1 -1
  26. package/esm2020/upload-collection/dialogs/move-to/move-to.component.mjs +1 -1
  27. package/esm2020/variant-management/variant-management.component.mjs +1 -1
  28. package/fesm2015/fundamental-ngx-platform-form.mjs +2 -2
  29. package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
  30. package/fesm2015/fundamental-ngx-platform-list.mjs +260 -150
  31. package/fesm2015/fundamental-ngx-platform-list.mjs.map +1 -1
  32. package/fesm2015/fundamental-ngx-platform-message-popover.mjs +1 -1
  33. package/fesm2015/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  34. package/fesm2015/fundamental-ngx-platform-settings-generator.mjs +2 -2
  35. package/fesm2015/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  36. package/fesm2015/fundamental-ngx-platform-shared.mjs +1 -0
  37. package/fesm2015/fundamental-ngx-platform-shared.mjs.map +1 -1
  38. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs +6 -2
  39. package/fesm2015/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  40. package/fesm2015/fundamental-ngx-platform-table.mjs +17 -15
  41. package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
  42. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs +1 -1
  43. package/fesm2015/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  44. package/fesm2015/fundamental-ngx-platform-variant-management.mjs +1 -1
  45. package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  46. package/fesm2020/fundamental-ngx-platform-form.mjs +2 -2
  47. package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
  48. package/fesm2020/fundamental-ngx-platform-list.mjs +259 -150
  49. package/fesm2020/fundamental-ngx-platform-list.mjs.map +1 -1
  50. package/fesm2020/fundamental-ngx-platform-message-popover.mjs +1 -1
  51. package/fesm2020/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  52. package/fesm2020/fundamental-ngx-platform-settings-generator.mjs +2 -2
  53. package/fesm2020/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  54. package/fesm2020/fundamental-ngx-platform-shared.mjs +1 -0
  55. package/fesm2020/fundamental-ngx-platform-shared.mjs.map +1 -1
  56. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs +6 -2
  57. package/fesm2020/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  58. package/fesm2020/fundamental-ngx-platform-table.mjs +17 -15
  59. package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
  60. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs +1 -1
  61. package/fesm2020/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  62. package/fesm2020/fundamental-ngx-platform-variant-management.mjs +1 -1
  63. package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  64. package/fundamental-ngx-platform-v0.43.20.tgz +0 -0
  65. package/list/base-list-item.d.ts +52 -29
  66. package/list/list-group-footer.component.d.ts +3 -0
  67. package/list/list-group-header.component.d.ts +3 -1
  68. package/list/list.component.d.ts +15 -13
  69. package/package.json +4 -4
  70. package/schematics/ng-add/index.js +1 -1
  71. package/shared/domain/data-source.d.ts +3 -1
  72. package/table/table.component.d.ts +4 -0
  73. package/table-helpers/helpers.d.ts +1 -1
  74. package/table-helpers/table.d.ts +1 -0
  75. package/fundamental-ngx-platform-v0.43.18.tgz +0 -0
@@ -158,6 +158,7 @@ export class TableDataSourceDirective extends DataSourceDirective {
158
158
  this._tableDataSource.close();
159
159
  this._tableDsSubscription?.unsubscribe();
160
160
  this._tableDsSubscription = null;
161
+ this._table.clearTableRows();
161
162
  }
162
163
  }
163
164
  TableDataSourceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TableDataSourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
@@ -190,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
190
191
  }], onDataReceived: [{
191
192
  type: Output
192
193
  }] } });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS1zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvZGlyZWN0aXZlcy90YWJsZS1kYXRhLXNvdXJjZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pILE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUF5QyxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBY3pELE1BQU0sT0FBTyx3QkFBNEIsU0FBUSxtQkFBMEM7SUFYM0Y7O1FBOEJJLGNBQWM7UUFDTix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxELG1FQUFtRTtRQUVuRSwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxELGtEQUFrRDtRQUV6QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEQsbURBQW1EO1FBRTFDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVduRCxnQ0FB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QUNKOzJGQUVRLHdCQUF3QjtrQkFYcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEI7NEJBQ0ksT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsUUFBUSxFQUFFLHFCQUFxQjt5QkFDbEM7cUJBQ0o7aUJBQ0o7OEJBT08sZUFBZTtzQkFEbEIsS0FBSztnQkFtQk4sc0JBQXNCO3NCQURyQixNQUFNO2dCQUtFLGVBQWU7c0JBRHZCLE1BQU07Z0JBS0UsY0FBYztzQkFEdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveWVkU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERhdGFTb3VyY2VEaXJlY3RpdmUsIEZEX0RBVEFfU09VUkNFX1RSQU5TRk9STUVSLCBpc0RhdGFTb3VyY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay9kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZEUF9UQUJMRV9TVEFURV9ESVJFQ1RJVkUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2hpbGRUYWJsZURhdGFTb3VyY2UsIFRhYmxlRGF0YVNvdXJjZSwgVGFibGVEYXRhU291cmNlUGFyc2VyIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IFRhYmxlSW5pdGlhbFN0YXRlLCBUYWJsZVJvdyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi4vdGFibGUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBUYWJsZURhdGFTb3VyY2VdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBEZXN0cm95ZWRTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9EQVRBX1NPVVJDRV9UUkFOU0ZPUk1FUixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBUYWJsZURhdGFTb3VyY2VQYXJzZXJcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVEYXRhU291cmNlRGlyZWN0aXZlPFQ+IGV4dGVuZHMgRGF0YVNvdXJjZURpcmVjdGl2ZTxULCBUYWJsZURhdGFTb3VyY2U8VD4+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBEYXRhIHNvdXJjZS5cbiAgICAgKiBAcGFyYW0gc291cmNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgY2hpbGREYXRhU291cmNlKHNvdXJjZTogQ2hpbGRUYWJsZURhdGFTb3VyY2U8VD4gfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX2NoaWxkRGF0YVNvdXJjZSA9IHNvdXJjZTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUNoaWxkRGF0YVNvdXJjZSgpO1xuICAgICAgICB0aGlzLmNoaWxkRGF0YVNvdXJjZUNoYW5nZWQubmV4dCgpO1xuICAgIH1cblxuICAgIGdldCBjaGlsZERhdGFTb3VyY2UoKTogQ2hpbGRUYWJsZURhdGFTb3VyY2U8VD4gfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkRGF0YVNvdXJjZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NoaWxkRGF0YVNvdXJjZTogQ2hpbGRUYWJsZURhdGFTb3VyY2U8VD4gfCBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jaGlsZERzU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBjaGlsZCBkYXRhIHNvdXJjZSBpbnN0YW5jZSBiZWluZyBjaGFuZ2VkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGNoaWxkRGF0YVNvdXJjZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGRhdGEgbG9hZGluZyBpcyBzdGFydGVkLiAqL1xuICAgIEBPdXRwdXQoKSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkRhdGFSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGRhdGEgbG9hZGluZyBpcyBmaW5pc2hlZC4gKi9cbiAgICBAT3V0cHV0KCkgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gICAgcmVhZG9ubHkgb25EYXRhUmVjZWl2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldCB0b3RhbEl0ZW1zKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXQgdG90YWxJdGVtcygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy50b3RhbEl0ZW1zJC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKiogVG90YWwgaXRlbXMgY291bnQgc3RyZWFtLiAqL1xuICAgIHRvdGFsSXRlbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuXG4gICAgLyoqIEl0ZW1zIHN0cmVhbS4gKi9cbiAgICBpdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xuXG4gICAgLyoqIENoaWxkIGl0ZW1zIHN0cmVhbS4gKi9cbiAgICBjaGlsZEl0ZW1zJCA9IG5ldyBTdWJqZWN0PE1hcDxUYWJsZVJvdzxUPiwgVFtdPj4oKTtcblxuICAgIC8qKiBAaGlkZGVuIGZvciBkYXRhIHNvdXJjZSBoYW5kbGluZyAqL1xuICAgIHByaXZhdGUgX3RhYmxlRHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF90YWJsZURhdGFTb3VyY2U6IFRhYmxlRGF0YVNvdXJjZTxUPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFibGU6IFRhYmxlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZmlyc3RMb2FkaW5nRG9uZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW50ZXJuYWxMb2FkaW5nU3RhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2ludGVybmFsQ2hpbGRyZW5Mb2FkaW5nU3RhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsU3RhdGUgPSBpbmplY3Q8VGFibGVJbml0aWFsU3RhdGU+KEZEUF9UQUJMRV9TVEFURV9ESVJFQ1RJVkUsIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFibGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gaW5qZWN0KERlc3Ryb3llZFNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBpbml0aWFsaXplRGF0YVNvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlQ2hhbmdlZC5waXBlKHN0YXJ0V2l0aCh0cnVlKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Nsb3NlRGF0YVNvdXJjZSgpO1xuICAgICAgICAgICAgdGhpcy5fbGlzdGVuVG9EYXRhU291cmNlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3RhYmxlRHNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRUYWJsZSh0YWJsZTogVGFibGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGUgPSB0YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogSW5pdGlhbGl6ZXMgdGhlIGNoaWxkIGRhdGEgc291cmNlIHRvIGZldGNoIGNoaWxkIHJvd3MuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZUNoaWxkRGF0YVNvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGF0YVNvdXJjZSh0aGlzLmNoaWxkRGF0YVNvdXJjZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGREYXRhU291cmNlPy51bnN1YnNjcmliZSgpO1xuXG4gICAgICAgICAgICB0aGlzLl9jaGlsZERzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5jaGlsZERhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoaWxkRHNTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5fY2hpbGREc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmNoaWxkRGF0YVNvdXJjZS5vbkRhdGFSZXF1ZXN0ZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVybmFsQ2hpbGRyZW5Mb2FkaW5nU3RhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRUYWJsZUxvYWRpbmcodGhpcy5fdGFibGUubG9hZGluZ1N0YXRlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fY2hpbGREc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmNoaWxkRGF0YVNvdXJjZS5vbkRhdGFSZWNlaXZlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDaGlsZHJlbkxvYWRpbmdTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRUYWJsZUxvYWRpbmcodGhpcy5fdGFibGUubG9hZGluZ1N0YXRlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fY2hpbGREc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmNoaWxkRGF0YVNvdXJjZS5kYXRhTG9hZGluZ1xuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKHN0YXRlKSA9PiAhIXN0YXRlKSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxvYWRpbmdTdGF0ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1N0YXRlcy5mb3JFYWNoKChzdGF0ZSkgPT4gc3RhdGUucm93Py5jaGlsZEl0ZW1zTG9hZGluZyQubmV4dChzdGF0ZS5sb2FkaW5nKSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9jaGlsZERzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuY2hpbGREYXRhU291cmNlLmRhdGFDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkSXRlbXMkLm5leHQoZGF0YSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBUaGlzIGlzIGEgc2luZ2xlIHBvaW50IG9mIGRhdGEgZW50cnkgdG8gdGhlIGNvbXBvbmVudC4gV2UgZG9uJ3Qgd2FudCB0byBzZXQgZGF0YSBvbiBkaWZmZXJlbnRcbiAgICAgKiBwbGFjZXMuIElmIGFueSBuZXcgZGF0YSBjb21lcyBpbiwgb3IgeW91IGRvIGEgc2VhcmNoLCBhbmQgeW91IHdhbnQgdG8gcGFzcyBpbml0aWFsIGRhdGFcbiAgICAgKiBpdHMgaGVyZS5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0RhdGFTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RhYmxlRHNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3RhYmxlRHNTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZVN0cmVhbSA9IHRoaXMuZGF0YVNvdXJjZVByb3ZpZGVyO1xuICAgICAgICBpZiAoZGF0YVNvdXJjZVN0cmVhbSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFtUYWJsZURhdGFTb3VyY2VdIHNvdXJjZSBkaWQgbm90IG1hdGNoIGFuIEFycmF5LCBPYnNlcnZhYmxlLCBub3IgRGF0YVNvdXJjZWApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGFibGVEc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmRhdGFDaGFuZ2VkJC5zdWJzY3JpYmUoKGl0ZW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zJC5uZXh0KGRhdGFTb3VyY2VTdHJlYW0uZGF0YVByb3ZpZGVyLnRvdGFsSXRlbXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMkLm5leHQoaXRlbXMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl90YWJsZURzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIGRhdGFTb3VyY2VTdHJlYW0ub25EYXRhUmVxdWVzdGVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRGF0YVJlcXVlc3RlZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxMb2FkaW5nU3RhdGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRUYWJsZUxvYWRpbmcodGhpcy5fdGFibGUubG9hZGluZ1N0YXRlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3RhYmxlRHNTdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgZGF0YVNvdXJjZVN0cmVhbS5vbkRhdGFSZWNlaXZlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkRhdGFSZWNlaXZlZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxMb2FkaW5nU3RhdGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9maXJzdExvYWRpbmdEb25lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2Uuc2V0VGFibGVMb2FkaW5nKHRoaXMuX3RhYmxlLmxvYWRpbmdTdGF0ZSk7XG5cbiAgICAgICAgICAgICAgICAvLyBSZXN0b3JlIG5vcm1hbCBwYWdpbmF0aW9uIGFmdGVyIHRoZSBmaXJzdCBmZXRjaCBvZiBkYXRhLlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90YWJsZS5fbG9hZFByZXZpb3VzUGFnZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLl90YWJsZVNlcnZpY2UuZ2V0VGFibGVTdGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YWJsZVNlcnZpY2Uuc2V0VGFibGVTdGF0ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiB0aGlzLmluaXRpYWxTdGF0ZT8uaW5pdGlhbFBhZ2UgfHwgc3RhdGUucGFnZS5jdXJyZW50UGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IHRoaXMuX3RhYmxlLnBhZ2VTaXplIHx8IHN0YXRlLnBhZ2UucGFnZVNpemVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90YWJsZS5fbG9hZFByZXZpb3VzUGFnZXMgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIGluaXRpYWwgZGF0YSBmZXRjaFxuICAgICAgICBkYXRhU291cmNlU3RyZWFtLmZldGNoKHRoaXMuX3RhYmxlU2VydmljZS5nZXRUYWJsZVN0YXRlKCkpO1xuXG4gICAgICAgIHRoaXMuX3RhYmxlRGF0YVNvdXJjZSA9IGRhdGFTb3VyY2VTdHJlYW07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jbG9zZURhdGFTb3VyY2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fdGFibGVEYXRhU291cmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90YWJsZURhdGFTb3VyY2UuY2xvc2UoKTtcblxuICAgICAgICB0aGlzLl90YWJsZURzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl90YWJsZURzU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG59XG4iXX0=
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS1zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RhYmxlLWhlbHBlcnMvZGlyZWN0aXZlcy90YWJsZS1kYXRhLXNvdXJjZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pILE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekQsT0FBTyxFQUF5QyxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBY3pELE1BQU0sT0FBTyx3QkFBNEIsU0FBUSxtQkFBMEM7SUFYM0Y7O1FBOEJJLGNBQWM7UUFDTix5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxELG1FQUFtRTtRQUVuRSwyQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRWxELGtEQUFrRDtRQUV6QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFcEQsbURBQW1EO1FBRTFDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVduRCxnQ0FB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QUFFLDBCQUEwQjtZQUNuQyxRQUFRLEVBQUUscUJBQXFCO1NBQ2xDO0tBQ0o7MkZBRVEsd0JBQXdCO2tCQVhwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQjs0QkFDSSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxRQUFRLEVBQUUscUJBQXFCO3lCQUNsQztxQkFDSjtpQkFDSjs4QkFPTyxlQUFlO3NCQURsQixLQUFLO2dCQW1CTixzQkFBc0I7c0JBRHJCLE1BQU07Z0JBS0UsZUFBZTtzQkFEdkIsTUFBTTtnQkFLRSxjQUFjO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZXN0cm95ZWRTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZURpcmVjdGl2ZSwgRkRfREFUQV9TT1VSQ0VfVFJBTlNGT1JNRVIsIGlzRGF0YVNvdXJjZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL2RhdGEtc291cmNlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRkRQX1RBQkxFX1NUQVRFX0RJUkVDVElWRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDaGlsZFRhYmxlRGF0YVNvdXJjZSwgVGFibGVEYXRhU291cmNlLCBUYWJsZURhdGFTb3VyY2VQYXJzZXIgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgVGFibGVJbml0aWFsU3RhdGUsIFRhYmxlUm93IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhYmxlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tICcuLi90YWJsZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFRhYmxlRGF0YVNvdXJjZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIERlc3Ryb3llZFNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RBVEFfU09VUkNFX1RSQU5TRk9STUVSLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IFRhYmxlRGF0YVNvdXJjZVBhcnNlclxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFTb3VyY2VEaXJlY3RpdmU8VD4gZXh0ZW5kcyBEYXRhU291cmNlRGlyZWN0aXZlPFQsIFRhYmxlRGF0YVNvdXJjZTxUPj4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIERhdGEgc291cmNlLlxuICAgICAqIEBwYXJhbSBzb3VyY2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBjaGlsZERhdGFTb3VyY2Uoc291cmNlOiBDaGlsZFRhYmxlRGF0YVNvdXJjZTxUPiB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fY2hpbGREYXRhU291cmNlID0gc291cmNlO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplQ2hpbGREYXRhU291cmNlKCk7XG4gICAgICAgIHRoaXMuY2hpbGREYXRhU291cmNlQ2hhbmdlZC5uZXh0KCk7XG4gICAgfVxuXG4gICAgZ2V0IGNoaWxkRGF0YVNvdXJjZSgpOiBDaGlsZFRhYmxlRGF0YVNvdXJjZTxUPiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGREYXRhU291cmNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hpbGREYXRhU291cmNlOiBDaGlsZFRhYmxlRGF0YVNvdXJjZTxUPiB8IG51bGw7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NoaWxkRHNTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGNoaWxkIGRhdGEgc291cmNlIGluc3RhbmNlIGJlaW5nIGNoYW5nZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2hpbGREYXRhU291cmNlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gZGF0YSBsb2FkaW5nIGlzIHN0YXJ0ZWQuICovXG4gICAgQE91dHB1dCgpIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIHJlYWRvbmx5IG9uRGF0YVJlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gZGF0YSBsb2FkaW5nIGlzIGZpbmlzaGVkLiAqL1xuICAgIEBPdXRwdXQoKSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICByZWFkb25seSBvbkRhdGFSZWNlaXZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0IHRvdGFsSXRlbXModmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnRvdGFsSXRlbXMkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvdGFsSXRlbXMkLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBUb3RhbCBpdGVtcyBjb3VudCBzdHJlYW0uICovXG4gICAgdG90YWxJdGVtcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgICAvKiogSXRlbXMgc3RyZWFtLiAqL1xuICAgIGl0ZW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VFtdPihbXSk7XG5cbiAgICAvKiogQ2hpbGQgaXRlbXMgc3RyZWFtLiAqL1xuICAgIGNoaWxkSXRlbXMkID0gbmV3IFN1YmplY3Q8TWFwPFRhYmxlUm93PFQ+LCBUW10+PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gZm9yIGRhdGEgc291cmNlIGhhbmRsaW5nICovXG4gICAgcHJpdmF0ZSBfdGFibGVEc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3RhYmxlRGF0YVNvdXJjZTogVGFibGVEYXRhU291cmNlPFQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90YWJsZTogVGFibGU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9maXJzdExvYWRpbmdEb25lID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbnRlcm5hbExvYWRpbmdTdGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW50ZXJuYWxDaGlsZHJlbkxvYWRpbmdTdGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxTdGF0ZSA9IGluamVjdDxUYWJsZUluaXRpYWxTdGF0ZT4oRkRQX1RBQkxFX1NUQVRFX0RJUkVDVElWRSwge1xuICAgICAgICBvcHRpb25hbDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJsZVNlcnZpY2UgPSBpbmplY3QoVGFibGVTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveWVkU2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGluaXRpYWxpemVEYXRhU291cmNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2VDaGFuZ2VkLnBpcGUoc3RhcnRXaXRoKHRydWUpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2xvc2VEYXRhU291cmNlKCk7XG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub0RhdGFTb3VyY2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fdGFibGVEc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldFRhYmxlKHRhYmxlOiBUYWJsZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZSA9IHRhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBJbml0aWFsaXplcyB0aGUgY2hpbGQgZGF0YSBzb3VyY2UgdG8gZmV0Y2ggY2hpbGQgcm93cy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplQ2hpbGREYXRhU291cmNlKCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNEYXRhU291cmNlKHRoaXMuY2hpbGREYXRhU291cmNlKSkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZERhdGFTb3VyY2U/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICAgIHRoaXMuX2NoaWxkRHNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkRGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2hpbGREc1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgICAgICB0aGlzLl9jaGlsZERzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuY2hpbGREYXRhU291cmNlLm9uRGF0YVJlcXVlc3RlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxDaGlsZHJlbkxvYWRpbmdTdGF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldFRhYmxlTG9hZGluZyh0aGlzLl90YWJsZS5sb2FkaW5nU3RhdGUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9jaGlsZERzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuY2hpbGREYXRhU291cmNlLm9uRGF0YVJlY2VpdmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbENoaWxkcmVuTG9hZGluZ1N0YXRlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldFRhYmxlTG9hZGluZyh0aGlzLl90YWJsZS5sb2FkaW5nU3RhdGUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9jaGlsZERzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuY2hpbGREYXRhU291cmNlLmRhdGFMb2FkaW5nXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoc3RhdGUpID0+ICEhc3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgobG9hZGluZ1N0YXRlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsb2FkaW5nU3RhdGVzLmZvckVhY2goKHN0YXRlKSA9PiBzdGF0ZS5yb3c/LmNoaWxkSXRlbXNMb2FkaW5nJC5uZXh0KHN0YXRlLmxvYWRpbmcpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX2NoaWxkRHNTdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5jaGlsZERhdGFTb3VyY2UuZGF0YUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRJdGVtcyQubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRoaXMgaXMgYSBzaW5nbGUgcG9pbnQgb2YgZGF0YSBlbnRyeSB0byB0aGUgY29tcG9uZW50LiBXZSBkb24ndCB3YW50IHRvIHNldCBkYXRhIG9uIGRpZmZlcmVudFxuICAgICAqIHBsYWNlcy4gSWYgYW55IG5ldyBkYXRhIGNvbWVzIGluLCBvciB5b3UgZG8gYSBzZWFyY2gsIGFuZCB5b3Ugd2FudCB0byBwYXNzIGluaXRpYWwgZGF0YVxuICAgICAqIGl0cyBoZXJlLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvRGF0YVNvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFibGVEc1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fdGFibGVEc1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgICAgICBjb25zdCBkYXRhU291cmNlU3RyZWFtID0gdGhpcy5kYXRhU291cmNlUHJvdmlkZXI7XG4gICAgICAgIGlmIChkYXRhU291cmNlU3RyZWFtID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW1RhYmxlRGF0YVNvdXJjZV0gc291cmNlIGRpZCBub3QgbWF0Y2ggYW4gQXJyYXksIE9ic2VydmFibGUsIG5vciBEYXRhU291cmNlYCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90YWJsZURzU3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZWQkLnN1YnNjcmliZSgoaXRlbXMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMkLm5leHQoZGF0YVNvdXJjZVN0cmVhbS5kYXRhUHJvdmlkZXIudG90YWxJdGVtcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyQubmV4dChpdGVtcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3RhYmxlRHNTdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgZGF0YVNvdXJjZVN0cmVhbS5vbkRhdGFSZXF1ZXN0ZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub25EYXRhUmVxdWVzdGVkLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbExvYWRpbmdTdGF0ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFibGVTZXJ2aWNlLnNldFRhYmxlTG9hZGluZyh0aGlzLl90YWJsZS5sb2FkaW5nU3RhdGUpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fdGFibGVEc1N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICBkYXRhU291cmNlU3RyZWFtLm9uRGF0YVJlY2VpdmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRGF0YVJlY2VpdmVkLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm5hbExvYWRpbmdTdGF0ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZpcnN0TG9hZGluZ0RvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRUYWJsZUxvYWRpbmcodGhpcy5fdGFibGUubG9hZGluZ1N0YXRlKTtcblxuICAgICAgICAgICAgICAgIC8vIFJlc3RvcmUgbm9ybWFsIHBhZ2luYXRpb24gYWZ0ZXIgdGhlIGZpcnN0IGZldGNoIG9mIGRhdGEuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RhYmxlLl9sb2FkUHJldmlvdXNQYWdlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuX3RhYmxlU2VydmljZS5nZXRUYWJsZVN0YXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlU2VydmljZS5zZXRUYWJsZVN0YXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ue1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMuaW5pdGlhbFN0YXRlPy5pbml0aWFsUGFnZSB8fCBzdGF0ZS5wYWdlLmN1cnJlbnRQYWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogdGhpcy5fdGFibGUucGFnZVNpemUgfHwgc3RhdGUucGFnZS5wYWdlU2l6ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhYmxlLl9sb2FkUHJldmlvdXNQYWdlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gaW5pdGlhbCBkYXRhIGZldGNoXG4gICAgICAgIGRhdGFTb3VyY2VTdHJlYW0uZmV0Y2godGhpcy5fdGFibGVTZXJ2aWNlLmdldFRhYmxlU3RhdGUoKSk7XG5cbiAgICAgICAgdGhpcy5fdGFibGVEYXRhU291cmNlID0gZGF0YVNvdXJjZVN0cmVhbTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Nsb3NlRGF0YVNvdXJjZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl90YWJsZURhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RhYmxlRGF0YVNvdXJjZS5jbG9zZSgpO1xuXG4gICAgICAgIHRoaXMuX3RhYmxlRHNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3RhYmxlRHNTdWJzY3JpcHRpb24gPSBudWxsO1xuICAgICAgICB0aGlzLl90YWJsZS5jbGVhclRhYmxlUm93cygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -109,7 +109,7 @@ export function getFreezableEndColumns(columns, freezeEndColumnsTo) {
109
109
  return new Map();
110
110
  }
111
111
  /** @hidden */
112
- export function convertTreeObjectsToTableRows(source, selectionMode, tableRows, rowComparator, relationKey, hasChildrenKey, selectedKey, expandedStateKey, rowNavigatable) {
112
+ export function convertTreeObjectsToTableRows(source, selectionMode, tableRows, rowComparator, relationKey, hasChildrenKey, selectedKey, expandedStateKey, rowNavigatable, enableTristateMode = false) {
113
113
  const rows = [];
114
114
  const selectedRowsMap = getSelectionStatusByRowValue(source, selectionMode, tableRows, rowComparator);
115
115
  source.forEach((item, index) => {
@@ -131,7 +131,7 @@ export function convertTreeObjectsToTableRows(source, selectionMode, tableRows,
131
131
  row.navigatable = isRowNavigatable(item, rowNavigatable);
132
132
  rows.push(row);
133
133
  if (hasChildren) {
134
- const children = convertTreeObjectsToTableRows(item[relationKey], selectionMode, tableRows, rowComparator, relationKey, hasChildrenKey, selectedKey, expandedStateKey, rowNavigatable);
134
+ const children = convertTreeObjectsToTableRows(item[relationKey], selectionMode, tableRows, rowComparator, relationKey, hasChildrenKey, selectedKey, expandedStateKey, rowNavigatable, enableTristateMode);
135
135
  children.forEach((c) => {
136
136
  c.parent = c.parent || row;
137
137
  c.level = c.parent.level + 1;
@@ -159,6 +159,9 @@ export function convertTreeObjectsToTableRows(source, selectionMode, tableRows,
159
159
  applySelectionToChildren(rows, r, [], []);
160
160
  return;
161
161
  }
162
+ if (!enableTristateMode) {
163
+ return;
164
+ }
162
165
  if (selectedAll) {
163
166
  r.checked = true;
164
167
  return;
@@ -403,4 +406,4 @@ export function convertObjectsToTableRows(source, addedItems, selectedKey, rowNa
403
406
  export function isTreeRowFirstCell(cellIndex, row, event) {
404
407
  return (cellIndex === 0 && isTreeRow(row)) || (!!event && !row.isTree);
405
408
  }
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90YWJsZS1oZWxwZXJzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBc0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJNUQsT0FBTyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBRWhDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFZLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlFLGNBQWM7QUFDZCxNQUFNLFVBQVUsV0FBVyxDQUFVLEdBQXlCO0lBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQzVFO0lBRUQsT0FBTyxJQUFJLFlBQVksQ0FBQztRQUNwQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSTtRQUNuQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLO1FBQzdCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUM7UUFDckIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUk7UUFDMUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQztRQUNyQixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsSUFBSSxLQUFLO1FBQ25DLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEtBQUs7UUFDL0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksS0FBSztRQUMzQixXQUFXLEVBQUUsR0FBRyxDQUFDLFdBQVcsSUFBSSxLQUFLO1FBQ3JDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLFVBQVU7UUFDOUIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRTtLQUMvQixDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFnQixFQUFFLGFBQXFCO0lBQ3JFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFhLEVBQUUsYUFBcUI7SUFDaEUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssQ0FBQztBQUNwRixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBYTtJQUNuQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztBQUMxQyxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBYTtJQUNuQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztBQUMxQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUksSUFBbUIsRUFBRSxjQUFnQztJQUNsRyxJQUFJLFFBQVEsR0FBZSxFQUFFLENBQUM7SUFFOUIsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDL0QsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMxRCxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7U0FDNUY7S0FDSjtJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLGdCQUFnQixDQUFJLEdBQU0sRUFBRSxjQUFnQztJQUN4RSxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ04sT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDMUIsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQXdCLENBQUMsQ0FBQztLQUMxQztJQUVELE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQztBQUM1QixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFzQixFQUFFLGVBQXVCO0lBQy9FLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBRTlDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFO1FBQ3JDLE9BQU8sV0FBVyxDQUFDO0tBQ3RCO0lBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDZCxTQUFTO1NBQ1o7UUFFRCw4Q0FBOEM7UUFDOUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFO1lBQ2pDLE9BQU8sV0FBVyxDQUFDO1NBQ3RCO0tBQ0o7SUFFRCxPQUFPLElBQUksR0FBRyxFQUFFLENBQUM7QUFDckIsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsT0FBc0IsRUFBRSxrQkFBMEI7SUFDckYsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFFOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtRQUN4QyxPQUFPLFdBQVcsQ0FBQztLQUN0QjtJQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQyw4Q0FBOEM7UUFDOUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLEVBQUU7WUFDeEMsT0FBTyxXQUFXLENBQUM7U0FDdEI7S0FDSjtJQUVELE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUNyQixDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSw2QkFBNkIsQ0FDekMsTUFBVyxFQUNYLGFBQWlDLEVBQ2pDLFNBQXdCLEVBQ3hCLGFBQStCLEVBQy9CLFdBQW1CLEVBQ25CLGNBQXNCLEVBQ3RCLFdBQW1CLEVBQ25CLGdCQUF3QixFQUN4QixjQUFnQztJQUVoQyxNQUFNLElBQUksR0FBa0IsRUFBRSxDQUFDO0lBQy9CLE1BQU0sZUFBZSxHQUFHLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXRHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFPLEVBQUUsS0FBYSxFQUFFLEVBQUU7UUFDdEMsTUFBTSxXQUFXLEdBQ2IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUM7WUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUU3QixNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsSUFBbUIsQ0FBQztZQUN2QyxDQUFDLENBQUUsSUFBb0I7WUFDdkIsQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDUixJQUFJLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJO2dCQUMxRixPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDekQsS0FBSztnQkFDTCxLQUFLLEVBQUUsSUFBSTthQUNkLENBQUMsQ0FBQztRQUVULEdBQUcsQ0FBQyxRQUFRO1lBQ1IsZ0JBQWdCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztnQkFDNUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoQixHQUFHLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWYsSUFBSSxXQUFXLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyw2QkFBNkIsQ0FDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUNqQixhQUFhLEVBQ2IsU0FBUyxFQUNULGFBQWEsRUFDYixXQUFXLEVBQ1gsY0FBYyxFQUNkLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsY0FBYyxDQUNqQixDQUFDO1lBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNuQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO2dCQUMzQixDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztZQUUvQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUM7U0FDMUI7UUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7WUFDL0IsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDYixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxnQkFBZ0IsR0FBa0IsRUFBRSxDQUFDO2dCQUMzQyxNQUFNLHFCQUFxQixHQUFrQixFQUFFLENBQUM7Z0JBQ2hELFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLElBQUksRUFBRTt3QkFDeEIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNoQzt5QkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFO3dCQUMvQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQ3JDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUN2RixNQUFNLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUU7b0JBQ1gsd0JBQXdCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFDLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxXQUFXLEVBQUU7b0JBQ2IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ2pCLE9BQU87aUJBQ1Y7Z0JBQ0QsSUFBSSxZQUFZLElBQUkscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbEQsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7b0JBQ2pCLE9BQU87aUJBQ1Y7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLDRCQUE0QixDQUN4QyxNQUFXLEVBQ1gsYUFBaUMsRUFDakMsU0FBcUIsRUFDckIsYUFBK0I7SUFFL0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQXFCLENBQUM7SUFDNUMsSUFDSSxDQUFDLGFBQWEsS0FBSyxhQUFhLENBQUMsTUFBTSxJQUFJLGFBQWEsS0FBSyxhQUFhLENBQUMsUUFBUSxDQUFDO1FBQ3BGLE9BQU8sYUFBYSxLQUFLLFVBQVUsRUFDckM7UUFDRSxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3hCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsSUFBSSxLQUFLLEVBQUU7Z0JBQ1AsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2xDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FDTjtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLHdCQUF3QixDQUNwQyxPQUEyQixFQUMzQixHQUFhLEVBQ2IsU0FBd0IsRUFDeEIsV0FBMEI7SUFFMUIsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVsRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDdEIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxlQUFlLENBQUksR0FBZ0IsRUFBRSxPQUFzQjtJQUN2RSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBRWxDOzs7O09BSUc7SUFFSCxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBRW5DLE9BQU8sS0FBSyxFQUFFLEdBQUcsVUFBVSxFQUFFO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0RCxNQUFNO1NBQ1Q7UUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzFCO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUksR0FBZ0IsRUFBRSxjQUFrQyxJQUFJO0lBQ3JGLFdBQVcsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsdUJBQXVCO0lBQzFELE1BQU0sT0FBTyxHQUFrQixFQUFFLENBQUM7SUFDbEMsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyx5RUFBeUU7SUFDMUcsT0FBTyxNQUFNLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRTtRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztLQUNsQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFFRCxjQUFjO0FBQ2QsTUFBTSxVQUFVLFlBQVksQ0FBSSxNQUE2QjtJQUN6RCxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN0QixPQUFPLE1BQTRCLENBQUM7S0FDdkM7SUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdkIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzNDO0lBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEIsT0FBTyxJQUFJLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ2hEO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUNEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUksbUJBQXNCLEVBQUUsT0FBc0I7SUFDakYsSUFBSSxtQkFBbUIsRUFBRTtRQUNyQixPQUFPLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0tBQ3pDO0lBRUQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN2QixNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFXLENBQUM7QUFDdkIsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQWE7SUFDcEMsT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxLQUFLLENBQUM7QUFDM0MsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUsdUJBQXVCLENBQ25DLFdBQWlDLEVBQ2pDLGFBQTJDO0lBRTNDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEQsT0FBTyxXQUFXLENBQUM7S0FDdEI7SUFFRCxNQUFNLFlBQVksR0FBRyxXQUEyRCxDQUFDO0lBQ2pGLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVqQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDM0IsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ2pCLEtBQUssQ0FBQyxTQUFTLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUM3RTtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTFELElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLFNBQVMsS0FBSyxhQUFhLENBQUMsSUFBSSxFQUFFO1FBQzFELE9BQU8sWUFBWSxDQUFDO0tBQ3ZCO0lBRUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUN0QyxNQUFNLG1CQUFtQixHQUFHLFNBQVMsS0FBSyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVHLE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN0QyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQVksQ0FBQztRQUNwQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQVksQ0FBQztRQUVwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7U0FDcEQ7UUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLG1CQUFtQixDQUFDO0lBQzVELENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUseUJBQXlCLENBQUksWUFBMkI7SUFDcEUsSUFBSSxRQUFRLEdBQVEsRUFBRSxDQUFDO0lBRXZCLEtBQUssTUFBTSxJQUFJLElBQUksWUFBWSxFQUFFO1FBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvQixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDekI7S0FDSjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FDdEMsS0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsU0FBMEIsSUFBSSxFQUM5QixLQUFLLEdBQUcsQ0FBQztJQUVULEtBQUssR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFFbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDZixvREFBb0Q7UUFDcEQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEIsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDcEIsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbEIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUMxQyxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFFRCw0QkFBNEI7SUFDNUIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRyxDQUFDO0lBRTVCLG9EQUFvRDtJQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJO1NBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxVQUFVLENBQUM7U0FDckMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2xCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUM1QjtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDO0lBRXZDLHdCQUF3QjtJQUN4QixJQUFJLGdCQUFnQixHQUF5QixFQUFFLENBQUM7SUFFaEQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxFQUFFO1FBQzFDLGdCQUFnQixHQUFHLElBQUk7YUFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQzthQUNyQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNULEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQ3BCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDZixHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQzFDLE9BQU8sR0FBRyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7S0FDVjtJQUVELEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ2xELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVwRSxJQUFJLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLFNBQVM7U0FDWjtRQUVELE1BQU0sYUFBYSxHQUErQyxXQUFXLENBQXlCO1lBQ2xHLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSztZQUN4QixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxDQUFDO1lBQ1IsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDN0MsTUFBTTtZQUNOLEtBQUs7WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLGFBQWEsQ0FBQyxTQUFTLEdBQUcsMEJBQTBCLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXBHLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO1FBRTVELGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUN4QztJQUVELE9BQU8sZ0JBQWdCLENBQUM7QUFDNUIsQ0FBQztBQUVELGNBQWM7QUFDZCxNQUFNLFVBQVUseUJBQXlCLENBQ3JDLE1BQVcsRUFDWCxVQUFlLEVBQ2YsV0FBbUIsRUFDbkIsY0FBZ0MsRUFDaEMsYUFBaUMsRUFDakMsSUFBZ0IsRUFDaEIsYUFBNEI7SUFFNUIsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBUSxDQUFDO0lBRWpDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JCLE9BQU8sTUFBb0IsQ0FBQztLQUMvQjtJQUVELE1BQU0sZUFBZSxHQUFHLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pHLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQU8sRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUN6QyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQztZQUNwQixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDekQsS0FBSztZQUNMLEtBQUssRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDekQsR0FBRyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2hELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLEdBQWEsRUFBRSxLQUFhO0lBQzlFLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGZzLCBpc1N0cmluZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IGlzRGF0YVNvdXJjZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXJyYXlUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL2RvbWFpbi9hcnJheS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi9kb21haW4vb2JzZXJ2YWJsZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL2RvbWFpbi90YWJsZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBUYWJsZVJvd1R5cGUgfSBmcm9tICcuL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZSwgU2VsZWN0aW9uTW9kZVZhbHVlIH0gZnJvbSAnLi9lbnVtcy9zZWxlY3Rpb24tbW9kZS5lbnVtJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICcuL2VudW1zL3NvcnQtZGlyZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkdyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZkcFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtc291cmNlLnR5cGUnO1xuaW1wb3J0IHsgUm93Q29tcGFyYXRvciB9IGZyb20gJy4vbW9kZWxzL3Jvdy1jb21wYXJhdG9yLm1vZGVsJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoLWVzL2Nsb25lRGVlcCc7XG5pbXBvcnQgc2V0IGZyb20gJ2xvZGFzaC1lcy9zZXQnO1xuaW1wb3J0IHsgR3JvdXBUYWJsZVJvd1ZhbHVlVHlwZSwgVHJlZUxpa2UgfSBmcm9tICcuL21vZGVscy90cmVlLXRhYmxlLm1vZGVsJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLWVzL2dldCc7XG5pbXBvcnQgeyBpc1RhYmxlUm93LCBUYWJsZVJvdywgVGFibGVSb3dJbXBsIH0gZnJvbSAnLi9tb2RlbHMvdGFibGUtcm93Lm1vZGVsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4nO1xuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5ld1RhYmxlUm93PFQgPSBhbnk+KHJvdzogUGFydGlhbDxUYWJsZVJvdzxUPj4pOiBUYWJsZVJvdzxUPiB7XG4gICAgaWYgKCFyb3cudmFsdWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHZhbHVlLiBUYWJsZVJvdy52YWx1ZSBjYW5ub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVGFibGVSb3dJbXBsKHtcbiAgICAgICAgdHlwZTogcm93LnR5cGUgfHwgVGFibGVSb3dUeXBlLklURU0sXG4gICAgICAgIGNoZWNrZWQ6IHJvdy5jaGVja2VkIHx8IGZhbHNlLFxuICAgICAgICBpbmRleDogcm93LmluZGV4IHx8IDAsXG4gICAgICAgIHZhbHVlOiByb3cudmFsdWUsXG4gICAgICAgIHBhcmVudDogcm93LnBhcmVudCB8fCBudWxsLFxuICAgICAgICBsZXZlbDogcm93LmxldmVsIHx8IDAsXG4gICAgICAgIGV4cGFuZGFibGU6IHJvdy5leHBhbmRhYmxlIHx8IGZhbHNlLFxuICAgICAgICBleHBhbmRlZDogcm93LmV4cGFuZGVkIHx8IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHJvdy5oaWRkZW4gfHwgZmFsc2UsXG4gICAgICAgIG5hdmlnYXRhYmxlOiByb3cubmF2aWdhdGFibGUgfHwgZmFsc2UsXG4gICAgICAgIHN0YXRlOiByb3cuc3RhdGUgfHwgJ3JlYWRvbmx5JyxcbiAgICAgICAgY2hpbGRyZW46IHJvdy5jaGlsZHJlbiB8fCBbXVxuICAgIH0pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGFibGVSb3dzKHJvd3M6IFRhYmxlUm93W10sIHNlbGVjdGFibGVLZXk6IHN0cmluZyk6IFRhYmxlUm93W10ge1xuICAgIHJldHVybiByb3dzLmZpbHRlcigocm93KSA9PiBpc1NlbGVjdGFibGVSb3cocm93LCBzZWxlY3RhYmxlS2V5KSk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3RhYmxlUm93KHJvdzogVGFibGVSb3csIHNlbGVjdGFibGVLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaXNJdGVtUm93KHJvdykgfHwgaXNUcmVlUm93KHJvdykpICYmIHJvdy52YWx1ZVtzZWxlY3RhYmxlS2V5XSAhPT0gZmFsc2U7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJdGVtUm93KHJvdzogVGFibGVSb3cpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm93LnR5cGUgPT09IFRhYmxlUm93VHlwZS5JVEVNO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHJlZVJvdyhyb3c6IFRhYmxlUm93KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJvdy50eXBlID09PSBUYWJsZVJvd1R5cGUuVFJFRTtcbn1cblxuLyoqXG4gKiBTaW5jZSB3ZSBkb250IHdvcmsgd2l0aCB0aGUgdHJlZSwgd2UgbmVlZCB0byBjb252ZXJ0IGluY29taW5nIHRyZWUgdG9cbiAqIGZsYXQgZm9ybWF0IHdoaWxlIG1haW50YWluaW5nIG9yaWdpbmFsIHN0YXRlLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUcmVlVGFibGVSb3dUb0ZsYXRMaXN0PFQ+KHJvd3M6IFRhYmxlUm93PFQ+W10sIHJvd05hdmlnYXRhYmxlOiBzdHJpbmcgfCBib29sZWFuKTogVGFibGVSb3c8VD5bXSB7XG4gICAgbGV0IGZsYXRMaXN0OiBUYWJsZVJvd1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygcm93cykge1xuICAgICAgICBpdGVtLm5hdmlnYXRhYmxlID0gaXNSb3dOYXZpZ2F0YWJsZShpdGVtIGFzIFQsIHJvd05hdmlnYXRhYmxlKTtcbiAgICAgICAgZmxhdExpc3QucHVzaChpdGVtKTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiAoYy5oaWRkZW4gPSAhaXRlbS5leHBhbmRlZCkpO1xuICAgICAgICAgICAgZmxhdExpc3QgPSBmbGF0TGlzdC5jb25jYXQoY29udmVydFRyZWVUYWJsZVJvd1RvRmxhdExpc3QoaXRlbS5jaGlsZHJlbiwgcm93TmF2aWdhdGFibGUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmxhdExpc3Q7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSb3dOYXZpZ2F0YWJsZTxUPihyb3c6IFQsIHJvd05hdmlnYXRhYmxlOiBzdHJpbmcgfCBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBJZiBrZXkgb2YgdGhlIHJvdydzIGl0ZW0gZmllbGQgcGFzc2VkICovXG4gICAgaWYgKGlzU3RyaW5nKHJvd05hdmlnYXRhYmxlKSkge1xuICAgICAgICByZXR1cm4gISFyb3dbcm93TmF2aWdhdGFibGUgYXMgc3RyaW5nXTtcbiAgICB9XG5cbiAgICByZXR1cm4gISFyb3dOYXZpZ2F0YWJsZTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGcmVlemFibGVDb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGZyZWV6ZUNvbHVtbnNUbzogc3RyaW5nKTogTWFwPHN0cmluZywgbnVtYmVyPiB7XG4gICAgY29uc3QgY29sdW1uTmFtZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gICAgaWYgKCFjb2x1bW5zLmxlbmd0aCB8fCAhZnJlZXplQ29sdW1uc1RvKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW5OYW1lcztcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgICAgIGlmICghY29sdW1uLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXNpbmcgY29sdW1uTmFtZXMuc2l6ZSBhcyBpbmRleCBvZiBhIGNvbHVtblxuICAgICAgICBjb2x1bW5OYW1lcy5zZXQoY29sdW1uLm5hbWUsIGNvbHVtbk5hbWVzLnNpemUpO1xuXG4gICAgICAgIGlmIChjb2x1bW4ubmFtZSA9PT0gZnJlZXplQ29sdW1uc1RvKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uTmFtZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1hcCgpO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZyZWV6YWJsZUVuZENvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSwgZnJlZXplRW5kQ29sdW1uc1RvOiBzdHJpbmcpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICBjb25zdCBjb2x1bW5OYW1lcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbiAgICBpZiAoIWNvbHVtbnMubGVuZ3RoIHx8ICFmcmVlemVFbmRDb2x1bW5zVG8pIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbk5hbWVzO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBjb2x1bW5zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIC8vIHVzaW5nIGNvbHVtbk5hbWVzLnNpemUgYXMgaW5kZXggb2YgYSBjb2x1bW5cbiAgICAgICAgY29sdW1uTmFtZXMuc2V0KGNvbHVtbnNbaV0ubmFtZSwgY29sdW1uTmFtZXMuc2l6ZSk7XG5cbiAgICAgICAgaWYgKGNvbHVtbnNbaV0ubmFtZSA9PT0gZnJlZXplRW5kQ29sdW1uc1RvKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uTmFtZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1hcCgpO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUcmVlT2JqZWN0c1RvVGFibGVSb3dzPFQ+KFxuICAgIHNvdXJjZTogVFtdLFxuICAgIHNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvbk1vZGVWYWx1ZSxcbiAgICB0YWJsZVJvd3M6IFRhYmxlUm93PFQ+W10sXG4gICAgcm93Q29tcGFyYXRvcjogUm93Q29tcGFyYXRvcjxUPixcbiAgICByZWxhdGlvbktleTogc3RyaW5nLFxuICAgIGhhc0NoaWxkcmVuS2V5OiBzdHJpbmcsXG4gICAgc2VsZWN0ZWRLZXk6IHN0cmluZyxcbiAgICBleHBhbmRlZFN0YXRlS2V5OiBzdHJpbmcsXG4gICAgcm93TmF2aWdhdGFibGU6IHN0cmluZyB8IGJvb2xlYW5cbik6IFRhYmxlUm93PFQ+W10ge1xuICAgIGNvbnN0IHJvd3M6IFRhYmxlUm93PFQ+W10gPSBbXTtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3NNYXAgPSBnZXRTZWxlY3Rpb25TdGF0dXNCeVJvd1ZhbHVlKHNvdXJjZSwgc2VsZWN0aW9uTW9kZSwgdGFibGVSb3dzLCByb3dDb21wYXJhdG9yKTtcblxuICAgIHNvdXJjZS5mb3JFYWNoKChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID1cbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdGVtLCByZWxhdGlvbktleSkgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoaXRlbVtyZWxhdGlvbktleV0pICYmXG4gICAgICAgICAgICBpdGVtW3JlbGF0aW9uS2V5XS5sZW5ndGg7XG5cbiAgICAgICAgY29uc3Qgcm93ID0gaXNUYWJsZVJvdyhpdGVtIGFzIFRhYmxlUm93PFQ+KVxuICAgICAgICAgICAgPyAoaXRlbSBhcyBUYWJsZVJvdzxUPilcbiAgICAgICAgICAgIDogbmV3VGFibGVSb3coe1xuICAgICAgICAgICAgICAgICAgdHlwZTogaGFzQ2hpbGRyZW4gfHwgaXRlbVtoYXNDaGlsZHJlbktleV0gPT09IHRydWUgPyBUYWJsZVJvd1R5cGUuVFJFRSA6IFRhYmxlUm93VHlwZS5JVEVNLFxuICAgICAgICAgICAgICAgICAgY2hlY2tlZDogaXRlbVtzZWxlY3RlZEtleV0gPz8gISFzZWxlY3RlZFJvd3NNYXAuZ2V0KGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICByb3cuZXhwYW5kZWQgPVxuICAgICAgICAgICAgZXhwYW5kZWRTdGF0ZUtleSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgZXhwYW5kZWRTdGF0ZUtleSlcbiAgICAgICAgICAgICAgICA/IGl0ZW1bZXhwYW5kZWRTdGF0ZUtleV1cbiAgICAgICAgICAgICAgICA6IGZhbHNlO1xuICAgICAgICByb3cubmF2aWdhdGFibGUgPSBpc1Jvd05hdmlnYXRhYmxlKGl0ZW0sIHJvd05hdmlnYXRhYmxlKTtcbiAgICAgICAgcm93cy5wdXNoKHJvdyk7XG5cbiAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGNvbnZlcnRUcmVlT2JqZWN0c1RvVGFibGVSb3dzKFxuICAgICAgICAgICAgICAgIGl0ZW1bcmVsYXRpb25LZXldLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGUsXG4gICAgICAgICAgICAgICAgdGFibGVSb3dzLFxuICAgICAgICAgICAgICAgIHJvd0NvbXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25LZXksXG4gICAgICAgICAgICAgICAgaGFzQ2hpbGRyZW5LZXksXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRLZXksXG4gICAgICAgICAgICAgICAgZXhwYW5kZWRTdGF0ZUtleSxcbiAgICAgICAgICAgICAgICByb3dOYXZpZ2F0YWJsZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgICAgIGMucGFyZW50ID0gYy5wYXJlbnQgfHwgcm93O1xuICAgICAgICAgICAgICAgIGMubGV2ZWwgPSBjLnBhcmVudC5sZXZlbCArIDE7XG4gICAgICAgICAgICAgICAgYy5oaWRkZW4gPSAhYy5wYXJlbnQuZXhwYW5kZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJvdy5jaGlsZHJlbi5wdXNoKC4uLmNoaWxkcmVuKTtcblxuICAgICAgICAgICAgcm93cy5wdXNoKC4uLmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocm93LmxldmVsID09PSAwICYmIHJvdy5pc1RyZWUpIHtcbiAgICAgICAgICAgIGRmcyhbcm93XSwgKHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHIuY2hpbGRyZW4gfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRDaGlsZHJlbjogVGFibGVSb3c8VD5bXSA9IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV0ZXJtaW5hdGVDaGlsZHJlbjogVGFibGVSb3c8VD5bXSA9IFtdO1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5jaGVja2VkID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENoaWxkcmVuLnB1c2goY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkLmNoZWNrZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV0ZXJtaW5hdGVDaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRBbGwgPSBzZWxlY3RlZENoaWxkcmVuLmxlbmd0aCA9PT0gY2hpbGRyZW4ubGVuZ3RoICYmIGNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRTb21lID0gc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIGlmIChyLmNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbHlTZWxlY3Rpb25Ub0NoaWxkcmVuKHJvd3MsIHIsIFtdLCBbXSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkQWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHIuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkU29tZSB8fCBpbmRldGVybWluYXRlQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByLmNoZWNrZWQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByb3dzO1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqIFJ1bnMgYHJvd0NvbXBhcmF0b3JgIGZ1bmN0aW9uIGFnYWluc3QgY2hlY2tlZCByb3dzIGFuZCBjb21wYXJlcyB0aGVtIHdpdGggdGhlIG5ldyBgc291cmNlYFxuICogSWYgbWF0Y2hlZCwgY3JlYXRlcyBhbiBhc3NvY2lhdGlvbiBiZXR3ZWVuIHRoZSBzb3VyY2UgaXRlbSBhbmQgY2hlY2tlZCBzdGF0dXMgb2YgY29ycmVzcG9uZGluZyByb3cuXG4gKlxuICogQHJldHVybnMgYE1hcGAgb2JqZWN0IHdpdGggdGhlIGBjaGVja2VkYCBzdGF0dXMgZm9yIHBhcnRpY3VsYXIgc291cmNlIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGlvblN0YXR1c0J5Um93VmFsdWU8VD4oXG4gICAgc291cmNlOiBUW10sXG4gICAgc2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIHRhYmxlUm93czogVGFibGVSb3dbXSxcbiAgICByb3dDb21wYXJhdG9yOiBSb3dDb21wYXJhdG9yPFQ+XG4pOiBNYXA8VCwgYm9vbGVhbiB8IG51bGw+IHtcbiAgICBjb25zdCByb3dNYXAgPSBuZXcgTWFwPFQsIGJvb2xlYW4gfCBudWxsPigpO1xuICAgIGlmIChcbiAgICAgICAgKHNlbGVjdGlvbk1vZGUgPT09IFNlbGVjdGlvbk1vZGUuU0lOR0xFIHx8IHNlbGVjdGlvbk1vZGUgPT09IFNlbGVjdGlvbk1vZGUuTVVMVElQTEUpICYmXG4gICAgICAgIHR5cGVvZiByb3dDb21wYXJhdG9yID09PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGNoZWNrZWRSb3dzID0gdGFibGVSb3dzLmZpbHRlcigocikgPT4gci5jaGVja2VkKTtcbiAgICAgICAgY2hlY2tlZFJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IHNvdXJjZS5maW5kKChlKSA9PiByb3dDb21wYXJhdG9yKHJvdy52YWx1ZSwgZSkpO1xuICAgICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICAgICAgcm93TWFwLnNldChmb3VuZCwgcm93LmNoZWNrZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd01hcDtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNlbGVjdGlvblRvQ2hpbGRyZW48VD4oXG4gICAgYWxsUm93czogQXJyYXk8VGFibGVSb3c8VD4+LFxuICAgIHJvdzogVGFibGVSb3csXG4gICAgYWRkZWRSb3dzOiBUYWJsZVJvdzxUPltdLFxuICAgIHJlbW92ZWRSb3dzOiBUYWJsZVJvdzxUPltdXG4pOiB2b2lkIHtcbiAgICBjb25zdCBhbGxDaGlsZHJlbiA9IGZpbmRSb3dDaGlsZHJlbihyb3csIGFsbFJvd3MpO1xuXG4gICAgYWxsQ2hpbGRyZW4uZm9yRWFjaCgocikgPT4ge1xuICAgICAgICByLmNoZWNrZWQgPSByb3cuY2hlY2tlZDtcbiAgICAgICAgci5jaGVja2VkID8gYWRkZWRSb3dzLnB1c2gocikgOiByZW1vdmVkUm93cy5wdXNoKHIpO1xuICAgIH0pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRSb3dDaGlsZHJlbjxUPihyb3c6IFRhYmxlUm93PFQ+LCBhbGxSb3dzOiBUYWJsZVJvdzxUPltdKTogVGFibGVSb3c8VD5bXSB7XG4gICAgY29uc3Qgcm93c0xlbmd0aCA9IGFsbFJvd3MubGVuZ3RoO1xuXG4gICAgLyoqXG4gICAgICogU2luY2Ugd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGZsYXQgbGlzdFxuICAgICAqIGl0IG1lYW5zIGFsbCBjaGlsZHJlbiBnbyBuZXh0IHJpZ2h0IGFmdGVyIHRoZSBleHBhbmRhYmxlIHJvd1xuICAgICAqIHVudGlsIHRoZSBuZXh0IHJvdyBoYXMgYSBtdXR1YWwgcGFyZW50XG4gICAgICovXG5cbiAgICBsZXQgaW5kZXggPSBhbGxSb3dzLmluZGV4T2Yocm93KTtcbiAgICBjb25zdCBwYXJlbnRzID0gZ2V0Um93UGFyZW50cyhyb3cpO1xuICAgIGNvbnN0IGNoaWxkcmVuOiBUYWJsZVJvdzxUPltdID0gW107XG5cbiAgICB3aGlsZSAoaW5kZXgrKyA8IHJvd3NMZW5ndGgpIHtcbiAgICAgICAgY29uc3QgbmV4dFJvdyA9IGFsbFJvd3NbaW5kZXhdO1xuICAgICAgICBpZiAoIW5leHRSb3c/LnBhcmVudCB8fCBwYXJlbnRzLmluY2x1ZGVzKG5leHRSb3cucGFyZW50KSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRyZW4ucHVzaChuZXh0Um93KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGRyZW47XG59XG5cbi8qKlxuICogR2V0IHJvdyBwYXJlbnRzIHBhdGggd2hlcmUgdGhlIGZpcnN0IGlzIHRoZSBkaXJlY3QgcGFyZW50XG4gKiBAcGFyYW0gcm93IFJvdyB3aGljaCBwYXJlbnRzIHdlIG5lZWQgdG8gZmluZFxuICogQHBhcmFtIHVudGlsUGFyZW50IFBhcmVudCB0byBzdG9wIGEgc2VhcmNoIG9uLiBEZWZhdWx0IGlzIFwibnVsbFwiIHRoYXQgbWVhbnMgbG9vayB1cCB1bnRpbCB0aGUgcm9vdFxuICogQHJldHVybnMgcGFyZW50cyBsaXN0IFtkaXJlY3QgcGFyZW50LCAuLi4sIGFuY2VzdG9yXVxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um93UGFyZW50czxUPihyb3c6IFRhYmxlUm93PFQ+LCB1bnRpbFBhcmVudDogVGFibGVSb3c8VD4gfCBudWxsID0gbnVsbCk6IFRhYmxlUm93PFQ+W10ge1xuICAgIHVudGlsUGFyZW50ID0gdW50aWxQYXJlbnQgfHwgbnVsbDsgLy8gdG8gYXZvaWQgXCJ1bmRlZmluZWRcIlxuICAgIGNvbnN0IHBhcmVudHM6IFRhYmxlUm93PFQ+W10gPSBbXTtcbiAgICBsZXQgcGFyZW50ID0gcm93LnBhcmVudCB8fCBudWxsOyAvLyBlbXB0eSBwYXJlbnQgc2hvdWxkIGJlIGNvZXJjZWQgdG8gXCJudWxsXCIgZG8gbm90IGdldCBpbnRvIGluZmluaXRlIGxvb3BcbiAgICB3aGlsZSAocGFyZW50ICYmIHBhcmVudCAhPT0gdW50aWxQYXJlbnQpIHtcbiAgICAgICAgcGFyZW50cy5wdXNoKHBhcmVudCk7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQgfHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudHM7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRhU3RyZWFtPFQ+KHNvdXJjZTogRmRwVGFibGVEYXRhU291cmNlPFQ+KTogVGFibGVEYXRhU291cmNlPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoaXNEYXRhU291cmNlKHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBUYWJsZURhdGFTb3VyY2U8VD47XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5VGFibGVEYXRhU291cmNlKHNvdXJjZSk7XG4gICAgfVxuXG4gICAgaWYgKGlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZVRhYmxlRGF0YVNvdXJjZShzb3VyY2UpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG4vKipcbiAqIEBoaWRkZW5cbiAqIENyZWF0ZXMgYW4gZW1wdHkgY29sdW1uIHNrZWxldG9uIG9iamVjdC5cbiAqIEByZXR1cm5zIENvbHVtbiBtb2RlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTmV3Um93U2tlbGV0b248VD4oZWRpdGFibGVSb3dTa2VsZXRvbjogVCwgY29sdW1uczogVGFibGVDb2x1bW5bXSk6IFQge1xuICAgIGlmIChlZGl0YWJsZVJvd1NrZWxldG9uKSB7XG4gICAgICAgIHJldHVybiBjbG9uZURlZXAoZWRpdGFibGVSb3dTa2VsZXRvbik7XG4gICAgfVxuXG4gICAgbGV0IG5ld1JvdyA9IHt9O1xuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIG5ld1JvdyA9IHNldChuZXdSb3csIGNvbHVtbi5rZXksIHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3Um93IGFzIFQ7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFJvdyhyb3c6IFRhYmxlUm93KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJvdy50eXBlID09PSBUYWJsZVJvd1R5cGUuR1JPVVA7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFRyZWVMaWtlR3JvdXBlZFJvd3MoXG4gICAgZ3JvdXBlZFJvd3M6IFRyZWVMaWtlPFRhYmxlUm93PltdLFxuICAgIGdyb3VwUnVsZXNNYXA6IE1hcDxzdHJpbmcsIENvbGxlY3Rpb25Hcm91cD5cbik6IFRyZWVMaWtlPFRhYmxlUm93PltdIHtcbiAgICBpZiAoIWdyb3VwZWRSb3dzWzBdIHx8ICFpc0dyb3VwUm93KGdyb3VwZWRSb3dzWzBdKSkge1xuICAgICAgICByZXR1cm4gZ3JvdXBlZFJvd3M7XG4gICAgfVxuXG4gICAgY29uc3QgdHJlZUxpa2VSb3dzID0gZ3JvdXBlZFJvd3MgYXMgVHJlZUxpa2U8VGFibGVSb3c8R3JvdXBUYWJsZVJvd1ZhbHVlVHlwZT4+W107XG4gICAgY29uc3QgZmlyc3RSb3cgPSB0cmVlTGlrZVJvd3NbMF07XG5cbiAgICB0cmVlTGlrZVJvd3MuZm9yRWFjaCgoZ3JvdXApID0+IHtcbiAgICAgICAgaWYgKGdyb3VwLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgZ3JvdXAuX2NoaWxkcmVuID0gc29ydFRyZWVMaWtlR3JvdXBlZFJvd3MoZ3JvdXAuX2NoaWxkcmVuLCBncm91cFJ1bGVzTWFwKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgZ3JvdXBSdWxlID0gZ3JvdXBSdWxlc01hcC5nZXQoZmlyc3RSb3cudmFsdWUuZmllbGQpO1xuXG4gICAgaWYgKCFncm91cFJ1bGUgfHwgZ3JvdXBSdWxlLmRpcmVjdGlvbiA9PT0gU29ydERpcmVjdGlvbi5OT05FKSB7XG4gICAgICAgIHJldHVybiB0cmVlTGlrZVJvd3M7XG4gICAgfVxuXG4gICAgY29uc3QgZGlyZWN0aW9uID0gZ3JvdXBSdWxlLmRpcmVjdGlvbjtcbiAgICBjb25zdCBkaXJlY3Rpb25NdWx0aXBsaWVyID0gZGlyZWN0aW9uID09PSBTb3J0RGlyZWN0aW9uLkFTQyA/IDEgOiBkaXJlY3Rpb24gPT09IFNvcnREaXJlY3Rpb24uREVTQyA/IC0xIDogMDtcblxuICAgIHJldHVybiB0cmVlTGlrZVJvd3Muc2xpY2UoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGNvbnN0IGFWYWx1ZSA9IGEudmFsdWUudmFsdWUgYXMgYW55O1xuICAgICAgICBjb25zdCBiVmFsdWUgPSBiLnZhbHVlLnZhbHVlIGFzIGFueTtcblxuICAgICAgICBjb25zdCBhTnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQoYVZhbHVlKTtcbiAgICAgICAgY29uc3QgYk51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KGJWYWx1ZSk7XG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKGFOdW1iZXIpICYmICFOdW1iZXIuaXNOYU4oYk51bWJlcikpIHtcbiAgICAgICAgICAgIHJldHVybiAoYU51bWJlciAtIGJOdW1iZXIpICogZGlyZWN0aW9uTXVsdGlwbGllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoYVZhbHVlID4gYlZhbHVlID8gMSA6IC0xKSAqIGRpcmVjdGlvbk11bHRpcGxpZXI7XG4gICAgfSk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRyZWVMaWtlVG9GbGF0TGlzdDxLPih0cmVlTGlrZUxpc3Q6IFRyZWVMaWtlPEs+W10pOiBLW10ge1xuICAgIGxldCBmbGF0TGlzdDogS1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdHJlZUxpa2VMaXN0KSB7XG4gICAgICAgIGZsYXRMaXN0LnB1c2goaXRlbSk7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5fY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBmbGF0TGlzdCA9IGZsYXRMaXN0LmNvbmNhdChjb252ZXJ0VHJlZUxpa2VUb0ZsYXRMaXN0KGl0ZW0uX2NoaWxkcmVuKSk7XG4gICAgICAgICAgICBkZWxldGUgaXRlbS5fY2hpbGRyZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmxhdExpc3Q7XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogR3JvdXAgdGFibGUgcm93cyBhbmQgcmV0dXJuIHRyZWUgbGlrZSByb3dzIGxpc3QuXG4gKiBJdCdzIGludGVuZGVkIHRvIGJlIGNhbGxlZCByZWN1cnNpdmVseS5cbiAqIEBwYXJhbSBydWxlcyBncm91cCBydWxlcyB0byBncm91cCBieVxuICogQHBhcmFtIHJvd3Mgc291cmNlIHRhYmxlIHJvd3NcbiAqIEBwYXJhbSBwYXJlbnQgcm93IHBhcmVudFxuICogQHBhcmFtIGxldmVsIGxldmVsIG9mIG5lc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdyb3VwZWRUYWJsZVJvd3NUcmVlKFxuICAgIHJ1bGVzOiBDb2xsZWN0aW9uR3JvdXBbXSxcbiAgICByb3dzOiBUYWJsZVJvd1tdLFxuICAgIHBhcmVudDogVGFibGVSb3cgfCBudWxsID0gbnVsbCxcbiAgICBsZXZlbCA9IDBcbik6IFRyZWVMaWtlPFRhYmxlUm93PltdIHtcbiAgICBydWxlcyA9IFsuLi5ydWxlc107XG5cbiAgICBpZiAoIXJ1bGVzLmxlbmd0aCkge1xuICAgICAgICAvLyBubyBydWxlcyBtZWFuIHRoYXQgaXQncyB0aGUgbGV2ZWwgb2Ygc291cmNlIGl0ZW1zXG4gICAgICAgIHJldHVybiByb3dzLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICByb3cucGFyZW50ID0gcGFyZW50O1xuICAgICAgICAgICAgcm93LmxldmVsID0gbGV2ZWw7XG4gICAgICAgICAgICByb3cuaGlkZGVuID0gISFwYXJlbnQgJiYgIXBhcmVudC5leHBhbmRlZDtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIGZpcnN0IGdyb3VwIHJ1bGVcbiAgICBjb25zdCBydWxlID0gcnVsZXMuc2hpZnQoKSE7XG5cbiAgICAvLyBCdWlsZCBtYXAgb2YgdW5pcXVlIHZhbHVlcyBmb3IgYSBnaXZlbiBncm91cCBydWxlXG4gICAgY29uc3QgdmFsdWVzSGFzaCA9IHJvd3NcbiAgICAgICAgLmZpbHRlcigocikgPT4gci5zdGF0ZSAhPT0gJ2VkaXRhYmxlJylcbiAgICAgICAgLnJlZHVjZSgoaGFzaCwgcm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2RlbFZhbHVlID0gZ2V0KHJvdy52YWx1ZSwgcnVsZS5maWVsZCk7XG5cbiAgICAgICAgICAgIGlmICghaGFzaC5oYXMobW9kZWxWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBoYXNoLnNldChtb2RlbFZhbHVlLCBbXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhhc2guZ2V0KG1vZGVsVmFsdWUpPy5wdXNoKHJvdyk7XG5cbiAgICAgICAgICAgIHJldHVybiBoYXNoO1xuICAgICAgICB9LCBuZXcgTWFwPHVua25vd24sIFRhYmxlUm93W10+KCkpO1xuXG4gICAgLy8gQnVpbGQgdGFibGUgcm93cyB0cmVlXG4gICAgbGV0IGdyb3VwZWRUYWJsZVJvd3M6IFRyZWVMaWtlPFRhYmxlUm93PltdID0gW107XG5cbiAgICBpZiAocm93cy5zb21lKChyKSA9PiByLnN0YXRlID09PSAnZWRpdGFibGUnKSkge1xuICAgICAgICBncm91cGVkVGFibGVSb3dzID0gcm93c1xuICAgICAgICAgICAgLmZpbHRlcigocikgPT4gci5zdGF0ZSA9PT0gJ2VkaXRhYmxlJylcbiAgICAgICAgICAgIC5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgIHJvdy5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgICAgICAgICAgcm93LmxldmVsID0gLTE7XG4gICAgICAgICAgICAgICAgcm93LmhpZGRlbiA9ICEhcGFyZW50ICYmICFwYXJlbnQuZXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3ZhbHVlLCB2YWx1ZXNdIG9mIEFycmF5LmZyb20odmFsdWVzSGFzaCkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRSb3dzID0gcm93cy5maWx0ZXIoKF9pdGVtKSA9PiB2YWx1ZXMuaW5jbHVkZXMoX2l0ZW0pKTtcblxuICAgICAgICBpZiAoZmlsdGVyZWRSb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBncm91cFRhYmxlUm93OiBUcmVlTGlrZTxUYWJsZVJvdzxHcm91cFRhYmxlUm93VmFsdWVUeXBlPj4gPSBuZXdUYWJsZVJvdzxHcm91cFRhYmxlUm93VmFsdWVUeXBlPih7XG4gICAgICAgICAgICB0eXBlOiBUYWJsZVJvd1R5cGUuR1JPVVAsXG4gICAgICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgICAgdmFsdWU6IHsgZmllbGQ6IHJ1bGUuZmllbGQsIHZhbHVlLCBjb3VudDogMCB9LFxuICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICBleHBhbmRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXG4gICAgICAgICAgICBoaWRkZW46ICEhcGFyZW50ICYmICFwYXJlbnQuZXhwYW5kZWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRzIGdyb3VwJ3MgY2hpbGRyZW4gcm93c1xuICAgICAgICBncm91cFRhYmxlUm93Ll9jaGlsZHJlbiA9IGNyZWF0ZUdyb3VwZWRUYWJsZVJvd3NUcmVlKHJ1bGVzLCBmaWx0ZXJlZFJvd3MsIGdyb3VwVGFibGVSb3csIGxldmVsICsgMSk7XG5cbiAgICAgICAgZ3JvdXBUYWJsZVJvdy52YWx1ZS5jb3VudCA9IGdyb3VwVGFibGVSb3cuX2NoaWxkcmVuPy5sZW5ndGg7XG5cbiAgICAgICAgZ3JvdXBlZFRhYmxlUm93cy5wdXNoKGdyb3VwVGFibGVSb3cpO1xuICAgIH1cblxuICAgIHJldHVybiBncm91cGVkVGFibGVSb3dzO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRPYmplY3RzVG9UYWJsZVJvd3M8VD4oXG4gICAgc291cmNlOiBUW10sXG4gICAgYWRkZWRJdGVtczogVFtdLFxuICAgIHNlbGVjdGVkS2V5OiBzdHJpbmcsXG4gICAgcm93TmF2aWdhdGFibGU6IGJvb2xlYW4gfCBzdHJpbmcsXG4gICAgc2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIHJvd3M6IFRhYmxlUm93W10sXG4gICAgcm93Q29tcGFyYXRvcjogUm93Q29tcGFyYXRvclxuKTogVGFibGVSb3c8VD5bXSB7XG4gICAgY29uc3Qgcm93SXRlbSA9IHNvdXJjZVswXSBhcyBhbnk7XG5cbiAgICBpZiAoaXNUYWJsZVJvdyhyb3dJdGVtKSkge1xuICAgICAgICByZXR1cm4gc291cmNlIGFzIFRhYmxlUm93W107XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzTWFwID0gZ2V0U2VsZWN0aW9uU3RhdHVzQnlSb3dWYWx1ZShzb3VyY2UsIHNlbGVjdGlvbk1vZGUsIHJvd3MsIHJvd0NvbXBhcmF0b3IpO1xuICAgIHJldHVybiBzb3VyY2UubWFwKChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTmV3SXRlbSA9IGFkZGVkSXRlbXMuaW5jbHVkZXMoaXRlbSk7XG4gICAgICAgIGNvbnN0IHJvdyA9IG5ld1RhYmxlUm93KHtcbiAgICAgICAgICAgIHR5cGU6IFRhYmxlUm93VHlwZS5JVEVNLFxuICAgICAgICAgICAgY2hlY2tlZDogaXRlbVtzZWxlY3RlZEtleV0gPz8gISFzZWxlY3RlZFJvd3NNYXAuZ2V0KGl0ZW0pLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICB9KTtcbiAgICAgICAgcm93Lm5hdmlnYXRhYmxlID0gaXNSb3dOYXZpZ2F0YWJsZShpdGVtLCByb3dOYXZpZ2F0YWJsZSk7XG4gICAgICAgIHJvdy5zdGF0ZSA9IGlzTmV3SXRlbSA/ICdlZGl0YWJsZScgOiAncmVhZG9ubHknO1xuICAgICAgICByZXR1cm4gcm93O1xuICAgIH0pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHJlZVJvd0ZpcnN0Q2VsbChjZWxsSW5kZXg6IG51bWJlciwgcm93OiBUYWJsZVJvdywgZXZlbnQ/OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoY2VsbEluZGV4ID09PSAwICYmIGlzVHJlZVJvdyhyb3cpKSB8fCAoISFldmVudCAmJiAhcm93LmlzVHJlZSk7XG59XG4iXX0=
409
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90YWJsZS1oZWxwZXJzL2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBc0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJNUQsT0FBTyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxHQUFHLE1BQU0sZUFBZSxDQUFDO0FBRWhDLE9BQU8sR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNoQyxPQUFPLEVBQUUsVUFBVSxFQUFZLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlFLGNBQWM7QUFDZCxNQUFNLFVBQVUsV0FBVyxDQUFVLEdBQXlCO0lBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQzVFO0lBRUQsT0FBTyxJQUFJLFlBQVksQ0FBQztRQUNwQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSTtRQUNuQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLO1FBQzdC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QUUsY0FBYyxDQUFDLENBQUM7UUFDekQsR0FBRyxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2hELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsY0FBYztBQUNkLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxTQUFpQixFQUFFLEdBQWEsRUFBRSxLQUFhO0lBQzlFLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGZzLCBpc1N0cmluZyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IGlzRGF0YVNvdXJjZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXJyYXlUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL2RvbWFpbi9hcnJheS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlVGFibGVEYXRhU291cmNlIH0gZnJvbSAnLi9kb21haW4vb2JzZXJ2YWJsZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL2RvbWFpbi90YWJsZS1kYXRhLXNvdXJjZSc7XG5pbXBvcnQgeyBUYWJsZVJvd1R5cGUgfSBmcm9tICcuL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZSwgU2VsZWN0aW9uTW9kZVZhbHVlIH0gZnJvbSAnLi9lbnVtcy9zZWxlY3Rpb24tbW9kZS5lbnVtJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICcuL2VudW1zL3NvcnQtZGlyZWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkdyb3VwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tZ3JvdXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZkcFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtc291cmNlLnR5cGUnO1xuaW1wb3J0IHsgUm93Q29tcGFyYXRvciB9IGZyb20gJy4vbW9kZWxzL3Jvdy1jb21wYXJhdG9yLm1vZGVsJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoLWVzL2Nsb25lRGVlcCc7XG5pbXBvcnQgc2V0IGZyb20gJ2xvZGFzaC1lcy9zZXQnO1xuaW1wb3J0IHsgR3JvdXBUYWJsZVJvd1ZhbHVlVHlwZSwgVHJlZUxpa2UgfSBmcm9tICcuL21vZGVscy90cmVlLXRhYmxlLm1vZGVsJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLWVzL2dldCc7XG5pbXBvcnQgeyBpc1RhYmxlUm93LCBUYWJsZVJvdywgVGFibGVSb3dJbXBsIH0gZnJvbSAnLi9tb2RlbHMvdGFibGUtcm93Lm1vZGVsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4nO1xuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5ld1RhYmxlUm93PFQgPSBhbnk+KHJvdzogUGFydGlhbDxUYWJsZVJvdzxUPj4pOiBUYWJsZVJvdzxUPiB7XG4gICAgaWYgKCFyb3cudmFsdWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIHZhbHVlLiBUYWJsZVJvdy52YWx1ZSBjYW5ub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVGFibGVSb3dJbXBsKHtcbiAgICAgICAgdHlwZTogcm93LnR5cGUgfHwgVGFibGVSb3dUeXBlLklURU0sXG4gICAgICAgIGNoZWNrZWQ6IHJvdy5jaGVja2VkIHx8IGZhbHNlLFxuICAgICAgICBpbmRleDogcm93LmluZGV4IHx8IDAsXG4gICAgICAgIHZhbHVlOiByb3cudmFsdWUsXG4gICAgICAgIHBhcmVudDogcm93LnBhcmVudCB8fCBudWxsLFxuICAgICAgICBsZXZlbDogcm93LmxldmVsIHx8IDAsXG4gICAgICAgIGV4cGFuZGFibGU6IHJvdy5leHBhbmRhYmxlIHx8IGZhbHNlLFxuICAgICAgICBleHBhbmRlZDogcm93LmV4cGFuZGVkIHx8IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHJvdy5oaWRkZW4gfHwgZmFsc2UsXG4gICAgICAgIG5hdmlnYXRhYmxlOiByb3cubmF2aWdhdGFibGUgfHwgZmFsc2UsXG4gICAgICAgIHN0YXRlOiByb3cuc3RhdGUgfHwgJ3JlYWRvbmx5JyxcbiAgICAgICAgY2hpbGRyZW46IHJvdy5jaGlsZHJlbiB8fCBbXVxuICAgIH0pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGFibGVSb3dzKHJvd3M6IFRhYmxlUm93W10sIHNlbGVjdGFibGVLZXk6IHN0cmluZyk6IFRhYmxlUm93W10ge1xuICAgIHJldHVybiByb3dzLmZpbHRlcigocm93KSA9PiBpc1NlbGVjdGFibGVSb3cocm93LCBzZWxlY3RhYmxlS2V5KSk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3RhYmxlUm93KHJvdzogVGFibGVSb3csIHNlbGVjdGFibGVLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoaXNJdGVtUm93KHJvdykgfHwgaXNUcmVlUm93KHJvdykpICYmIHJvdy52YWx1ZVtzZWxlY3RhYmxlS2V5XSAhPT0gZmFsc2U7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNJdGVtUm93KHJvdzogVGFibGVSb3cpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcm93LnR5cGUgPT09IFRhYmxlUm93VHlwZS5JVEVNO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHJlZVJvdyhyb3c6IFRhYmxlUm93KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJvdy50eXBlID09PSBUYWJsZVJvd1R5cGUuVFJFRTtcbn1cblxuLyoqXG4gKiBTaW5jZSB3ZSBkb250IHdvcmsgd2l0aCB0aGUgdHJlZSwgd2UgbmVlZCB0byBjb252ZXJ0IGluY29taW5nIHRyZWUgdG9cbiAqIGZsYXQgZm9ybWF0IHdoaWxlIG1haW50YWluaW5nIG9yaWdpbmFsIHN0YXRlLlxuICpcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUcmVlVGFibGVSb3dUb0ZsYXRMaXN0PFQ+KHJvd3M6IFRhYmxlUm93PFQ+W10sIHJvd05hdmlnYXRhYmxlOiBzdHJpbmcgfCBib29sZWFuKTogVGFibGVSb3c8VD5bXSB7XG4gICAgbGV0IGZsYXRMaXN0OiBUYWJsZVJvd1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygcm93cykge1xuICAgICAgICBpdGVtLm5hdmlnYXRhYmxlID0gaXNSb3dOYXZpZ2F0YWJsZShpdGVtIGFzIFQsIHJvd05hdmlnYXRhYmxlKTtcbiAgICAgICAgZmxhdExpc3QucHVzaChpdGVtKTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgaXRlbS5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiAoYy5oaWRkZW4gPSAhaXRlbS5leHBhbmRlZCkpO1xuICAgICAgICAgICAgZmxhdExpc3QgPSBmbGF0TGlzdC5jb25jYXQoY29udmVydFRyZWVUYWJsZVJvd1RvRmxhdExpc3QoaXRlbS5jaGlsZHJlbiwgcm93TmF2aWdhdGFibGUpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmxhdExpc3Q7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSb3dOYXZpZ2F0YWJsZTxUPihyb3c6IFQsIHJvd05hdmlnYXRhYmxlOiBzdHJpbmcgfCBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgaWYgKCFyb3cpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBJZiBrZXkgb2YgdGhlIHJvdydzIGl0ZW0gZmllbGQgcGFzc2VkICovXG4gICAgaWYgKGlzU3RyaW5nKHJvd05hdmlnYXRhYmxlKSkge1xuICAgICAgICByZXR1cm4gISFyb3dbcm93TmF2aWdhdGFibGUgYXMgc3RyaW5nXTtcbiAgICB9XG5cbiAgICByZXR1cm4gISFyb3dOYXZpZ2F0YWJsZTtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRGcmVlemFibGVDb2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGZyZWV6ZUNvbHVtbnNUbzogc3RyaW5nKTogTWFwPHN0cmluZywgbnVtYmVyPiB7XG4gICAgY29uc3QgY29sdW1uTmFtZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG4gICAgaWYgKCFjb2x1bW5zLmxlbmd0aCB8fCAhZnJlZXplQ29sdW1uc1RvKSB7XG4gICAgICAgIHJldHVybiBjb2x1bW5OYW1lcztcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5zKSB7XG4gICAgICAgIGlmICghY29sdW1uLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdXNpbmcgY29sdW1uTmFtZXMuc2l6ZSBhcyBpbmRleCBvZiBhIGNvbHVtblxuICAgICAgICBjb2x1bW5OYW1lcy5zZXQoY29sdW1uLm5hbWUsIGNvbHVtbk5hbWVzLnNpemUpO1xuXG4gICAgICAgIGlmIChjb2x1bW4ubmFtZSA9PT0gZnJlZXplQ29sdW1uc1RvKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uTmFtZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1hcCgpO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEZyZWV6YWJsZUVuZENvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSwgZnJlZXplRW5kQ29sdW1uc1RvOiBzdHJpbmcpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICBjb25zdCBjb2x1bW5OYW1lcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG5cbiAgICBpZiAoIWNvbHVtbnMubGVuZ3RoIHx8ICFmcmVlemVFbmRDb2x1bW5zVG8pIHtcbiAgICAgICAgcmV0dXJuIGNvbHVtbk5hbWVzO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBjb2x1bW5zLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIC8vIHVzaW5nIGNvbHVtbk5hbWVzLnNpemUgYXMgaW5kZXggb2YgYSBjb2x1bW5cbiAgICAgICAgY29sdW1uTmFtZXMuc2V0KGNvbHVtbnNbaV0ubmFtZSwgY29sdW1uTmFtZXMuc2l6ZSk7XG5cbiAgICAgICAgaWYgKGNvbHVtbnNbaV0ubmFtZSA9PT0gZnJlZXplRW5kQ29sdW1uc1RvKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sdW1uTmFtZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1hcCgpO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUcmVlT2JqZWN0c1RvVGFibGVSb3dzPFQ+KFxuICAgIHNvdXJjZTogVFtdLFxuICAgIHNlbGVjdGlvbk1vZGU6IFNlbGVjdGlvbk1vZGVWYWx1ZSxcbiAgICB0YWJsZVJvd3M6IFRhYmxlUm93PFQ+W10sXG4gICAgcm93Q29tcGFyYXRvcjogUm93Q29tcGFyYXRvcjxUPixcbiAgICByZWxhdGlvbktleTogc3RyaW5nLFxuICAgIGhhc0NoaWxkcmVuS2V5OiBzdHJpbmcsXG4gICAgc2VsZWN0ZWRLZXk6IHN0cmluZyxcbiAgICBleHBhbmRlZFN0YXRlS2V5OiBzdHJpbmcsXG4gICAgcm93TmF2aWdhdGFibGU6IHN0cmluZyB8IGJvb2xlYW4sXG4gICAgZW5hYmxlVHJpc3RhdGVNb2RlID0gZmFsc2Vcbik6IFRhYmxlUm93PFQ+W10ge1xuICAgIGNvbnN0IHJvd3M6IFRhYmxlUm93PFQ+W10gPSBbXTtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3NNYXAgPSBnZXRTZWxlY3Rpb25TdGF0dXNCeVJvd1ZhbHVlKHNvdXJjZSwgc2VsZWN0aW9uTW9kZSwgdGFibGVSb3dzLCByb3dDb21wYXJhdG9yKTtcblxuICAgIHNvdXJjZS5mb3JFYWNoKChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID1cbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdGVtLCByZWxhdGlvbktleSkgJiZcbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoaXRlbVtyZWxhdGlvbktleV0pICYmXG4gICAgICAgICAgICBpdGVtW3JlbGF0aW9uS2V5XS5sZW5ndGg7XG5cbiAgICAgICAgY29uc3Qgcm93ID0gaXNUYWJsZVJvdyhpdGVtIGFzIFRhYmxlUm93PFQ+KVxuICAgICAgICAgICAgPyAoaXRlbSBhcyBUYWJsZVJvdzxUPilcbiAgICAgICAgICAgIDogbmV3VGFibGVSb3coe1xuICAgICAgICAgICAgICAgICAgdHlwZTogaGFzQ2hpbGRyZW4gfHwgaXRlbVtoYXNDaGlsZHJlbktleV0gPT09IHRydWUgPyBUYWJsZVJvd1R5cGUuVFJFRSA6IFRhYmxlUm93VHlwZS5JVEVNLFxuICAgICAgICAgICAgICAgICAgY2hlY2tlZDogaXRlbVtzZWxlY3RlZEtleV0gPz8gISFzZWxlY3RlZFJvd3NNYXAuZ2V0KGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICByb3cuZXhwYW5kZWQgPVxuICAgICAgICAgICAgZXhwYW5kZWRTdGF0ZUtleSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXRlbSwgZXhwYW5kZWRTdGF0ZUtleSlcbiAgICAgICAgICAgICAgICA/IGl0ZW1bZXhwYW5kZWRTdGF0ZUtleV1cbiAgICAgICAgICAgICAgICA6IGZhbHNlO1xuICAgICAgICByb3cubmF2aWdhdGFibGUgPSBpc1Jvd05hdmlnYXRhYmxlKGl0ZW0sIHJvd05hdmlnYXRhYmxlKTtcbiAgICAgICAgcm93cy5wdXNoKHJvdyk7XG5cbiAgICAgICAgaWYgKGhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IGNvbnZlcnRUcmVlT2JqZWN0c1RvVGFibGVSb3dzKFxuICAgICAgICAgICAgICAgIGl0ZW1bcmVsYXRpb25LZXldLFxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGUsXG4gICAgICAgICAgICAgICAgdGFibGVSb3dzLFxuICAgICAgICAgICAgICAgIHJvd0NvbXBhcmF0b3IsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25LZXksXG4gICAgICAgICAgICAgICAgaGFzQ2hpbGRyZW5LZXksXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRLZXksXG4gICAgICAgICAgICAgICAgZXhwYW5kZWRTdGF0ZUtleSxcbiAgICAgICAgICAgICAgICByb3dOYXZpZ2F0YWJsZSxcbiAgICAgICAgICAgICAgICBlbmFibGVUcmlzdGF0ZU1vZGVcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgICAgICBjLnBhcmVudCA9IGMucGFyZW50IHx8IHJvdztcbiAgICAgICAgICAgICAgICBjLmxldmVsID0gYy5wYXJlbnQubGV2ZWwgKyAxO1xuICAgICAgICAgICAgICAgIGMuaGlkZGVuID0gIWMucGFyZW50LmV4cGFuZGVkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByb3cuY2hpbGRyZW4ucHVzaCguLi5jaGlsZHJlbik7XG5cbiAgICAgICAgICAgIHJvd3MucHVzaCguLi5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJvdy5sZXZlbCA9PT0gMCAmJiByb3cuaXNUcmVlKSB7XG4gICAgICAgICAgICBkZnMoW3Jvd10sIChyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSByLmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ2hpbGRyZW46IFRhYmxlUm93PFQ+W10gPSBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBpbmRldGVybWluYXRlQ2hpbGRyZW46IFRhYmxlUm93PFQ+W10gPSBbXTtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQuY2hlY2tlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjaGlsZC5jaGVja2VkID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRldGVybWluYXRlQ2hpbGRyZW4ucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQWxsID0gc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggPT09IGNoaWxkcmVuLmxlbmd0aCAmJiBjaGlsZHJlbi5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkU29tZSA9IHNlbGVjdGVkQ2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICBpZiAoci5jaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIGFwcGx5U2VsZWN0aW9uVG9DaGlsZHJlbihyb3dzLCByLCBbXSwgW10pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghZW5hYmxlVHJpc3RhdGVNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkQWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHIuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkU29tZSB8fCBpbmRldGVybWluYXRlQ2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICByLmNoZWNrZWQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiByb3dzO1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqIFJ1bnMgYHJvd0NvbXBhcmF0b3JgIGZ1bmN0aW9uIGFnYWluc3QgY2hlY2tlZCByb3dzIGFuZCBjb21wYXJlcyB0aGVtIHdpdGggdGhlIG5ldyBgc291cmNlYFxuICogSWYgbWF0Y2hlZCwgY3JlYXRlcyBhbiBhc3NvY2lhdGlvbiBiZXR3ZWVuIHRoZSBzb3VyY2UgaXRlbSBhbmQgY2hlY2tlZCBzdGF0dXMgb2YgY29ycmVzcG9uZGluZyByb3cuXG4gKlxuICogQHJldHVybnMgYE1hcGAgb2JqZWN0IHdpdGggdGhlIGBjaGVja2VkYCBzdGF0dXMgZm9yIHBhcnRpY3VsYXIgc291cmNlIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGlvblN0YXR1c0J5Um93VmFsdWU8VD4oXG4gICAgc291cmNlOiBUW10sXG4gICAgc2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIHRhYmxlUm93czogVGFibGVSb3dbXSxcbiAgICByb3dDb21wYXJhdG9yOiBSb3dDb21wYXJhdG9yPFQ+XG4pOiBNYXA8VCwgYm9vbGVhbiB8IG51bGw+IHtcbiAgICBjb25zdCByb3dNYXAgPSBuZXcgTWFwPFQsIGJvb2xlYW4gfCBudWxsPigpO1xuICAgIGlmIChcbiAgICAgICAgKHNlbGVjdGlvbk1vZGUgPT09IFNlbGVjdGlvbk1vZGUuU0lOR0xFIHx8IHNlbGVjdGlvbk1vZGUgPT09IFNlbGVjdGlvbk1vZGUuTVVMVElQTEUpICYmXG4gICAgICAgIHR5cGVvZiByb3dDb21wYXJhdG9yID09PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGNoZWNrZWRSb3dzID0gdGFibGVSb3dzLmZpbHRlcigocikgPT4gci5jaGVja2VkKTtcbiAgICAgICAgY2hlY2tlZFJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IHNvdXJjZS5maW5kKChlKSA9PiByb3dDb21wYXJhdG9yKHJvdy52YWx1ZSwgZSkpO1xuICAgICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICAgICAgcm93TWFwLnNldChmb3VuZCwgcm93LmNoZWNrZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvd01hcDtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVNlbGVjdGlvblRvQ2hpbGRyZW48VD4oXG4gICAgYWxsUm93czogQXJyYXk8VGFibGVSb3c8VD4+LFxuICAgIHJvdzogVGFibGVSb3csXG4gICAgYWRkZWRSb3dzOiBUYWJsZVJvdzxUPltdLFxuICAgIHJlbW92ZWRSb3dzOiBUYWJsZVJvdzxUPltdXG4pOiB2b2lkIHtcbiAgICBjb25zdCBhbGxDaGlsZHJlbiA9IGZpbmRSb3dDaGlsZHJlbihyb3csIGFsbFJvd3MpO1xuXG4gICAgYWxsQ2hpbGRyZW4uZm9yRWFjaCgocikgPT4ge1xuICAgICAgICByLmNoZWNrZWQgPSByb3cuY2hlY2tlZDtcbiAgICAgICAgci5jaGVja2VkID8gYWRkZWRSb3dzLnB1c2gocikgOiByZW1vdmVkUm93cy5wdXNoKHIpO1xuICAgIH0pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRSb3dDaGlsZHJlbjxUPihyb3c6IFRhYmxlUm93PFQ+LCBhbGxSb3dzOiBUYWJsZVJvdzxUPltdKTogVGFibGVSb3c8VD5bXSB7XG4gICAgY29uc3Qgcm93c0xlbmd0aCA9IGFsbFJvd3MubGVuZ3RoO1xuXG4gICAgLyoqXG4gICAgICogU2luY2Ugd2UgYXJlIGRlYWxpbmcgd2l0aCBhIGZsYXQgbGlzdFxuICAgICAqIGl0IG1lYW5zIGFsbCBjaGlsZHJlbiBnbyBuZXh0IHJpZ2h0IGFmdGVyIHRoZSBleHBhbmRhYmxlIHJvd1xuICAgICAqIHVudGlsIHRoZSBuZXh0IHJvdyBoYXMgYSBtdXR1YWwgcGFyZW50XG4gICAgICovXG5cbiAgICBsZXQgaW5kZXggPSBhbGxSb3dzLmluZGV4T2Yocm93KTtcbiAgICBjb25zdCBwYXJlbnRzID0gZ2V0Um93UGFyZW50cyhyb3cpO1xuICAgIGNvbnN0IGNoaWxkcmVuOiBUYWJsZVJvdzxUPltdID0gW107XG5cbiAgICB3aGlsZSAoaW5kZXgrKyA8IHJvd3NMZW5ndGgpIHtcbiAgICAgICAgY29uc3QgbmV4dFJvdyA9IGFsbFJvd3NbaW5kZXhdO1xuICAgICAgICBpZiAoIW5leHRSb3c/LnBhcmVudCB8fCBwYXJlbnRzLmluY2x1ZGVzKG5leHRSb3cucGFyZW50KSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRyZW4ucHVzaChuZXh0Um93KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGRyZW47XG59XG5cbi8qKlxuICogR2V0IHJvdyBwYXJlbnRzIHBhdGggd2hlcmUgdGhlIGZpcnN0IGlzIHRoZSBkaXJlY3QgcGFyZW50XG4gKiBAcGFyYW0gcm93IFJvdyB3aGljaCBwYXJlbnRzIHdlIG5lZWQgdG8gZmluZFxuICogQHBhcmFtIHVudGlsUGFyZW50IFBhcmVudCB0byBzdG9wIGEgc2VhcmNoIG9uLiBEZWZhdWx0IGlzIFwibnVsbFwiIHRoYXQgbWVhbnMgbG9vayB1cCB1bnRpbCB0aGUgcm9vdFxuICogQHJldHVybnMgcGFyZW50cyBsaXN0IFtkaXJlY3QgcGFyZW50LCAuLi4sIGFuY2VzdG9yXVxuICogQGhpZGRlblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um93UGFyZW50czxUPihyb3c6IFRhYmxlUm93PFQ+LCB1bnRpbFBhcmVudDogVGFibGVSb3c8VD4gfCBudWxsID0gbnVsbCk6IFRhYmxlUm93PFQ+W10ge1xuICAgIHVudGlsUGFyZW50ID0gdW50aWxQYXJlbnQgfHwgbnVsbDsgLy8gdG8gYXZvaWQgXCJ1bmRlZmluZWRcIlxuICAgIGNvbnN0IHBhcmVudHM6IFRhYmxlUm93PFQ+W10gPSBbXTtcbiAgICBsZXQgcGFyZW50ID0gcm93LnBhcmVudCB8fCBudWxsOyAvLyBlbXB0eSBwYXJlbnQgc2hvdWxkIGJlIGNvZXJjZWQgdG8gXCJudWxsXCIgZG8gbm90IGdldCBpbnRvIGluZmluaXRlIGxvb3BcbiAgICB3aGlsZSAocGFyZW50ICYmIHBhcmVudCAhPT0gdW50aWxQYXJlbnQpIHtcbiAgICAgICAgcGFyZW50cy5wdXNoKHBhcmVudCk7XG4gICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnQgfHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmVudHM7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRhU3RyZWFtPFQ+KHNvdXJjZTogRmRwVGFibGVEYXRhU291cmNlPFQ+KTogVGFibGVEYXRhU291cmNlPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoaXNEYXRhU291cmNlKHNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBUYWJsZURhdGFTb3VyY2U8VD47XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5VGFibGVEYXRhU291cmNlKHNvdXJjZSk7XG4gICAgfVxuXG4gICAgaWYgKGlzT2JzZXJ2YWJsZShzb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZVRhYmxlRGF0YVNvdXJjZShzb3VyY2UpO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG59XG4vKipcbiAqIEBoaWRkZW5cbiAqIENyZWF0ZXMgYW4gZW1wdHkgY29sdW1uIHNrZWxldG9uIG9iamVjdC5cbiAqIEByZXR1cm5zIENvbHVtbiBtb2RlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTmV3Um93U2tlbGV0b248VD4oZWRpdGFibGVSb3dTa2VsZXRvbjogVCwgY29sdW1uczogVGFibGVDb2x1bW5bXSk6IFQge1xuICAgIGlmIChlZGl0YWJsZVJvd1NrZWxldG9uKSB7XG4gICAgICAgIHJldHVybiBjbG9uZURlZXAoZWRpdGFibGVSb3dTa2VsZXRvbik7XG4gICAgfVxuXG4gICAgbGV0IG5ld1JvdyA9IHt9O1xuICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgIG5ld1JvdyA9IHNldChuZXdSb3csIGNvbHVtbi5rZXksIHVuZGVmaW5lZCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3Um93IGFzIFQ7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFJvdyhyb3c6IFRhYmxlUm93KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJvdy50eXBlID09PSBUYWJsZVJvd1R5cGUuR1JPVVA7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gc29ydFRyZWVMaWtlR3JvdXBlZFJvd3MoXG4gICAgZ3JvdXBlZFJvd3M6IFRyZWVMaWtlPFRhYmxlUm93PltdLFxuICAgIGdyb3VwUnVsZXNNYXA6IE1hcDxzdHJpbmcsIENvbGxlY3Rpb25Hcm91cD5cbik6IFRyZWVMaWtlPFRhYmxlUm93PltdIHtcbiAgICBpZiAoIWdyb3VwZWRSb3dzWzBdIHx8ICFpc0dyb3VwUm93KGdyb3VwZWRSb3dzWzBdKSkge1xuICAgICAgICByZXR1cm4gZ3JvdXBlZFJvd3M7XG4gICAgfVxuXG4gICAgY29uc3QgdHJlZUxpa2VSb3dzID0gZ3JvdXBlZFJvd3MgYXMgVHJlZUxpa2U8VGFibGVSb3c8R3JvdXBUYWJsZVJvd1ZhbHVlVHlwZT4+W107XG4gICAgY29uc3QgZmlyc3RSb3cgPSB0cmVlTGlrZVJvd3NbMF07XG5cbiAgICB0cmVlTGlrZVJvd3MuZm9yRWFjaCgoZ3JvdXApID0+IHtcbiAgICAgICAgaWYgKGdyb3VwLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgZ3JvdXAuX2NoaWxkcmVuID0gc29ydFRyZWVMaWtlR3JvdXBlZFJvd3MoZ3JvdXAuX2NoaWxkcmVuLCBncm91cFJ1bGVzTWFwKTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgZ3JvdXBSdWxlID0gZ3JvdXBSdWxlc01hcC5nZXQoZmlyc3RSb3cudmFsdWUuZmllbGQpO1xuXG4gICAgaWYgKCFncm91cFJ1bGUgfHwgZ3JvdXBSdWxlLmRpcmVjdGlvbiA9PT0gU29ydERpcmVjdGlvbi5OT05FKSB7XG4gICAgICAgIHJldHVybiB0cmVlTGlrZVJvd3M7XG4gICAgfVxuXG4gICAgY29uc3QgZGlyZWN0aW9uID0gZ3JvdXBSdWxlLmRpcmVjdGlvbjtcbiAgICBjb25zdCBkaXJlY3Rpb25NdWx0aXBsaWVyID0gZGlyZWN0aW9uID09PSBTb3J0RGlyZWN0aW9uLkFTQyA/IDEgOiBkaXJlY3Rpb24gPT09IFNvcnREaXJlY3Rpb24uREVTQyA/IC0xIDogMDtcblxuICAgIHJldHVybiB0cmVlTGlrZVJvd3Muc2xpY2UoKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGNvbnN0IGFWYWx1ZSA9IGEudmFsdWUudmFsdWUgYXMgYW55O1xuICAgICAgICBjb25zdCBiVmFsdWUgPSBiLnZhbHVlLnZhbHVlIGFzIGFueTtcblxuICAgICAgICBjb25zdCBhTnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQoYVZhbHVlKTtcbiAgICAgICAgY29uc3QgYk51bWJlciA9IE51bWJlci5wYXJzZUZsb2F0KGJWYWx1ZSk7XG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKGFOdW1iZXIpICYmICFOdW1iZXIuaXNOYU4oYk51bWJlcikpIHtcbiAgICAgICAgICAgIHJldHVybiAoYU51bWJlciAtIGJOdW1iZXIpICogZGlyZWN0aW9uTXVsdGlwbGllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAoYVZhbHVlID4gYlZhbHVlID8gMSA6IC0xKSAqIGRpcmVjdGlvbk11bHRpcGxpZXI7XG4gICAgfSk7XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRyZWVMaWtlVG9GbGF0TGlzdDxLPih0cmVlTGlrZUxpc3Q6IFRyZWVMaWtlPEs+W10pOiBLW10ge1xuICAgIGxldCBmbGF0TGlzdDogS1tdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdHJlZUxpa2VMaXN0KSB7XG4gICAgICAgIGZsYXRMaXN0LnB1c2goaXRlbSk7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbS5fY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICBmbGF0TGlzdCA9IGZsYXRMaXN0LmNvbmNhdChjb252ZXJ0VHJlZUxpa2VUb0ZsYXRMaXN0KGl0ZW0uX2NoaWxkcmVuKSk7XG4gICAgICAgICAgICBkZWxldGUgaXRlbS5fY2hpbGRyZW47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmxhdExpc3Q7XG59XG5cbi8qKlxuICogQGhpZGRlblxuICogR3JvdXAgdGFibGUgcm93cyBhbmQgcmV0dXJuIHRyZWUgbGlrZSByb3dzIGxpc3QuXG4gKiBJdCdzIGludGVuZGVkIHRvIGJlIGNhbGxlZCByZWN1cnNpdmVseS5cbiAqIEBwYXJhbSBydWxlcyBncm91cCBydWxlcyB0byBncm91cCBieVxuICogQHBhcmFtIHJvd3Mgc291cmNlIHRhYmxlIHJvd3NcbiAqIEBwYXJhbSBwYXJlbnQgcm93IHBhcmVudFxuICogQHBhcmFtIGxldmVsIGxldmVsIG9mIG5lc3RpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUdyb3VwZWRUYWJsZVJvd3NUcmVlKFxuICAgIHJ1bGVzOiBDb2xsZWN0aW9uR3JvdXBbXSxcbiAgICByb3dzOiBUYWJsZVJvd1tdLFxuICAgIHBhcmVudDogVGFibGVSb3cgfCBudWxsID0gbnVsbCxcbiAgICBsZXZlbCA9IDBcbik6IFRyZWVMaWtlPFRhYmxlUm93PltdIHtcbiAgICBydWxlcyA9IFsuLi5ydWxlc107XG5cbiAgICBpZiAoIXJ1bGVzLmxlbmd0aCkge1xuICAgICAgICAvLyBubyBydWxlcyBtZWFuIHRoYXQgaXQncyB0aGUgbGV2ZWwgb2Ygc291cmNlIGl0ZW1zXG4gICAgICAgIHJldHVybiByb3dzLm1hcCgocm93KSA9PiB7XG4gICAgICAgICAgICByb3cucGFyZW50ID0gcGFyZW50O1xuICAgICAgICAgICAgcm93LmxldmVsID0gbGV2ZWw7XG4gICAgICAgICAgICByb3cuaGlkZGVuID0gISFwYXJlbnQgJiYgIXBhcmVudC5leHBhbmRlZDtcbiAgICAgICAgICAgIHJldHVybiByb3c7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIFJldHJpZXZlIGZpcnN0IGdyb3VwIHJ1bGVcbiAgICBjb25zdCBydWxlID0gcnVsZXMuc2hpZnQoKSE7XG5cbiAgICAvLyBCdWlsZCBtYXAgb2YgdW5pcXVlIHZhbHVlcyBmb3IgYSBnaXZlbiBncm91cCBydWxlXG4gICAgY29uc3QgdmFsdWVzSGFzaCA9IHJvd3NcbiAgICAgICAgLmZpbHRlcigocikgPT4gci5zdGF0ZSAhPT0gJ2VkaXRhYmxlJylcbiAgICAgICAgLnJlZHVjZSgoaGFzaCwgcm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2RlbFZhbHVlID0gZ2V0KHJvdy52YWx1ZSwgcnVsZS5maWVsZCk7XG5cbiAgICAgICAgICAgIGlmICghaGFzaC5oYXMobW9kZWxWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBoYXNoLnNldChtb2RlbFZhbHVlLCBbXSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhhc2guZ2V0KG1vZGVsVmFsdWUpPy5wdXNoKHJvdyk7XG5cbiAgICAgICAgICAgIHJldHVybiBoYXNoO1xuICAgICAgICB9LCBuZXcgTWFwPHVua25vd24sIFRhYmxlUm93W10+KCkpO1xuXG4gICAgLy8gQnVpbGQgdGFibGUgcm93cyB0cmVlXG4gICAgbGV0IGdyb3VwZWRUYWJsZVJvd3M6IFRyZWVMaWtlPFRhYmxlUm93PltdID0gW107XG5cbiAgICBpZiAocm93cy5zb21lKChyKSA9PiByLnN0YXRlID09PSAnZWRpdGFibGUnKSkge1xuICAgICAgICBncm91cGVkVGFibGVSb3dzID0gcm93c1xuICAgICAgICAgICAgLmZpbHRlcigocikgPT4gci5zdGF0ZSA9PT0gJ2VkaXRhYmxlJylcbiAgICAgICAgICAgIC5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgICAgIHJvdy5wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgICAgICAgICAgcm93LmxldmVsID0gLTE7XG4gICAgICAgICAgICAgICAgcm93LmhpZGRlbiA9ICEhcGFyZW50ICYmICFwYXJlbnQuZXhwYW5kZWQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW3ZhbHVlLCB2YWx1ZXNdIG9mIEFycmF5LmZyb20odmFsdWVzSGFzaCkpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRSb3dzID0gcm93cy5maWx0ZXIoKF9pdGVtKSA9PiB2YWx1ZXMuaW5jbHVkZXMoX2l0ZW0pKTtcblxuICAgICAgICBpZiAoZmlsdGVyZWRSb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBncm91cFRhYmxlUm93OiBUcmVlTGlrZTxUYWJsZVJvdzxHcm91cFRhYmxlUm93VmFsdWVUeXBlPj4gPSBuZXdUYWJsZVJvdzxHcm91cFRhYmxlUm93VmFsdWVUeXBlPih7XG4gICAgICAgICAgICB0eXBlOiBUYWJsZVJvd1R5cGUuR1JPVVAsXG4gICAgICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgICAgIGluZGV4OiAwLFxuICAgICAgICAgICAgdmFsdWU6IHsgZmllbGQ6IHJ1bGUuZmllbGQsIHZhbHVlLCBjb3VudDogMCB9LFxuICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgbGV2ZWwsXG4gICAgICAgICAgICBleHBhbmRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgZXhwYW5kZWQ6IHRydWUsXG4gICAgICAgICAgICBoaWRkZW46ICEhcGFyZW50ICYmICFwYXJlbnQuZXhwYW5kZWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRzIGdyb3VwJ3MgY2hpbGRyZW4gcm93c1xuICAgICAgICBncm91cFRhYmxlUm93Ll9jaGlsZHJlbiA9IGNyZWF0ZUdyb3VwZWRUYWJsZVJvd3NUcmVlKHJ1bGVzLCBmaWx0ZXJlZFJvd3MsIGdyb3VwVGFibGVSb3csIGxldmVsICsgMSk7XG5cbiAgICAgICAgZ3JvdXBUYWJsZVJvdy52YWx1ZS5jb3VudCA9IGdyb3VwVGFibGVSb3cuX2NoaWxkcmVuPy5sZW5ndGg7XG5cbiAgICAgICAgZ3JvdXBlZFRhYmxlUm93cy5wdXNoKGdyb3VwVGFibGVSb3cpO1xuICAgIH1cblxuICAgIHJldHVybiBncm91cGVkVGFibGVSb3dzO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRPYmplY3RzVG9UYWJsZVJvd3M8VD4oXG4gICAgc291cmNlOiBUW10sXG4gICAgYWRkZWRJdGVtczogVFtdLFxuICAgIHNlbGVjdGVkS2V5OiBzdHJpbmcsXG4gICAgcm93TmF2aWdhdGFibGU6IGJvb2xlYW4gfCBzdHJpbmcsXG4gICAgc2VsZWN0aW9uTW9kZTogU2VsZWN0aW9uTW9kZVZhbHVlLFxuICAgIHJvd3M6IFRhYmxlUm93W10sXG4gICAgcm93Q29tcGFyYXRvcjogUm93Q29tcGFyYXRvclxuKTogVGFibGVSb3c8VD5bXSB7XG4gICAgY29uc3Qgcm93SXRlbSA9IHNvdXJjZVswXSBhcyBhbnk7XG5cbiAgICBpZiAoaXNUYWJsZVJvdyhyb3dJdGVtKSkge1xuICAgICAgICByZXR1cm4gc291cmNlIGFzIFRhYmxlUm93W107XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzTWFwID0gZ2V0U2VsZWN0aW9uU3RhdHVzQnlSb3dWYWx1ZShzb3VyY2UsIHNlbGVjdGlvbk1vZGUsIHJvd3MsIHJvd0NvbXBhcmF0b3IpO1xuICAgIHJldHVybiBzb3VyY2UubWFwKChpdGVtOiBULCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzTmV3SXRlbSA9IGFkZGVkSXRlbXMuaW5jbHVkZXMoaXRlbSk7XG4gICAgICAgIGNvbnN0IHJvdyA9IG5ld1RhYmxlUm93KHtcbiAgICAgICAgICAgIHR5cGU6IFRhYmxlUm93VHlwZS5JVEVNLFxuICAgICAgICAgICAgY2hlY2tlZDogaXRlbVtzZWxlY3RlZEtleV0gPz8gISFzZWxlY3RlZFJvd3NNYXAuZ2V0KGl0ZW0pLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICB9KTtcbiAgICAgICAgcm93Lm5hdmlnYXRhYmxlID0gaXNSb3dOYXZpZ2F0YWJsZShpdGVtLCByb3dOYXZpZ2F0YWJsZSk7XG4gICAgICAgIHJvdy5zdGF0ZSA9IGlzTmV3SXRlbSA/ICdlZGl0YWJsZScgOiAncmVhZG9ubHknO1xuICAgICAgICByZXR1cm4gcm93O1xuICAgIH0pO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVHJlZVJvd0ZpcnN0Q2VsbChjZWxsSW5kZXg6IG51bWJlciwgcm93OiBUYWJsZVJvdywgZXZlbnQ/OiBFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoY2VsbEluZGV4ID09PSAwICYmIGlzVHJlZVJvdyhyb3cpKSB8fCAoISFldmVudCAmJiAhcm93LmlzVHJlZSk7XG59XG4iXX0=
@@ -12,4 +12,4 @@ export class Table {
12
12
  this.openTableColumnSettings = new EventEmitter();
13
13
  }
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUtaGVscGVycy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWVuRSxNQUFNLE9BQWdCLEtBQUs7SUFBM0I7UUE2SkksK0NBQStDO1FBQ3RDLDBCQUFxQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTlFLGlEQUFpRDtRQUN4Qyw0QkFBdUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVoRixnREFBZ0Q7UUFDdkMsMkJBQXNCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0UsaURBQWlEO1FBQ3hDLDRCQUF1QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBVXBGLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmcgKi9cbmltcG9ydCB7IEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zZWFyY2gtZmllbGQnO1xuaW1wb3J0IHsgUHJlc2V0TWFuYWdlZENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRmlsdGVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uR3JvdXAgfSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi1ncm91cC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblNvcnQgfSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi1zb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJsZVN0YXRlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RhYmxlLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldCwgU2F2ZVJvd3NFdmVudCwgVGFibGVJbml0aWFsU3RhdGUsIFRhYmxlUm93IH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGFibGVTY3JvbGxhYmxlIH0gZnJvbSAnLi9zZXJ2aWNlcy90YWJsZS1zY3JvbGwtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGFibGU8VCA9IGFueT4gaW1wbGVtZW50cyBQcmVzZXRNYW5hZ2VkQ29tcG9uZW50PFBsYXRmb3JtVGFibGVNYW5hZ2VkUHJlc2V0PiB7XG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAgIGFic3RyYWN0IF9sb2FkUHJldmlvdXNQYWdlczogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHBhZ2VTY3JvbGxpbmc6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBsb2FkUGFnZXNCZWZvcmU6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBwYWdlU2l6ZTogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIGFic3RyYWN0IGZyZWV6ZUNvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgZnJlZXplRW5kQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGN1cnJlbnQgcHJlc2V0IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gY2hhbmdlZC4gKi9cbiAgICBhYnN0cmFjdCBwcmVzZXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8UGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ+O1xuXG4gICAgLyoqIFN1bSBvZiB3aWR0aHMgb2YgZml4ZWQgY29sdW1ucyAoc2VtYW50aWMgaGlnaGxpZ2h0aW5nLCBzZWxlY3Rpb24pICovXG4gICAgYWJzdHJhY3QgZ2V0IF9maXhlZENvbHVtbnNQYWRkaW5nKCk6IG51bWJlcjtcblxuICAgIC8qKiBGcmVlemFibGUgY29sdW1uIG5hbWVzIGFuZCB0aGVpciByZXNwZWN0aXZlIGluZGV4ZXMgKi9cbiAgICBhYnN0cmFjdCBnZXQgX2ZyZWV6YWJsZUNvbHVtbnMoKTogUmVhZG9ubHlNYXA8c3RyaW5nLCBudW1iZXI+O1xuXG4gICAgLyoqIEZyZWV6YWJsZSBjb2x1bW4gbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgaW5kZXhlcyAqL1xuICAgIGFic3RyYWN0IGdldCBfZnJlZXphYmxlRW5kQ29sdW1ucygpOiBSZWFkb25seU1hcDxzdHJpbmcsIG51bWJlcj47XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIHRhYmxlIGVsZW1lbnQgaW4gcHggKi9cbiAgICBhYnN0cmFjdCBnZXQgX3RhYmxlV2lkdGhQeCgpOiBudW1iZXI7XG5cbiAgICBhYnN0cmFjdCBnZXQgbG9hZGluZ1N0YXRlKCk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBpbml0aWFsU3RhdGU6IFRhYmxlSW5pdGlhbFN0YXRlIHwgbnVsbDtcblxuICAgIC8qKiBUYWJsZSBjb2x1bW5zIGRlZmluaXRpb24gbGlzdCAqL1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQ29sdW1uc1N0cmVhbTogT2JzZXJ2YWJsZTxUYWJsZUNvbHVtbltdPjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVTY3JvbGxhYmxlOiBUYWJsZVNjcm9sbGFibGU7XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzVmlzaWJsZTogVGFibGVSb3c8VD5bXTtcblxuICAgIGFic3RyYWN0IF90YWJsZVJvd3M6IFRhYmxlUm93PFQ+W107XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzSW5WaWV3UG9ydFBsYWNlaG9sZGVyOiBudW1iZXJbXTtcblxuICAgIC8qKiBHZXQgdGFibGUgc3RhdGUgKi9cbiAgICBhYnN0cmFjdCBnZXRUYWJsZVN0YXRlKCk6IFRhYmxlU3RhdGU7XG5cbiAgICAvKiogU2V0IHRhYmxlIHN0YXRlICovXG4gICAgYWJzdHJhY3Qgc2V0VGFibGVTdGF0ZSh0YWJsZVN0YXRlOiBUYWJsZVN0YXRlKTogdm9pZDtcblxuICAgIC8qKiBHZXQgdGFibGUgY29sdW1ucyBkZWZpbml0aW9uIGxpc3QgKi9cbiAgICBhYnN0cmFjdCBnZXRUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXTtcblxuICAgIC8qKiBHZXQgYSBsaXN0IG9mIHZpc2libGUgdGFibGUgY29sdW1ucy4gKi9cbiAgICBhYnN0cmFjdCBnZXRWaXNpYmxlVGFibGVDb2x1bW5zKCk6IFRhYmxlQ29sdW1uW107XG5cbiAgICAvKiogU2V0IFNvcnRpbmcgcnVsZXMgKi9cbiAgICBhYnN0cmFjdCBzb3J0KHNvcnRSdWxlczogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQ7XG5cbiAgICAvKiogQWRkIFNvcnRpbmcgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRTb3J0KHNvcnRSdWxlczogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IEZpbHRlcmluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IGZpbHRlcihmaWx0ZXJSdWxlczogQ29sbGVjdGlvbkZpbHRlcltdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgRmlsdGVyIHJ1bGVzIHRvIHRoZSBleGlzdGluZyBvbmVzICovXG4gICAgYWJzdHJhY3QgYWRkRmlsdGVyKGZpbHRlclJ1bGVzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkO1xuXG4gICAgLyoqIFNldCBncm91cGluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IGdyb3VwKGdyb3VwUnVsZXM6IENvbGxlY3Rpb25Hcm91cFtdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgR3JvdXAgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRHcm91cChncm91cFJ1bGVzOiBDb2xsZWN0aW9uR3JvdXBbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IHRhYmxlIGNvbHVtbnMgKi9cbiAgICBhYnN0cmFjdCBzZXRDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKTogdm9pZDtcblxuICAgIC8qKiBUb2dnbGUgcm93IGNoZWNrZWQgc3RhdGUuICovXG4gICAgYWJzdHJhY3QgdG9nZ2xlU2VsZWN0YWJsZVJvdyhyb3dJbmRleDogbnVtYmVyKTogdm9pZDtcblxuICAgIC8qKiBGcmVlemUgdGFibGUgY29sdW1ucyB0byBpbmNsdWRpbmcgKi9cbiAgICBhYnN0cmFjdCBmcmVlemVUb0NvbHVtbihjb2x1bW5LZXk6IHN0cmluZywgZW5kPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVW5mcmVlemUgY29sdW1uICovXG4gICAgYWJzdHJhY3QgdW5mcmVlemUoY29sdW1uS2V5OiBzdHJpbmcsIGVuZD86IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFNlYXJjaCBpbiBhbGwgdGFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IHNlYXJjaChzZWFyY2hJbnB1dDogU2VhcmNoSW5wdXQpOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgU29ydCBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dTb3J0U2V0dGluZ3NJblRvb2xiYXIoc2hvd1NvcnRTZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBGaWx0ZXIgU2V0dGluZ3MgYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBhYnN0cmFjdCBzaG93RmlsdGVyU2V0dGluZ3NJblRvb2xiYXIoc2hvd0ZpbHRlclNldHRpbmdzOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIEdyb3VwIFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd0dyb3VwU2V0dGluZ3NJblRvb2xiYXIoc2hvd0dyb3VwU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgQ29sdW1ucyBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dDb2x1bW5TZXR0aW5nc0luVG9vbGJhcihzaG93Q29sdW1uU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIERpc2FibGUgZmlsdGVyaW5nIGJ5IGhlYWRlciBjb2x1bW4gbWVudSAqL1xuICAgIGFic3RyYWN0IHNldEhlYWRlckNvbHVtbkZpbHRlcmluZ0Rpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBTZXQgY3VycmVudCBwYWdlICovXG4gICAgYWJzdHJhY3Qgc2V0Q3VycmVudFBhZ2UoY3VycmVudFBhZ2U6IG51bWJlcik6IHZvaWQ7XG5cbiAgICAvKiogR2V0cyB0aGUgbWF4IGFsbG93ZWQgd2lkdGggZm9yIGFsbCBmcmVlemFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IGdldE1heEFsbG93ZWRGcmVlemFibGVDb2x1bW5zV2lkdGgoKTogbnVtYmVyO1xuXG4gICAgLyoqIEdldCB0YWJsZSBkYXRhIHNvdXJjZSAqL1xuICAgIGFic3RyYWN0IGdldERhdGFTb3VyY2UoKTogVGFibGVEYXRhU291cmNlPFQ+O1xuXG4gICAgLyoqIE1hbnVhbGx5IHRyaWdnZXJzIGNvbHVtbnMgd2lkdGggcmVjYWxjdWxhdGlvbiAqL1xuICAgIGFic3RyYWN0IHJlY2FsY3VsYXRlVGFibGVDb2x1bW5XaWR0aCgpOiB2b2lkO1xuXG4gICAgLyoqIEZldGNoIGRhdGEgc291cmNlIGRhdGEuICovXG4gICAgYWJzdHJhY3QgZmV0Y2goKTogdm9pZDtcblxuICAgIC8qKiBBZGRzIGVtcHR5IHJvdyBmb3IgZWRpdGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByb3dzIGFycmF5LiAqL1xuICAgIGFic3RyYWN0IGFkZFJvdygpOiB2b2lkO1xuXG4gICAgLyoqIEVtaXRzIHNhdmUgZXZlbnQgYW5kIHJlc2V0cyBlZGl0YWJsZSByb3dzIGFycmF5LiAqL1xuICAgIGFic3RyYWN0IHNhdmVSb3dzKCk6IHZvaWQ7XG5cbiAgICAvKiogQ2FuY2VscyBlZGl0aW5nIGFuZCBkaXNjYXJkcyBuZXdseSBhZGRlZCByb3dzICovXG4gICAgYWJzdHJhY3QgY2FuY2VsRWRpdGluZygpOiB2b2lkO1xuXG4gICAgLyoqIEV4cGFuZCBhbGwgdGhlIHJvd3Mgb2YgdGhlIHRhYmxlICovXG4gICAgYWJzdHJhY3QgZXhwYW5kQWxsKCk6IHZvaWQ7XG5cbiAgICAvKiogQ29sbGFwc2UgYWxsIHRoZSByb3dzIG9mIHRoZSB0YWJsZSAqL1xuICAgIGFic3RyYWN0IGNvbGxhcHNlQWxsKCk6IHZvaWQ7XG5cbiAgICAvKiogU2V0cyBzZWxlY3RlZCBwcmVzZXQuICovXG4gICAgYWJzdHJhY3Qgc2V0UHJlc2V0KGRhdGE6IFBsYXRmb3JtVGFibGVNYW5hZ2VkUHJlc2V0KTogdm9pZDtcblxuICAgIC8qKiBSZXR1cm5zIGN1cnJlbnQgcHJlc2V0LiAqL1xuICAgIGFic3RyYWN0IGdldEN1cnJlbnRQcmVzZXQoKTogUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ7XG5cbiAgICBhYnN0cmFjdCBnZXRSb3dzSW5WaWV3cG9ydCgpOiBudW1iZXJbXTtcblxuICAgIGFic3RyYWN0IHNldFJvd3NJblZpZXdwb3J0KHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgdG9nZ2xlRXhwYW5kYWJsZVRhYmxlUm93KHJvdzogVGFibGVSb3c8VD4sIGZvcmNlRmV0Y2g/OiBib29sZWFuKTtcblxuICAgIGFic3RyYWN0IG9uVGFibGVSb3dzQ2hhbmdlZCgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgcmVmcmVzaERuZExpc3QoKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIFNvcnQgU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlU29ydFNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogVG9vbGJhciBGaWx0ZXIgU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlRmlsdGVyU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBUb29sYmFyIEdyb3VwIFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZUdyb3VwU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBUb29sYmFyIENvbHVtbiBTZXR0aW5ncyBidXR0b24gY2xpY2sgZXZlbnQgKi9cbiAgICByZWFkb25seSBvcGVuVGFibGVDb2x1bW5TZXR0aW5nczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gZW1wdHkgcm93IGFkZGVkLiAqL1xuICAgIHJlYWRvbmx5IGVtcHR5Um93QWRkZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPjtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIHNhdmUgYnV0dG9uIHByZXNzZWQuICovXG4gICAgcmVhZG9ubHkgc2F2ZTogRXZlbnRFbWl0dGVyPFNhdmVSb3dzRXZlbnQ8VD4+O1xuXG4gICAgLyoqIEV2ZW50IGZpcmVkIHdoZW4gY2FuY2VsIGJ1dHRvbiBwcmVzc2VkLiAqL1xuICAgIHJlYWRvbmx5IGNhbmNlbDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xufVxuIl19
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGFibGUtaGVscGVycy90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLFlBQVksRUFBWSxNQUFNLGVBQWUsQ0FBQztBQWVuRSxNQUFNLE9BQWdCLEtBQUs7SUFBM0I7UUErSkksK0NBQStDO1FBQ3RDLDBCQUFxQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTlFLGlEQUFpRDtRQUN4Qyw0QkFBdUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVoRixnREFBZ0Q7UUFDdkMsMkJBQXNCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFL0UsaURBQWlEO1FBQ3hDLDRCQUF1QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBVXBGLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmcgKi9cbmltcG9ydCB7IEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zZWFyY2gtZmllbGQnO1xuaW1wb3J0IHsgUHJlc2V0TWFuYWdlZENvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRmlsdGVyIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbGxlY3Rpb24tZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uR3JvdXAgfSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi1ncm91cC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblNvcnQgfSBmcm9tICcuL2ludGVyZmFjZXMvY29sbGVjdGlvbi1zb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUYWJsZVN0YXRlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RhYmxlLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybVRhYmxlTWFuYWdlZFByZXNldCwgU2F2ZVJvd3NFdmVudCwgVGFibGVJbml0aWFsU3RhdGUsIFRhYmxlUm93IH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgVGFibGVTY3JvbGxhYmxlIH0gZnJvbSAnLi9zZXJ2aWNlcy90YWJsZS1zY3JvbGwtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi90YWJsZS1jb2x1bW4nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGFibGU8VCA9IGFueT4gaW1wbGVtZW50cyBQcmVzZXRNYW5hZ2VkQ29tcG9uZW50PFBsYXRmb3JtVGFibGVNYW5hZ2VkUHJlc2V0PiB7XG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAgIGFic3RyYWN0IF9sb2FkUHJldmlvdXNQYWdlczogYm9vbGVhbjtcblxuICAgIGFic3RyYWN0IHBhZ2VTY3JvbGxpbmc6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBsb2FkUGFnZXNCZWZvcmU6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBwYWdlU2l6ZTogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIGFic3RyYWN0IGZyZWV6ZUNvbHVtbnNUbzogc3RyaW5nO1xuXG4gICAgYWJzdHJhY3QgZnJlZXplRW5kQ29sdW1uc1RvOiBzdHJpbmc7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGN1cnJlbnQgcHJlc2V0IGNvbmZpZ3VyYXRpb24gaGFzIGJlZW4gY2hhbmdlZC4gKi9cbiAgICBhYnN0cmFjdCBwcmVzZXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8UGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ+O1xuXG4gICAgLyoqIFN1bSBvZiB3aWR0aHMgb2YgZml4ZWQgY29sdW1ucyAoc2VtYW50aWMgaGlnaGxpZ2h0aW5nLCBzZWxlY3Rpb24pICovXG4gICAgYWJzdHJhY3QgZ2V0IF9maXhlZENvbHVtbnNQYWRkaW5nKCk6IG51bWJlcjtcblxuICAgIC8qKiBGcmVlemFibGUgY29sdW1uIG5hbWVzIGFuZCB0aGVpciByZXNwZWN0aXZlIGluZGV4ZXMgKi9cbiAgICBhYnN0cmFjdCBnZXQgX2ZyZWV6YWJsZUNvbHVtbnMoKTogUmVhZG9ubHlNYXA8c3RyaW5nLCBudW1iZXI+O1xuXG4gICAgLyoqIEZyZWV6YWJsZSBjb2x1bW4gbmFtZXMgYW5kIHRoZWlyIHJlc3BlY3RpdmUgaW5kZXhlcyAqL1xuICAgIGFic3RyYWN0IGdldCBfZnJlZXphYmxlRW5kQ29sdW1ucygpOiBSZWFkb25seU1hcDxzdHJpbmcsIG51bWJlcj47XG5cbiAgICAvKiogV2lkdGggb2YgdGhlIHRhYmxlIGVsZW1lbnQgaW4gcHggKi9cbiAgICBhYnN0cmFjdCBnZXQgX3RhYmxlV2lkdGhQeCgpOiBudW1iZXI7XG5cbiAgICBhYnN0cmFjdCBnZXQgbG9hZGluZ1N0YXRlKCk6IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCBpbml0aWFsU3RhdGU6IFRhYmxlSW5pdGlhbFN0YXRlIHwgbnVsbDtcblxuICAgIC8qKiBUYWJsZSBjb2x1bW5zIGRlZmluaXRpb24gbGlzdCAqL1xuICAgIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQ29sdW1uc1N0cmVhbTogT2JzZXJ2YWJsZTxUYWJsZUNvbHVtbltdPjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IHRhYmxlQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuXG4gICAgYWJzdHJhY3QgcmVhZG9ubHkgdGFibGVTY3JvbGxhYmxlOiBUYWJsZVNjcm9sbGFibGU7XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzVmlzaWJsZTogVGFibGVSb3c8VD5bXTtcblxuICAgIGFic3RyYWN0IF90YWJsZVJvd3M6IFRhYmxlUm93PFQ+W107XG5cbiAgICBhYnN0cmFjdCBfdGFibGVSb3dzSW5WaWV3UG9ydFBsYWNlaG9sZGVyOiBudW1iZXJbXTtcblxuICAgIC8qKiBHZXQgdGFibGUgc3RhdGUgKi9cbiAgICBhYnN0cmFjdCBnZXRUYWJsZVN0YXRlKCk6IFRhYmxlU3RhdGU7XG5cbiAgICAvKiogU2V0IHRhYmxlIHN0YXRlICovXG4gICAgYWJzdHJhY3Qgc2V0VGFibGVTdGF0ZSh0YWJsZVN0YXRlOiBUYWJsZVN0YXRlKTogdm9pZDtcblxuICAgIC8qKiBHZXQgdGFibGUgY29sdW1ucyBkZWZpbml0aW9uIGxpc3QgKi9cbiAgICBhYnN0cmFjdCBnZXRUYWJsZUNvbHVtbnMoKTogVGFibGVDb2x1bW5bXTtcblxuICAgIC8qKiBHZXQgYSBsaXN0IG9mIHZpc2libGUgdGFibGUgY29sdW1ucy4gKi9cbiAgICBhYnN0cmFjdCBnZXRWaXNpYmxlVGFibGVDb2x1bW5zKCk6IFRhYmxlQ29sdW1uW107XG5cbiAgICAvKiogU2V0IFNvcnRpbmcgcnVsZXMgKi9cbiAgICBhYnN0cmFjdCBzb3J0KHNvcnRSdWxlczogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQ7XG5cbiAgICAvKiogQWRkIFNvcnRpbmcgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRTb3J0KHNvcnRSdWxlczogQ29sbGVjdGlvblNvcnRbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IEZpbHRlcmluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IGZpbHRlcihmaWx0ZXJSdWxlczogQ29sbGVjdGlvbkZpbHRlcltdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgRmlsdGVyIHJ1bGVzIHRvIHRoZSBleGlzdGluZyBvbmVzICovXG4gICAgYWJzdHJhY3QgYWRkRmlsdGVyKGZpbHRlclJ1bGVzOiBDb2xsZWN0aW9uRmlsdGVyW10pOiB2b2lkO1xuXG4gICAgLyoqIFNldCBncm91cGluZyBydWxlcyAqL1xuICAgIGFic3RyYWN0IGdyb3VwKGdyb3VwUnVsZXM6IENvbGxlY3Rpb25Hcm91cFtdKTogdm9pZDtcblxuICAgIC8qKiBBZGQgR3JvdXAgcnVsZXMgdG8gdGhlIGV4aXN0aW5nIG9uZXMgKi9cbiAgICBhYnN0cmFjdCBhZGRHcm91cChncm91cFJ1bGVzOiBDb2xsZWN0aW9uR3JvdXBbXSk6IHZvaWQ7XG5cbiAgICAvKiogU2V0IHRhYmxlIGNvbHVtbnMgKi9cbiAgICBhYnN0cmFjdCBzZXRDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKTogdm9pZDtcblxuICAgIC8qKiBUb2dnbGUgcm93IGNoZWNrZWQgc3RhdGUuICovXG4gICAgYWJzdHJhY3QgdG9nZ2xlU2VsZWN0YWJsZVJvdyhyb3dJbmRleDogbnVtYmVyKTogdm9pZDtcblxuICAgIC8qKiBGcmVlemUgdGFibGUgY29sdW1ucyB0byBpbmNsdWRpbmcgKi9cbiAgICBhYnN0cmFjdCBmcmVlemVUb0NvbHVtbihjb2x1bW5LZXk6IHN0cmluZywgZW5kPzogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVW5mcmVlemUgY29sdW1uICovXG4gICAgYWJzdHJhY3QgdW5mcmVlemUoY29sdW1uS2V5OiBzdHJpbmcsIGVuZD86IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFNlYXJjaCBpbiBhbGwgdGFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IHNlYXJjaChzZWFyY2hJbnB1dDogU2VhcmNoSW5wdXQpOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgU29ydCBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dTb3J0U2V0dGluZ3NJblRvb2xiYXIoc2hvd1NvcnRTZXR0aW5nczogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBGaWx0ZXIgU2V0dGluZ3MgYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBhYnN0cmFjdCBzaG93RmlsdGVyU2V0dGluZ3NJblRvb2xiYXIoc2hvd0ZpbHRlclNldHRpbmdzOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBUb29sYmFyIEdyb3VwIFNldHRpbmdzIGJ1dHRvbiB2aXNpYmlsaXR5ICovXG4gICAgYWJzdHJhY3Qgc2hvd0dyb3VwU2V0dGluZ3NJblRvb2xiYXIoc2hvd0dyb3VwU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIFRvb2xiYXIgQ29sdW1ucyBTZXR0aW5ncyBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIGFic3RyYWN0IHNob3dDb2x1bW5TZXR0aW5nc0luVG9vbGJhcihzaG93Q29sdW1uU2V0dGluZ3M6IGJvb2xlYW4pOiB2b2lkO1xuXG4gICAgLyoqIERpc2FibGUgZmlsdGVyaW5nIGJ5IGhlYWRlciBjb2x1bW4gbWVudSAqL1xuICAgIGFic3RyYWN0IHNldEhlYWRlckNvbHVtbkZpbHRlcmluZ0Rpc2FibGVkKGRpc2FibGVkOiBib29sZWFuKTogdm9pZDtcblxuICAgIC8qKiBTZXQgY3VycmVudCBwYWdlICovXG4gICAgYWJzdHJhY3Qgc2V0Q3VycmVudFBhZ2UoY3VycmVudFBhZ2U6IG51bWJlcik6IHZvaWQ7XG5cbiAgICAvKiogR2V0cyB0aGUgbWF4IGFsbG93ZWQgd2lkdGggZm9yIGFsbCBmcmVlemFibGUgY29sdW1ucyAqL1xuICAgIGFic3RyYWN0IGdldE1heEFsbG93ZWRGcmVlemFibGVDb2x1bW5zV2lkdGgoKTogbnVtYmVyO1xuXG4gICAgLyoqIEdldCB0YWJsZSBkYXRhIHNvdXJjZSAqL1xuICAgIGFic3RyYWN0IGdldERhdGFTb3VyY2UoKTogVGFibGVEYXRhU291cmNlPFQ+O1xuXG4gICAgLyoqIE1hbnVhbGx5IHRyaWdnZXJzIGNvbHVtbnMgd2lkdGggcmVjYWxjdWxhdGlvbiAqL1xuICAgIGFic3RyYWN0IHJlY2FsY3VsYXRlVGFibGVDb2x1bW5XaWR0aCgpOiB2b2lkO1xuXG4gICAgLyoqIEZldGNoIGRhdGEgc291cmNlIGRhdGEuICovXG4gICAgYWJzdHJhY3QgZmV0Y2goKTogdm9pZDtcblxuICAgIC8qKiBBZGRzIGVtcHR5IHJvdyBmb3IgZWRpdGluZyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSByb3dzIGFycmF5LiAqL1xuICAgIGFic3RyYWN0IGFkZFJvdygpOiB2b2lkO1xuXG4gICAgLyoqIEVtaXRzIHNhdmUgZXZlbnQgYW5kIHJlc2V0cyBlZGl0YWJsZSByb3dzIGFycmF5LiAqL1xuICAgIGFic3RyYWN0IHNhdmVSb3dzKCk6IHZvaWQ7XG5cbiAgICAvKiogQ2FuY2VscyBlZGl0aW5nIGFuZCBkaXNjYXJkcyBuZXdseSBhZGRlZCByb3dzICovXG4gICAgYWJzdHJhY3QgY2FuY2VsRWRpdGluZygpOiB2b2lkO1xuXG4gICAgLyoqIEV4cGFuZCBhbGwgdGhlIHJvd3Mgb2YgdGhlIHRhYmxlICovXG4gICAgYWJzdHJhY3QgZXhwYW5kQWxsKCk6IHZvaWQ7XG5cbiAgICAvKiogQ29sbGFwc2UgYWxsIHRoZSByb3dzIG9mIHRoZSB0YWJsZSAqL1xuICAgIGFic3RyYWN0IGNvbGxhcHNlQWxsKCk6IHZvaWQ7XG5cbiAgICAvKiogU2V0cyBzZWxlY3RlZCBwcmVzZXQuICovXG4gICAgYWJzdHJhY3Qgc2V0UHJlc2V0KGRhdGE6IFBsYXRmb3JtVGFibGVNYW5hZ2VkUHJlc2V0KTogdm9pZDtcblxuICAgIC8qKiBSZXR1cm5zIGN1cnJlbnQgcHJlc2V0LiAqL1xuICAgIGFic3RyYWN0IGdldEN1cnJlbnRQcmVzZXQoKTogUGxhdGZvcm1UYWJsZU1hbmFnZWRQcmVzZXQ7XG5cbiAgICBhYnN0cmFjdCBnZXRSb3dzSW5WaWV3cG9ydCgpOiBudW1iZXJbXTtcblxuICAgIGFic3RyYWN0IHNldFJvd3NJblZpZXdwb3J0KHN0YXJ0SW5kZXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgdG9nZ2xlRXhwYW5kYWJsZVRhYmxlUm93KHJvdzogVGFibGVSb3c8VD4sIGZvcmNlRmV0Y2g/OiBib29sZWFuKTtcblxuICAgIGFic3RyYWN0IG9uVGFibGVSb3dzQ2hhbmdlZCgpOiB2b2lkO1xuXG4gICAgYWJzdHJhY3QgcmVmcmVzaERuZExpc3QoKTogdm9pZDtcblxuICAgIGFic3RyYWN0IGNsZWFyVGFibGVSb3dzKCk6IHZvaWQ7XG5cbiAgICAvKiogVG9vbGJhciBTb3J0IFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZVNvcnRTZXR0aW5nczogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqIFRvb2xiYXIgRmlsdGVyIFNldHRpbmdzIGJ1dHRvbiBjbGljayBldmVudCAqL1xuICAgIHJlYWRvbmx5IG9wZW5UYWJsZUZpbHRlclNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogVG9vbGJhciBHcm91cCBTZXR0aW5ncyBidXR0b24gY2xpY2sgZXZlbnQgKi9cbiAgICByZWFkb25seSBvcGVuVGFibGVHcm91cFNldHRpbmdzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogVG9vbGJhciBDb2x1bW4gU2V0dGluZ3MgYnV0dG9uIGNsaWNrIGV2ZW50ICovXG4gICAgcmVhZG9ubHkgb3BlblRhYmxlQ29sdW1uU2V0dGluZ3M6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIGVtcHR5IHJvdyBhZGRlZC4gKi9cbiAgICByZWFkb25seSBlbXB0eVJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD47XG5cbiAgICAvKiogRXZlbnQgZmlyZWQgd2hlbiBzYXZlIGJ1dHRvbiBwcmVzc2VkLiAqL1xuICAgIHJlYWRvbmx5IHNhdmU6IEV2ZW50RW1pdHRlcjxTYXZlUm93c0V2ZW50PFQ+PjtcblxuICAgIC8qKiBFdmVudCBmaXJlZCB3aGVuIGNhbmNlbCBidXR0b24gcHJlc3NlZC4gKi9cbiAgICByZWFkb25seSBjYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPjtcbn1cbiJdfQ==
@@ -114,7 +114,7 @@ export class MoveToComponent {
114
114
  }
115
115
  }
116
116
  MoveToComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MoveToComponent, deps: [{ token: i1.DialogRef }, { token: i1.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
117
- MoveToComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MoveToComponent, selector: "ng-component", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 class=\"fd-title--bold\" *ngIf=\"!_currentFolder\" fd-title>\n {{ 'platformUploadCollection.moveToTitle' | fdTranslate }}\n </h1>\n <ng-container *ngIf=\"_currentFolder\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n (click)=\"_goToParentFolder()\"\n ></button>\n <h1 fd-title>\n <span>{{ 'platformUploadCollection.moveToTitleFolder' | fdTranslate }}</span>\n {{ _currentFolder.name }}\n </h1>\n </ng-container>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n [label]=\"'platformUploadCollection.moveToNewFolderBtnLabel' | fdTranslate\"\n (click)=\"_newFolder()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body class=\"fd-dialog__body--no-horizontal-padding\">\n <ul fd-list>\n <li *ngIf=\"!_currentFolder\" fd-list-item class=\"fd-list__item--title-background\">\n <span fd-list-title>{{ 'platformUploadCollection.moveToAllFilesSubHeaderLabel' | fdTranslate }}</span>\n </li>\n <li\n fd-list-item\n *ngFor=\"let folder of _foldersList\"\n [selected]=\"selectedFolder?.documentId === folder.documentId\"\n >\n <a fd-list-link (click)=\"_hasFolders(folder.files) ? _openFolder(folder) : _selectFolder(folder)\">\n <fd-icon class=\"fdp-upload-collection__fd-icon\" glyph=\"folder-blank\"></fd-icon>\n <span fd-list-title>{{ folder.name }}</span>\n <i *ngIf=\"_hasFolders(folder.files)\" fd-list-icon glyph=\"slim-arrow-right\"></i>\n </a>\n </li>\n </ul>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n type=\"submit\"\n [disabled]=\"\n !(\n (selectedFolder && originalFolder?.documentId !== selectedFolder.documentId) ||\n (!selectedFolder && originalFolder?.documentId !== _currentFolder?.documentId)\n )\n \"\n (click)=\"_confirm()\"\n >\n {{ 'platformUploadCollection.moveToConfirmBtn' | fdTranslate }}\n </fd-button-bar>\n <fd-button-bar (click)=\"_close()\">\n {{ 'platformUploadCollection.moveToCloseBtn' | fdTranslate }}\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fd-list__item--title-background{background-color:var(--sapList_HeaderBackground)}.fd-dialog__body--no-horizontal-padding{padding-left:0!important;padding-right:0!important}.fd-title--bold{font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i8.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "pipe", type: i9.FdTranslatePipe, name: "fdTranslate" }] });
117
+ MoveToComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: MoveToComponent, selector: "ng-component", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 class=\"fd-title--bold\" *ngIf=\"!_currentFolder\" fd-title>\n {{ 'platformUploadCollection.moveToTitle' | fdTranslate }}\n </h1>\n <ng-container *ngIf=\"_currentFolder\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n (click)=\"_goToParentFolder()\"\n ></button>\n <h1 fd-title>\n <span>{{ 'platformUploadCollection.moveToTitleFolder' | fdTranslate }}</span>\n {{ _currentFolder.name }}\n </h1>\n </ng-container>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n [label]=\"'platformUploadCollection.moveToNewFolderBtnLabel' | fdTranslate\"\n (click)=\"_newFolder()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body class=\"fd-dialog__body--no-horizontal-padding\">\n <ul fd-list>\n <li *ngIf=\"!_currentFolder\" fd-list-item class=\"fd-list__item--title-background\">\n <span fd-list-title>{{ 'platformUploadCollection.moveToAllFilesSubHeaderLabel' | fdTranslate }}</span>\n </li>\n <li\n fd-list-item\n *ngFor=\"let folder of _foldersList\"\n [selected]=\"selectedFolder?.documentId === folder.documentId\"\n >\n <a fd-list-link (click)=\"_hasFolders(folder.files) ? _openFolder(folder) : _selectFolder(folder)\">\n <fd-icon class=\"fdp-upload-collection__fd-icon\" glyph=\"folder-blank\"></fd-icon>\n <span fd-list-title>{{ folder.name }}</span>\n <i *ngIf=\"_hasFolders(folder.files)\" fd-list-icon glyph=\"slim-arrow-right\"></i>\n </a>\n </li>\n </ul>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n type=\"submit\"\n [disabled]=\"\n !(\n (selectedFolder && originalFolder?.documentId !== selectedFolder.documentId) ||\n (!selectedFolder && originalFolder?.documentId !== _currentFolder?.documentId)\n )\n \"\n (click)=\"_confirm()\"\n >\n {{ 'platformUploadCollection.moveToConfirmBtn' | fdTranslate }}\n </fd-button-bar>\n <fd-button-bar (click)=\"_close()\">\n {{ 'platformUploadCollection.moveToCloseBtn' | fdTranslate }}\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fd-list__item--title-background{background-color:var(--sapList_HeaderBackground)}.fd-dialog__body--no-horizontal-padding{padding-left:0!important;padding-right:0!important}.fd-title--bold{font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate], [fdTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i8.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i8.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: i8.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i8.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i8.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "pipe", type: i9.FdTranslatePipe, name: "fdTranslate" }] });
118
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: MoveToComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ template: "<fd-dialog>\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h1 class=\"fd-title--bold\" *ngIf=\"!_currentFolder\" fd-title>\n {{ 'platformUploadCollection.moveToTitle' | fdTranslate }}\n </h1>\n <ng-container *ngIf=\"_currentFolder\">\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"navigation-left-arrow\"\n (click)=\"_goToParentFolder()\"\n ></button>\n <h1 fd-title>\n <span>{{ 'platformUploadCollection.moveToTitleFolder' | fdTranslate }}</span>\n {{ _currentFolder.name }}\n </h1>\n </ng-container>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <button\n fd-button\n [label]=\"'platformUploadCollection.moveToNewFolderBtnLabel' | fdTranslate\"\n (click)=\"_newFolder()\"\n ></button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body class=\"fd-dialog__body--no-horizontal-padding\">\n <ul fd-list>\n <li *ngIf=\"!_currentFolder\" fd-list-item class=\"fd-list__item--title-background\">\n <span fd-list-title>{{ 'platformUploadCollection.moveToAllFilesSubHeaderLabel' | fdTranslate }}</span>\n </li>\n <li\n fd-list-item\n *ngFor=\"let folder of _foldersList\"\n [selected]=\"selectedFolder?.documentId === folder.documentId\"\n >\n <a fd-list-link (click)=\"_hasFolders(folder.files) ? _openFolder(folder) : _selectFolder(folder)\">\n <fd-icon class=\"fdp-upload-collection__fd-icon\" glyph=\"folder-blank\"></fd-icon>\n <span fd-list-title>{{ folder.name }}</span>\n <i *ngIf=\"_hasFolders(folder.files)\" fd-list-icon glyph=\"slim-arrow-right\"></i>\n </a>\n </li>\n </ul>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n type=\"submit\"\n [disabled]=\"\n !(\n (selectedFolder && originalFolder?.documentId !== selectedFolder.documentId) ||\n (!selectedFolder && originalFolder?.documentId !== _currentFolder?.documentId)\n )\n \"\n (click)=\"_confirm()\"\n >\n {{ 'platformUploadCollection.moveToConfirmBtn' | fdTranslate }}\n </fd-button-bar>\n <fd-button-bar (click)=\"_close()\">\n {{ 'platformUploadCollection.moveToCloseBtn' | fdTranslate }}\n </fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", styles: [".fd-list__item--title-background{background-color:var(--sapList_HeaderBackground)}.fd-dialog__body--no-horizontal-padding{padding-left:0!important;padding-right:0!important}.fd-title--bold{font-weight:700}\n"] }]
@@ -157,7 +157,7 @@ VariantManagementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
157
157
  provide: FDP_VARIANT_MANAGEMENT,
158
158
  useExisting: VariantManagementComponent
159
159
  }
160
- ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "<fd-popover\n #popover\n *ngIf=\"activeVariant\"\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n>\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n <ng-container *ngIf=\"_variantChanged\">\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n *ngTemplateOutlet=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n </ng-container>\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n <div fd-bar barDesign=\"header\" *ngIf=\"displaySearch\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list>\n <ng-container\n *ngFor=\"\n let variant of _variants | fdFilterStrings : { searchTerm: _filterPhrase, key: 'name' };\n trackBy: _trackFn\n \"\n >\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n </ng-container>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n *ngIf=\"!activeVariant.readonly && _variantChanged\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i3.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i3.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i3.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i3.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i8.SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "searchSuggestionMessage", "searchSuggestionNavigateMessage", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "pipe", type: i9.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i10.FilterStringsPipe, name: "fdFilterStrings" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
160
+ ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "<fd-popover\n #popover\n *ngIf=\"activeVariant\"\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n>\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n <ng-container *ngIf=\"_variantChanged\">\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n *ngTemplateOutlet=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n </ng-container>\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n <div fd-bar barDesign=\"header\" *ngIf=\"displaySearch\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list>\n <ng-container\n *ngFor=\"\n let variant of _variants | fdFilterStrings : { searchTerm: _filterPhrase, key: 'name' };\n trackBy: _trackFn\n \"\n >\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n </ng-container>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n *ngIf=\"!activeVariant.readonly && _variantChanged\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.PopoverControlComponent, selector: "fd-popover-control" }, { kind: "component", type: i3.PopoverBodyComponent, selector: "fd-popover-body" }, { kind: "directive", type: i3.PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "directive", type: i3.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i3.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: i4.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth", "isTitle"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i5.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i6.MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "ariaDescribedBy", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "selectedListItemScreenReaderText", "navigatedListItemScreenReaderText", "navigatableListItemScreenReaderText", "ariaRole"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i8.SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "searchSuggestionMessage", "searchSuggestionNavigateMessage", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "pipe", type: i9.FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: i10.FilterStringsPipe, name: "fdFilterStrings" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
161
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: VariantManagementComponent, decorators: [{
162
162
  type: Component,
163
163
  args: [{ selector: 'fdp-variant-management', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [